Admin/PLATFORMS
changeset 44876 243e2a413787
parent 42424 e94350a2ed20
child 44977 1b2ce8d0f8e3
equal deleted inserted replaced
44875:68615b48cc12 44876:243e2a413787
     8 environment, with hardly any system specific code in user-space tools
     8 environment, with hardly any system specific code in user-space tools
     9 and packages.
     9 and packages.
    10 
    10 
    11 The basic Isabelle system infrastructure provides some facilities to
    11 The basic Isabelle system infrastructure provides some facilities to
    12 make this work, e.g. see the ML structures File and Path, or functions
    12 make this work, e.g. see the ML structures File and Path, or functions
    13 like bash_output.  The settings environment also provides some means
    13 like Isabelle_System.bash.  The settings environment also provides
    14 for portability, e.g. jvm_path to hold up the impression that Java on
    14 some means for portability, e.g. jvm_path to keep the impression that
    15 Windows/Cygwin adheres to Isabelle/POSIX standards.
    15 Java on Windows/Cygwin adheres to Isabelle/POSIX standards (inside the
       
    16 JVM itself there are many Windows-specific things, though).
    16 
    17 
    17 When producing add-on tools, it is important to stay within this clean
    18 When producing add-on tools, it is important to stay within this clean
    18 room of Isabelle, and refrain from overly ambitious system hacking.
    19 room of Isabelle, and refrain from overly ambitious system hacking.
    19 The existing Isabelle scripts follow a certain style that might look
    20 The existing Isabelle scripts follow a certain style that might look
    20 odd at first sight, but reflects long years of experience in getting
    21 odd at first sight, but it reflects long years of experience in
    21 system plumbing right (which is quite hard).
    22 getting system plumbing right (which is quite hard).
    22 
    23 
    23 
    24 
    24 Supported platforms
    25 Supported platforms
    25 -------------------
    26 -------------------
    26 
    27 
    27 The following hardware and operating system platforms are officially
    28 The following hardware and operating system platforms are officially
    28 supported by the Isabelle distribution (and bundled tools), with the
    29 supported by the Isabelle distribution (and bundled tools), with the
    29 following reference versions (which have been selected to be neither
    30 following reference versions (which have been selected to be neither
    30 too old nor too new):
    31 too old nor too new):
    31 
    32 
    32   x86-linux         SuSE 11.0 (atbroy51) (??)
    33   x86-linux         Ubuntu 10.04 LTS
    33   x86-darwin        Mac OS Leopard (macbroy30)
    34   x86-darwin        Mac OS Leopard (macbroy30)
    34   x86-cygwin        Cygwin 1.7 (atbroy102)
    35   x86-cygwin        Cygwin 1.7 (vmbroy9)
    35 
    36 
    36   x86_64-linux      SuSE 11.0 (atbroy100)
    37   x86_64-linux      Ubuntu 10.04 LTS
    37   x86_64-darwin     Mac OS Leopard (macbroy30)
    38   x86_64-darwin     Mac OS Leopard (macbroy30)
    38 
    39 
    39 All of the above platforms are 100% supported by Isabelle -- end-users
    40 All of the above platforms are 100% supported by Isabelle -- end-users
    40 should not have to care about the differences at all.  There are also
    41 should not have to care about the differences (at least in theory).
    41 some secondary platforms where Poly/ML also happens to work:
    42 There are also some additional platforms where Poly/ML also happens to
       
    43 work, but they are *not* covered by the official Isabelle
       
    44 distribution:
    42 
    45 
    43   ppc-darwin
    46   ppc-darwin
    44   sparc-solaris
    47   sparc-solaris
    45   x86-solaris
    48   x86-solaris
    46   x86-bsd
    49   x86-bsd
    47 
    50 
    48 There is no guarantee that Isabelle add-ons work on these fringe
    51 There are increasing problems to make contributing components of
    49 platforms.  Even Isabelle/Scala already fails on ppc-darwin due to
    52 Isabelle work on such fringe platforms.  Note that x86-bsd is silently
    50 lack of JVM 1.6 support by Apple.
    53 treated like x86-linux -- this works if certain Linux compatibility
       
    54 packages are installed on BSD.
    51 
    55 
    52 
    56 
    53 32 bit vs. 64 bit platforms
    57 32 bit vs. 64 bit platforms
    54 ---------------------------
    58 ---------------------------
    55 
    59 
    56 64 bit hardware becomes more and more important for power users.
    60 64 bit hardware becomes more and more important for many users.
    57 Add-on tools need to work seamlessly without manual user
    61 Add-on tools need to work seamlessly without manual user
    58 configuration, although it is often sufficient to fall back on 32 bit
    62 configuration, although it is often sufficient to fall back on 32 bit
    59 executables.
    63 executables.
    60 
    64 
    61 The ISABELLE_PLATFORM setting variable refers to the 32 bit version of
    65 The ISABELLE_PLATFORM setting variable refers to the 32 bit version of
    75 
    79 
    76 The following portable system tools can be taken for granted:
    80 The following portable system tools can be taken for granted:
    77 
    81 
    78 * GNU bash as uniform shell on all platforms.  The POSIX "standard"
    82 * GNU bash as uniform shell on all platforms.  The POSIX "standard"
    79   shell /bin/sh is *not* appropriate, because there are too many
    83   shell /bin/sh is *not* appropriate, because there are too many
    80   different implementations of it.
    84   non-standard implementations of it.
    81 
    85 
    82 * Perl as largely portable system programming language.  In some
    86 * Perl as largely portable system programming language.  In some
    83   situations Python may serve as an alternative, but it usually
    87   situations Python may serve as an alternative, but it usually
    84   performs not as well in addressing various delicate details of
    88   performs not as well in addressing various delicate details of
    85   operating system concepts (processes, signals, sockets etc.).
    89   operating system concepts (processes, signals, sockets etc.).
    86 
    90 
    87 * Scala with Java Runtime 1.6.  The Isabelle/Pure.jar library irons
    91 * Scala with Java Runtime 1.6.  The Isabelle/Scala layer irons out
    88   out many oddities and portability problems of the Java platform.
    92   many oddities and portability issues of the Java platform.
    89 
    93 
    90 
    94 
    91 Known problems
    95 Known problems
    92 --------------
    96 --------------
    93 
    97