Search code examples
isabellejedit

Cannot select built session image in Isabelle/jEdit


This is a follow-up to

loading a precompiled heap image in Isabelle

Now I am on Windows. I created a Nominal2 heap image into the standard location:

$HOME/.isabelle/Isabelle2015/heaps/polyml-5.5.2_x86-cygwin

I cannot select it in the Theories panel to load.

I tried to start isabelle jedit -d ... -l ... from a cygwin bash script but that did not work. The script contained

#!/bin/bash

isabelle jedit -d /cygdrive/d/phd/thy/Nominal2-Isabelle2015/Nominal  -l Nominal2

but id did nothing, jEdit did not come up.

How can I create an executable that automatically loads my prebuilt Nominal2 image? Or, let Isabelle/jEdit know that there is a Nominal2 image in the standard heap location?

UPDATE: I copied the image from the user's home directory to the main heap directory:

in /cygdrive/d/isabelle/Isabelle2015/heaps/polyml-5.5.2_x86-cygwin 

$ cp ~/.isabelle/Isabelle2015/heaps/polyml-5.5.2_x86-cygwin/Nominal2 .

and restarted Isabelle/jEdit but I could not find Nominal2 in the menu for session images.


Solution

  • Instead of trying to assemble heap images manually and moving them around, you should let the system do it. You merely need to tell it where to find session source trees, either by isabelle jedit -d DIR or permanently via some ROOTS file (in some already known session directory).

    A good place is $ISABELLE_HOME_USER/ROOTS: just add the directory location (in Isabelle/POSIX notation) on a separate line, and the Isabelle/jEdit logic selector should know the new sessions after restart.

    Then you can select a new session, and its heap will be built after the next restart of the application.