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 |