4 |
4 |
5 chapter \<open>The Isabelle system environment\<close> |
5 chapter \<open>The Isabelle system environment\<close> |
6 |
6 |
7 text \<open>This manual describes Isabelle together with related tools and |
7 text \<open>This manual describes Isabelle together with related tools and |
8 user interfaces as seen from a system oriented view. See also the |
8 user interfaces as seen from a system oriented view. See also the |
9 \emph{Isabelle/Isar Reference Manual} @{cite "isabelle-isar-ref"} for |
9 \<^emph>\<open>Isabelle/Isar Reference Manual\<close> @{cite "isabelle-isar-ref"} for |
10 the actual Isabelle input language and related concepts, and |
10 the actual Isabelle input language and related concepts, and |
11 \emph{The Isabelle/Isar Implementation |
11 \<^emph>\<open>The Isabelle/Isar Implementation |
12 Manual} @{cite "isabelle-implementation"} for the main concepts of the |
12 Manual\<close> @{cite "isabelle-implementation"} for the main concepts of the |
13 underlying implementation in Isabelle/ML. |
13 underlying implementation in Isabelle/ML. |
14 |
14 |
15 \<^medskip> |
15 \<^medskip> |
16 The Isabelle system environment provides the following |
16 The Isabelle system environment provides the following |
17 basic infrastructure to integrate tools smoothly. |
17 basic infrastructure to integrate tools smoothly. |
18 |
18 |
19 \<^enum> The \emph{Isabelle settings} mechanism provides process |
19 \<^enum> The \<^emph>\<open>Isabelle settings\<close> mechanism provides process |
20 environment variables to all Isabelle executables (including tools |
20 environment variables to all Isabelle executables (including tools |
21 and user interfaces). |
21 and user interfaces). |
22 |
22 |
23 \<^enum> The raw \emph{Isabelle process} (@{executable_ref |
23 \<^enum> The raw \<^emph>\<open>Isabelle process\<close> (@{executable_ref |
24 "isabelle_process"}) runs logic sessions either interactively or in |
24 "isabelle_process"}) runs logic sessions either interactively or in |
25 batch mode. In particular, this view abstracts over the invocation |
25 batch mode. In particular, this view abstracts over the invocation |
26 of the actual ML system to be used. Regular users rarely need to |
26 of the actual ML system to be used. Regular users rarely need to |
27 care about the low-level process. |
27 care about the low-level process. |
28 |
28 |
29 \<^enum> The main \emph{Isabelle tool wrapper} (@{executable_ref |
29 \<^enum> The main \<^emph>\<open>Isabelle tool wrapper\<close> (@{executable_ref |
30 isabelle}) provides a generic startup environment Isabelle related |
30 isabelle}) provides a generic startup environment Isabelle related |
31 utilities, user interfaces etc. Such tools automatically benefit |
31 utilities, user interfaces etc. Such tools automatically benefit |
32 from the settings mechanism. |
32 from the settings mechanism. |
33 \<close> |
33 \<close> |
34 |
34 |
35 |
35 |
36 section \<open>Isabelle settings \label{sec:settings}\<close> |
36 section \<open>Isabelle settings \label{sec:settings}\<close> |
37 |
37 |
38 text \<open> |
38 text \<open> |
39 The Isabelle system heavily depends on the \emph{settings |
39 The Isabelle system heavily depends on the \<^emph>\<open>settings |
40 mechanism}\indexbold{settings}. Essentially, this is a statically |
40 mechanism\<close>\indexbold{settings}. Essentially, this is a statically |
41 scoped collection of environment variables, such as @{setting |
41 scoped collection of environment variables, such as @{setting |
42 ISABELLE_HOME}, @{setting ML_SYSTEM}, @{setting ML_HOME}. These |
42 ISABELLE_HOME}, @{setting ML_SYSTEM}, @{setting ML_HOME}. These |
43 variables are \emph{not} intended to be set directly from the shell, |
43 variables are \<^emph>\<open>not\<close> intended to be set directly from the shell, |
44 though. Isabelle employs a somewhat more sophisticated scheme of |
44 though. Isabelle employs a somewhat more sophisticated scheme of |
45 \emph{settings files} --- one for site-wide defaults, another for |
45 \<^emph>\<open>settings files\<close> --- one for site-wide defaults, another for |
46 additional user-specific modifications. With all configuration |
46 additional user-specific modifications. With all configuration |
47 variables in clearly defined places, this scheme is more |
47 variables in clearly defined places, this scheme is more |
48 maintainable and user-friendly than global shell environment |
48 maintainable and user-friendly than global shell environment |
49 variables. |
49 variables. |
50 |
50 |
267 \<close> |
267 \<close> |
268 |
268 |
269 |
269 |
270 subsection \<open>Additional components \label{sec:components}\<close> |
270 subsection \<open>Additional components \label{sec:components}\<close> |
271 |
271 |
272 text \<open>Any directory may be registered as an explicit \emph{Isabelle |
272 text \<open>Any directory may be registered as an explicit \<^emph>\<open>Isabelle |
273 component}. The general layout conventions are that of the main |
273 component\<close>. The general layout conventions are that of the main |
274 Isabelle distribution itself, and the following two files (both |
274 Isabelle distribution itself, and the following two files (both |
275 optional) have a special meaning: |
275 optional) have a special meaning: |
276 |
276 |
277 \<^item> @{verbatim "etc/settings"} holds additional settings that are |
277 \<^item> @{verbatim "etc/settings"} holds additional settings that are |
278 initialized when bootstrapping the overall Isabelle environment, |
278 initialized when bootstrapping the overall Isabelle environment, |