[isabelle-dev] NEWS: Isabelle/Scala improvements

Makarius makarius at sketis.net
Sun Jul 18 22:31:38 CEST 2021


*** System ***

* Each Isabelle component may specify a Scala/Java jar module
declaratively via etc/build.props (file names are relative to the
component directory). E.g. see $ISABELLE_HOME/etc/build.props with
further explanations in the "system" manual.

* Command-line tool "isabelle scala_build" allows to invoke the build
process of all Scala/Java modules explicitly. Normally this is done
implicitly on demand, e.g. for "isabelle scala" or "isabelle jedit".

* Command-line tool "isabelle scala_project" is now more thorough in
providing Scala/Java sources of all components with etc/build.props,
including user add-ons. This includes jEdit sources and Isabelle/jEdit
plugins (jedit_base and jedit_main).

* Isabelle/jEdit is now composed more conventionally from the original
jEdit text editor in $JEDIT_HOME (with minor patches), plus two Isabelle
plugins that are produced in $JEDIT_SETTINGS/jars on demand. The main
isabelle.jedit module is now part of Isabelle/Scala (as one big
$ISABELLE_SCALA_JAR).


This refers to Isabelle/13c66810f7b0.

So the time has finally come, where Isabelle acquired its own Scala/Java build
tool. It is implemented in pure Java to simplify bootstrapping, e.g. an
Isabelle download and install tool could be included eventually.

See also
https://isabelle-dev.sketis.net/source/isabelle/browse/default/src/Tools/Setup/src/;13c66810f7b0
where half of the effort is specific to Isabelle, and the other half rather
plain and basic.


It shows once again that it is better to implement Isabelle tools in Isabelle
and for Isabelle, instead of relying on huge and heavy things out there (e.g.
sbt, maven, gradle).

(If maven artifacts will be required eventually, we just include a little
dependency-subgraph download tool on the spot.)


In this self-sufficient Isabelle/Scala/Java setup, Gradle is only used as
consumer of "isabelle scala_project" output, to allow IntelliJ IDEA edit all
Isabelle/Scala/Java modules as one big project.

(At a later stage, the Isabelle Prover IDE might learn more about Scala, e.g.
when Scala 3 with its re-implemented compiler has become generally available.)


	Makarius


More information about the isabelle-dev mailing list