[isabelle-dev] Working with more than one local repository of Isabelle and AFP
Florian Haftmann
florian.haftmann at informatik.tu-muenchen.de
Wed Aug 31 22:03:27 CEST 2011
I give here a write-up of my Isabelle repository infrastructure, which
exploits the concept of Isabelle components to get a neat and flexible
integration of multiple instances of Isabelle and AFP for development
and testing.
--
1. directory strucure
I'll assume you place your work relative to a $DATA_ROOT; some people
may prefer ~/ or ~/work or ~/data or (on single-user machines) /data for
that.
2. repositories
Each Isabelle repository resides in
$DATA_ROOT/isabelle/$WORKING_DIR
where $WORKING_DIR is an arbitrary name, e.g.
$DATA_ROOT/isabelle/master
$DATA_ROOT/isabelle/devel
Similar for AFP.
$DATA_ROOT/afp/$WORKING_DIR
$DATA_ROOT/afp/master
$DATA_ROOT/afp/devel
There is no need that for a one-to-one correspondences between Isabelle
and AFP.
3. provide contrib directory
Each Isabelle repository needs a proper »contrib« directory. This can
be achieved easily by
cd $DATA_ROOT/isabelle/$WORKING_DIR
mkdir contrib
cd contrib
for NAME in $PATH_TO_CONTRIB_OF_LAST_ISABELLE_RELEASE/*; do ln -s
$NAME; done
If needed, single contribs can be added or replaced by adding or
tweaking symlinks appropriately, e.g. for testing new versions of polyml.
Then the association to a corresponding AFP repository:
cd $DATA_ROOT/isabelle/$WORKING_DIR
mkdir contrib
ln -s $PATH_TO_CORRESPONDING_AFP_REPOSITORY
4. Adjust ~/.isabelle/etc/settings
# store sessions results in working directory
if [ -z "$ISABELLE_IDENTIFIER" ]
then
ISABELLE_OUTPUT="$ISABELLE_HOME/heaps"
ISABELLE_BROWSER_INFO="$ISABELLE_HOME/browser_info"
fi
For proper releases, ISABELLE_IDENTIFIER is non-zero; the check prevents
that regular Isabelle releases on your machine will modify themselves.
If you choose ISABELLE_OUTPUT as above, you need not adjust
ISABELLE_PATH because it contains $ISABELLE_HOME/heaps already.
# treat afp as component
if [ -d "$ISABELLE_HOME/contrib/afp" ]
then
init_component "$ISABELLE_HOME/contrib/afp"
fi
This links AFP as a component (as specified in $ISABELLE_HOME/contrib by
a symlink).
See the system manual for further details.
--
I hope this is useful for everybody heavy on testing and refactoring.
Comment welcome.
Florian
--
Home:
http://www.in.tum.de/~haftmann
PGP available:
http://home.informatik.tu-muenchen.de/haftmann/pgp/florian_haftmann_at_informatik_tu_muenchen_de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <https://mailmanbroy.informatik.tu-muenchen.de/pipermail/isabelle-dev/attachments/20110831/f394b229/attachment.asc>
More information about the isabelle-dev
mailing list