README_REPOSITORY
changeset 48844 6408fb6f7d81
parent 48497 ba61aceaa18a
child 48853 ec82c33c75f8
equal deleted inserted replaced
48843:9055bf115e30 48844:6408fb6f7d81
   231 
   231 
   232 
   232 
   233 Building a repository version of Isabelle
   233 Building a repository version of Isabelle
   234 -----------------------------------------
   234 -----------------------------------------
   235 
   235 
   236 A proper Isabelle distribution contains many add-on components that
   236 The regular "isabelle build" tool allows to build session images as
   237 are important for practical use.  Some extra configuration is required
   237 usual, but this first requires to resolve add-on components first,
   238 to approximate this system integration from a bare-bones repository
   238 including the ML system.  Some extra configuration is required to
   239 snapshot; see also its directory Admin/ (which is absent in official
   239 approximate some of the system integration of official Isabelle
   240 releases).
   240 releases from a bare-bones repository snapshot.  The special directory
   241 
   241 Admin/ -- which is absent in official releases -- might provide some
   242   (1) Admin/components lists potentially relevant components, with
   242 further clues.
   243     explicit version information for the given repository version.
   243 
   244     For example, this allows to bisect over Mercurial history while
   244 Here is a reasonably easy way to include important Isabelle components
   245     the contributing components change accordingly.
   245 on the spot:
   246 
   246 
   247   (2) Admin/init_components is a bash script that can be sourced in
   247   (1) The bash script ISABELLE_HOME_USER/etc/settings is augmented by
   248     $ISABELLE_HOME_USER/etc/settings to initialize components listed
   248   some shell function invocations like this:
   249     in Admin/components and present in $ISABELLE_HOME_USER/contrib/.
   249 
   250 
   250       init_components "$HOME/.isabelle/contrib" "$ISABELLE_HOME/Admin/components/main"
   251   (3) http://isabelle.in.tum.de/components/ provides tar.gz archives
   251       init_components "$HOME/.isabelle/contrib" "$ISABELLE_HOME/Admin/components/optional"
   252     of many components, excluding some non-free ones (which are also
   252 
   253     not part of Isabelle releases).
   253   This uses some central place "$HOME/.isabelle/contrib" to keep
   254 
   254   component directories that are shared by all Isabelle versions.
   255 Also note that the repository lacks some textual version identifiers
   255 
   256 in the sources and scripts; this implies some changed behavior when
   256   (2) Missing components are resolved on the command line like this:
   257 processing settings etc. -- especially the location of
   257 
   258 $ISABELLE_HOME_USER provided by the system.
   258       isabelle components -a
   259 
   259 
   260 The isabelle build tool allows to build logic images.
   260   This will saturate the "$HOME/.isabelle/contrib" directory structure
       
   261   from according to $ISABELLE_COMPONENT_REPOSITORY.
       
   262 
       
   263 Since the given component catalogs in $ISABELLE_HOME/Admin/components
       
   264 are subject to the Mercurial history, it is possible to bisect over a
       
   265 range of Isabelle versions while references to the contributing
       
   266 components change accordingly.