4 This compilation of Poly/ML 5.4 is based on the official sources from
5 http://www.polyml.org with the following patch from the SVN (which is
6 also part of the fixes-5.4 source tree):
8 ------------------------------------------------------------------------
9 r1214 | dcjm | 2010-09-14 20:03:52 +0200 (Tue, 14 Sep 2010) | 1 line
11 Fix to arbitrary precision emulation for X86. A GC during emulating
12 an operation could cause the stack to move resulting in the result of
13 the operation not being stored into the result register.
14 ------------------------------------------------------------------------
15 diff libpolyml/x86_dep.cpp libpolyml/x86_dep.cpp.orig
18 < destReg = get_reg(taskData, rrr); // May have moved because of a GC.
19 < *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()+1);
22 > if (! inConsts) *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()+1);
25 < destReg = get_reg(taskData, rrr); // May have moved because of a GC.
26 < *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()-1);
29 > if (! inConsts) *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()-1);
31 ------------------------------------------------------------------------
34 The included build script is used like this:
36 ./build src x86-linux --with-gmp
37 ./build src x86_64-linux --with-gmp
38 ./build src x86-darwin --without-gmp
39 ./build src x86_64-darwin --without-gmp
40 ./build src x86-cygwin --with-gmp
42 The multi-platform directory layout for executables and shared
43 libraries accommodates the standard ML_HOME settings for Isabelle.
46 Also note that the separate "sha1" library module is required for
47 efficient digesting of strings according to SHA-1.