[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