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. |