src/Tools/jEdit/README
author wenzelm
Thu, 28 Oct 2010 15:06:47 +0200
changeset 40156 ac648bedd5dc
parent 39245 cc155a9bf3a2
child 40519 d02e483ee82a
permissions -rw-r--r--
back again to non-Apple font rendering (cf. 4977324373f2);
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
  * General lack of various conveniences known from Proof General.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    30
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    31
Despite these shortcomings, Isabelle/jEdit already demonstrates that
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    32
interactive theorem proving can be much more than command-line
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    33
interaction via TTY or editor front-ends (such as Proof General and
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    34
its many remakes).
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    35
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    36
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    37
Known problems with Mac OS
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
- The MacOSX plugin for jEdit disrupts regular C-X/C/V operations,
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    41
  e.g. between the editor and the Console plugin, which is a standard
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    42
  swing text box.  Similar for search boxes etc.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    43
37862
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    44
- ToggleButton selected state is not rendered if window focus is lost,
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    45
  which is probably a genuine feature of the Apple look-and-feel.
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    46
37218
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    47
- Anti-aliasing does not really work as well as for Linux or Windows.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    48
  (General Apple/Swing problem?)
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    49
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    50
- Font.createFont mangles the font family of non-regular fonts,
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    51
  e.g. bold.  IsabelleText font files need to be installed manually.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    52
37862
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    53
- Missing glyphs are collected from other fonts (like Emacs, Firefox).
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    54
  This is actually an advantage over the Oracle/Sun JVM on Windows or
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    55
  Linux, but probably also the deeper reason for the other oddities of
ec81023c6861 further Mac OS X deviations;
wenzelm
parents: 37218
diff changeset
    56
  Apple font management.
37218
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    57
40156
ac648bedd5dc back again to non-Apple font rendering (cf. 4977324373f2);
wenzelm
parents: 39245
diff changeset
    58
- The native font renderer of -Dapple.awt.graphics.UseQuartz=true
ac648bedd5dc back again to non-Apple font rendering (cf. 4977324373f2);
wenzelm
parents: 39245
diff changeset
    59
  fails to handle the infinitesimal font size of "hidden" text (e.g.
ac648bedd5dc back again to non-Apple font rendering (cf. 4977324373f2);
wenzelm
parents: 39245
diff changeset
    60
  used in Isabelle sub/superscripts).
ac648bedd5dc back again to non-Apple font rendering (cf. 4977324373f2);
wenzelm
parents: 39245
diff changeset
    61
37218
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    62
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    63
Windows/Linux
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    64
=============
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    65
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    66
- Works best with Sun Java 1.6.x -- avoid OpenJDK for now.
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    67
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    68
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    69
Licenses and home sites of contributing systems
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    70
===============================================
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    71
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    72
* Scala: BSD-style
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    73
  http://www.scala-lang.org
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    74
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    75
* jEdit: GPL (with special cases)
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    76
  http://www.jedit.org/
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    77
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    78
* Lobo/Cobra: GPL and LGPL
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    79
  http://lobobrowser.org/
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    80
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    81
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    82
     Makarius
ffd587207d5d notes on Isabelle/jEdit;
wenzelm
parents:
diff changeset
    83
     31-May-2010