Admin/PLATFORMS
changeset 64339 321065f9f55b
parent 64337 e3b57c8046cb
child 64344 c1695143de35
     1.1 --- a/Admin/PLATFORMS	Fri Oct 21 20:49:40 2016 +0200
     1.2 +++ b/Admin/PLATFORMS	Fri Oct 21 20:58:51 2016 +0200
     1.3 @@ -1,5 +1,5 @@
     1.4 -Some notes on multi-platform support of Isabelle
     1.5 -================================================
     1.6 +Multi-platform support of Isabelle
     1.7 +==================================
     1.8  
     1.9  Preamble
    1.10  --------
    1.11 @@ -13,13 +13,13 @@
    1.12  functions like Isabelle_System.bash.  The settings environment also
    1.13  provides some means for portability, e.g. the bash function
    1.14  "platform_path" to keep the impression that Windows/Cygwin adheres to
    1.15 -Isabelle/POSIX standards, although Poly/ML and the JVM are
    1.16 -Windows-specific things.
    1.17 +Isabelle/POSIX standards, although Poly/ML and the JVM are native on
    1.18 +Windows.
    1.19  
    1.20  When producing add-on tools, it is important to stay within this clean
    1.21  room of Isabelle, and refrain from overly ambitious system hacking.
    1.22 -The existing Isabelle scripts follow a peculiar style that reflects
    1.23 -long years of experience in getting system plumbing right.
    1.24 +The existing Isabelle bash scripts follow a peculiar style that
    1.25 +reflects long years of experience in getting system plumbing right.
    1.26  
    1.27  
    1.28  Supported platforms
    1.29 @@ -27,7 +27,7 @@
    1.30  
    1.31  The following hardware and operating system platforms are officially
    1.32  supported by the Isabelle distribution (and bundled tools), with the
    1.33 -following reference versions (which have been selected to be neither
    1.34 +following base-line versions (which have been selected to be neither
    1.35  too old nor too new):
    1.36  
    1.37    x86-linux         Ubuntu 12.04 LTS
    1.38 @@ -39,12 +39,14 @@
    1.39                      Mac OS X 10.11 El Capitan (??)
    1.40                      macOS 10.12 Sierra (???)
    1.41  
    1.42 -  x86-cygwin        http://isabelle.in.tum.de/cygwin_2015 (x86/release)
    1.43 +  x86-windows       Windows 7
    1.44 +  x86_64-windows    Windows 7
    1.45 +  x86-cygwin        http://isabelle.in.tum.de/cygwin_2016 (x86/release)
    1.46  
    1.47  All of the above platforms are 100% supported by Isabelle -- end-users
    1.48  should not have to care about the differences (at least in theory).
    1.49  
    1.50 -Fringe platforms like BSD or Solaris are unsupported.
    1.51 +Fringe platforms like BSD or Solaris are not supported.
    1.52  
    1.53  
    1.54  32 bit vs. 64 bit platforms
    1.55 @@ -55,7 +57,7 @@
    1.56  libraries, so native x86_64-linux needs to be used by default, despite
    1.57  its doubled space requirements for Poly/ML heaps.  For Mac OS X, the
    1.58  x86-darwin personality usually works seamlessly for C/C++ programs,
    1.59 -but the Java 7 platform is only available for x86_64-darwin.
    1.60 +but the Java platform is only available for x86_64-darwin.
    1.61  
    1.62  Add-on executables are expected to work without manual user
    1.63  configuration.  Each component settings script needs to determine the
    1.64 @@ -77,13 +79,13 @@
    1.65  
    1.66  Moreover note that ML and JVM usually have a different idea of the
    1.67  platform, depending on the respective binaries that are actually run.
    1.68 -Poly/ML 5.5.x performs best in 32 bit mode, even for large
    1.69 +Poly/ML 5.6.x performs best in 32 bit mode, even for large
    1.70  applications, thanks to its sophisticated heap management.  The JVM
    1.71  usually works better in 64 bit mode, which allows its heap to grow
    1.72  beyond 2 GB.
    1.73  
    1.74 -The traditional "uname" Unix tool usually only tells about its own
    1.75 -executable format, not the underlying platform!
    1.76 +The traditional "uname" Unix tool only tells about its own executable
    1.77 +format, not the underlying platform!
    1.78  
    1.79  
    1.80  Dependable system tools
    1.81 @@ -91,16 +93,16 @@
    1.82  
    1.83  The following portable system tools can be taken for granted:
    1.84  
    1.85 +* Scala on top of Java 8.  Isabelle/Scala irons out many oddities and
    1.86 +  portability issues of the Java platform.
    1.87 +
    1.88  * GNU bash as uniform shell on all platforms.  The POSIX "standard"
    1.89 -  shell /bin/sh is *not* appropriate, because there are too many
    1.90 -  non-standard implementations of it.
    1.91 +  shell /bin/sh does *not* work -- there are too many non-standard
    1.92 +  implementations of it.
    1.93  
    1.94  * Perl as largely portable system programming language, with its
    1.95    fairly robust support for processes, signals, sockets etc.
    1.96  
    1.97 -* Scala with Java 1.8.  Isabelle/Scala irons out many oddities and
    1.98 -  portability issues of the Java platform.
    1.99 -
   1.100  
   1.101  Known problems
   1.102  --------------
   1.103 @@ -124,4 +126,4 @@
   1.104    some clues about its platform, without running it.
   1.105  
   1.106  * Common Unix tools like /bin/sh, /bin/kill, sed, ulimit are
   1.107 -  notoriously non-portable an should be avoided.
   1.108 \ No newline at end of file
   1.109 +  notoriously non-portable an should be avoided.