diff -r bd2269b6cd99 -r dc9f43a9ad23 Admin/PLATFORMS --- a/Admin/PLATFORMS Sun Dec 13 13:29:04 2020 +0100 +++ b/Admin/PLATFORMS Sun Dec 13 13:39:36 2020 +0100 @@ -42,58 +42,38 @@ x86_64-windows Windows 10 x86_64-cygwin Cygwin 3.1.x https://isabelle.sketis.net/cygwin_2021 (x86_64/release) -Old (partial support): - - x86_64-darwin OS X 10.11 El Capitan (macbroy2 MacPro4,1) - New (experimental): arm64-linux Raspberry Pi OS 64bit beta (Debian 10 / Buster) + x86_64-darwin macOS 11 Big Sur + 64 bit vs. 32 bit platform personality -------------------------------------- Isabelle requires 64 bit hardware running a 64 bit operating -system. Windows and macOS allow x86 executables as well, but for -Linux this requires separate installation of 32 bit shared -libraries. The POSIX emulation on Windows via Cygwin64 works -exclusively for x86_64. - -Poly/ML supports both for x86_64 and x86, and the latter is preferred -for space and performance reasons. Java is always the x86_64 version -on all platforms. - -Add-on executables are expected to work without manual user -configuration. Each component settings script needs to determine the -platform details appropriately. - +system. Only Windows still supports native x86 executables, but the +POSIX emulation on Windows via Cygwin64 works exclusively for x86_64. -The Isabelle settings environment provides the following important -variables to help configuring platform-dependent tools: - - ISABELLE_PLATFORM64 (potentially empty) - ISABELLE_PLATFORM32 (potentially empty) - -Each can be empty, but not both at the same time. Using GNU bash -notation, tools may express their platform preference, e.g. first 64 -bit and second 32 bit, or the opposite: - - "${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}" - "${ISABELLE_PLATFORM32:-$ISABELLE_PLATFORM64}" - - -There is a another set of settings for native Windows (instead of the -POSIX emulation of Cygwin used before): +The Isabelle settings environment provides variable +ISABELLE_PLATFORM64 to refer to the standard platform personality. On +Windows this is for Cygwin64, but the following native platform +identifiers are available as well: ISABELLE_WINDOWS_PLATFORM64 ISABELLE_WINDOWS_PLATFORM32 These are always empty on Linux and macOS, and non-empty on -Windows. They can be used like this to prefer native Windows and then -Unix (first 64 bit second 32 bit): +Windows. For example, this is how to refer to native Windows and +fall-back on Unix (always 64 bit): + + "${ISABELLE_WINDOWS_PLATFORM64:-$ISABELLE_PLATFORM64}" - "${ISABELLE_WINDOWS_PLATFORM64:-${ISABELLE_WINDOWS_PLATFORM32:-${ISABELLE_PLATFORM64:-$ISABELLE_PLATFORM32}}}" +And this is for old 32 bit executables on Windows, but still 64 bit on +Unix: + + "${ISABELLE_WINDOWS_PLATFORM32:-$ISABELLE_PLATFORM64}" Dependable system tools