src/Tools/jEdit/README
author wenzelm
Tue, 20 Jul 2010 22:03:37 +0200
changeset 37862 ec81023c6861
parent 37218 ffd587207d5d
child 39245 cc155a9bf3a2
permissions -rw-r--r--
further Mac OS X deviations;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37218
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     1
Isabelle/jEdit based on Isabelle/Scala
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     2
======================================
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     3
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     4
The Isabelle/Scala layer that is already part of Isabelle/Pure
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     5
provides some general infrastructure for advanced prover interaction
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     6
and integration.  The Isabelle/jEdit application serves as an example
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     7
for asynchronous proof checking with support for parallel processing.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     8
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
     9
See also the paper:
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    10
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    11
  Makarius Wenzel. Asynchronous Proof Processing with Isabelle/Scala
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    12
  and Isabelle/jEdit. In C. Sacerdoti Coen and D. Aspinall, editors,
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    13
  User Interfaces for Theorem Provers (UITP 2010), FLOC 2010 Satellite
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    14
  Workshop, Edinburgh, Scotland, July 2010. To appear in ENTCS.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    15
  http://www4.in.tum.de/~wenzelm/papers/async-isabelle-scala.pdf
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    16
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    17
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    18
Some limitations of the current implementation (as of Isabelle2009-2):
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    19
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    20
  * No provisions for editing multiple theory files.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    21
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    22
  * No reclaiming of old/unused document versions.  Memory will fill
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    23
    up eventually, both on the JVM and ML side.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    24
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    25
  * No support for non-local markup, e.g. commands reporting on
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    26
    previous commands (proof end on proof head), or markup produced by
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    27
    loading external files.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    28
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    29
  * Some performance bottlenecks for massive amount of markup,
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    30
    e.g. when processing large ML sections.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    31
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    32
  * General lack of various conveniences known from Proof General.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    33
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    34
Despite these shortcomings, Isabelle/jEdit already demonstrates that
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    35
interactive theorem proving can be much more than command-line
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    36
interaction via TTY or editor front-ends (such as Proof General and
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    37
its many remakes).
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    38
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    39
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    40
Known problems with Mac OS
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    41
==========================
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    42
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    43
- The MacOSX plugin for jEdit disrupts regular C-X/C/V operations,
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    44
  e.g. between the editor and the Console plugin, which is a standard
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    45
  swing text box.  Similar for search boxes etc.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    46
37862
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    47
- ToggleButton selected state is not rendered if window focus is lost,
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    48
  which is probably a genuine feature of the Apple look-and-feel.
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    49
37218
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    50
- Anti-aliasing does not really work as well as for Linux or Windows.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    51
  (General Apple/Swing problem?)
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    52
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    53
- Font.createFont mangles the font family of non-regular fonts,
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    54
  e.g. bold.  IsabelleText font files need to be installed manually.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    55
37862
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    56
- Missing glyphs are collected from other fonts (like Emacs, Firefox).
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    57
  This is actually an advantage over the Oracle/Sun JVM on Windows or
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    58
  Linux, but probably also the deeper reason for the other oddities of
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    59
  Apple font management.
37218
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    60
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    61
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    62
Windows/Linux
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    63
=============
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    64
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    65
- Works best with Sun Java 1.6.x -- avoid OpenJDK for now.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    66
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    67
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    68
Licenses and home sites of contributing systems
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    69
===============================================
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    70
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    71
* Scala: BSD-style
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    72
  http://www.scala-lang.org
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    73
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    74
* jEdit: GPL (with special cases)
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    75
  http://www.jedit.org/
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    76
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    77
* Lobo/Cobra: GPL and LGPL
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    78
  http://lobobrowser.org/
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    79
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    80
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    81
     Makarius
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    82
     31-May-2010