src/Doc/System/Environment.thy
changeset 66789 feb36b73a7f0
parent 66787 64b47495676d
parent 66733 9180953b976b
child 66906 03a96b8c7c06
equal deleted inserted replaced
66788:6b08228b02d5 66789:feb36b73a7f0
     1      (*:maxLineLen=78:*)
     1 (*:maxLineLen=78:*)
     2 
     2 
     3 theory Environment
     3 theory Environment
     4 imports Base
     4 imports Base
     5 begin
     5 begin
     6 
     6 
   116   defaults may be overridden by a private \<^verbatim>\<open>$ISABELLE_HOME_USER/etc/settings\<close>.
   116   defaults may be overridden by a private \<^verbatim>\<open>$ISABELLE_HOME_USER/etc/settings\<close>.
   117 
   117 
   118   \<^descr>[@{setting_def ISABELLE_PLATFORM_FAMILY}\<open>\<^sup>*\<close>] is automatically set to the
   118   \<^descr>[@{setting_def ISABELLE_PLATFORM_FAMILY}\<open>\<^sup>*\<close>] is automatically set to the
   119   general platform family: \<^verbatim>\<open>linux\<close>, \<^verbatim>\<open>macos\<close>, \<^verbatim>\<open>windows\<close>. Note that
   119   general platform family: \<^verbatim>\<open>linux\<close>, \<^verbatim>\<open>macos\<close>, \<^verbatim>\<open>windows\<close>. Note that
   120   platform-dependent tools usually need to refer to the more specific
   120   platform-dependent tools usually need to refer to the more specific
   121   identification according to @{setting ISABELLE_PLATFORM}, @{setting
   121   identification according to @{setting ISABELLE_PLATFORM} etc.
   122   ISABELLE_PLATFORM32}, @{setting ISABELLE_PLATFORM64}.
   122 
   123 
   123   \<^descr>[@{setting_def ISABELLE_PLATFORM32}\<open>\<^sup>*\<close>, @{setting_def
   124   \<^descr>[@{setting_def ISABELLE_PLATFORM}\<open>\<^sup>*\<close>] is automatically set to a symbolic
   124   ISABELLE_PLATFORM64}\<open>\<^sup>*\<close>, @{setting_def ISABELLE_PLATFORM}\<open>\<^sup>*\<close>] indicate the
   125   identifier for the underlying hardware and operating system. The Isabelle
   125   standard Posix platform: \<^verbatim>\<open>x86\<close> for 32 bit and \<^verbatim>\<open>x86_64\<close> for 64 bit,
   126   platform identification always refers to the 32 bit variant, even this is a
   126   together with a symbolic name for the operating system (\<^verbatim>\<open>linux\<close>, \<^verbatim>\<open>darwin\<close>,
   127   64 bit machine. Note that the ML or Java runtime may have a different idea,
   127   \<^verbatim>\<open>cygwin\<close>). Some platforms support both 32 bit and 64 bit executables, but
   128   depending on which binaries are actually run.
   128   this depends on various side-conditions.
   129 
   129 
   130   \<^descr>[@{setting_def ISABELLE_PLATFORM64}\<open>\<^sup>*\<close>] is similar to @{setting
   130   In GNU bash scripts, it is possible to use the following expressions
   131   ISABELLE_PLATFORM} but refers to the proper 64 bit variant on a platform
   131   (including the quotes) to specify a preference of 64 bit over 32 bit:
   132   that supports this; the value is empty for 32 bit. Note that the following
   132 
   133   bash expression (including the quotes) prefers the 64 bit platform, if that
   133   @{verbatim [display] \<open>"${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}"\<close>}
   134   is available:
   134 
   135 
   135   In contrast, the subsequent expression prefers the 32 bit variant; this is
   136   @{verbatim [display] \<open>"${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM}"\<close>}
   136   how @{setting ISABELLE_PLATFORM} is defined:
       
   137 
       
   138   @{verbatim [display] \<open>"${ISABELLE_PLATFORM32:-$ISABELLE_PLATFORM64}"\<close>}
       
   139 
       
   140   \<^descr>[@{setting_def ISABELLE_WINDOWS_PLATFORM32}\<open>\<^sup>*\<close>, @{setting_def
       
   141   ISABELLE_WINDOWS_PLATFORM64}\<open>\<^sup>*\<close>,] @{setting_def
       
   142   ISABELLE_WINDOWS_PLATFORM}\<open>\<^sup>*\<close> indicate the native Windows platform. These
       
   143   settings are analogous (but independent) of those for the standard Posix
       
   144   subsystem: @{setting ISABELLE_PLATFORM32}, @{setting ISABELLE_PLATFORM64},
       
   145   @{setting ISABELLE_PLATFORM}.
       
   146 
       
   147   In GNU bash scripts, a preference for native Windows platform variants may
       
   148   be specified like this:
       
   149 
       
   150   @{verbatim [display] \<open>"${ISABELLE_WINDOWS_PLATFORM:-$ISABELLE_PLATFORM}"\<close>}
       
   151 
       
   152   @{verbatim [display] \<open>"${ISABELLE_WINDOWS_PLATFORM64:-${ISABELLE_WINDOWS_PLATFORM32:-${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}}}"\<close>}
   137 
   153 
   138   \<^descr>[@{setting ISABELLE_TOOL}\<open>\<^sup>*\<close>] is automatically set to the full path name
   154   \<^descr>[@{setting ISABELLE_TOOL}\<open>\<^sup>*\<close>] is automatically set to the full path name
   139   of the @{executable isabelle} executable.
   155   of the @{executable isabelle} executable.
   140 
   156 
   141   \<^descr>[@{setting_def ISABELLE_IDENTIFIER}\<open>\<^sup>*\<close>] refers to the name of this
   157   \<^descr>[@{setting_def ISABELLE_IDENTIFIER}\<open>\<^sup>*\<close>] refers to the name of this
   153   images, which is useful for cross-platform installations. The value of
   169   images, which is useful for cross-platform installations. The value of
   154   @{setting ML_IDENTIFIER} is automatically obtained by composing the values
   170   @{setting ML_IDENTIFIER} is automatically obtained by composing the values
   155   of @{setting ML_SYSTEM}, @{setting ML_PLATFORM} and the Isabelle version
   171   of @{setting ML_SYSTEM}, @{setting ML_PLATFORM} and the Isabelle version
   156   values.
   172   values.
   157 
   173 
   158   \<^descr>[@{setting_def ISABELLE_JDK_HOME}] needs to point to a full JDK (Java
   174   \<^descr>[@{setting_def ISABELLE_JDK_HOME}] points to a full JDK (Java Development
   159   Development Kit) installation with \<^verbatim>\<open>javac\<close> and \<^verbatim>\<open>jar\<close> executables. This is
   175   Kit) installation with \<^verbatim>\<open>javac\<close> and \<^verbatim>\<open>jar\<close> executables. Note that
   160   essential for Isabelle/Scala and other JVM-based tools to work properly.
   176   conventional \<^verbatim>\<open>JAVA_HOME\<close> points to the JRE (Java Runtime Environment), not
   161   Note that conventional \<^verbatim>\<open>JAVA_HOME\<close> usually points to the JRE (Java Runtime
   177   the JDK.
   162   Environment), not JDK.
   178 
       
   179   \<^descr>[@{setting_def ISABELLE_JAVA_PLATFORM}] identifies the hardware and
       
   180   operating system platform for the Java installation of Isabelle. That is
       
   181   usually the (native) 64 bit variant: \<^verbatim>\<open>x86_64-linux\<close>, \<^verbatim>\<open>x86_64-darwin\<close>,
       
   182   \<^verbatim>\<open>x86_64-windows\<close>.
   163 
   183 
   164   \<^descr>[@{setting_def ISABELLE_PATH}] is a list of directories (separated by
   184   \<^descr>[@{setting_def ISABELLE_PATH}] is a list of directories (separated by
   165   colons) where Isabelle logic images may reside. When looking up heaps files,
   185   colons) where Isabelle logic images may reside. When looking up heaps files,
   166   the value of @{setting ML_IDENTIFIER} is appended to each component
   186   the value of @{setting ML_IDENTIFIER} is appended to each component
   167   internally.
   187   internally.