wenzelm@38787: Poly/ML for Isabelle wenzelm@38787: ==================== wenzelm@27012: wenzelm@41579: This compilation of Poly/ML 5.4 is based on the official sources from wenzelm@41579: http://www.polyml.org with the following patch from the SVN (which is wenzelm@41578: also part of the fixes-5.4 source tree): wenzelm@27012: wenzelm@41578: ------------------------------------------------------------------------ wenzelm@41578: r1214 | dcjm | 2010-09-14 20:03:52 +0200 (Tue, 14 Sep 2010) | 1 line wenzelm@37127: wenzelm@41578: Fix to arbitrary precision emulation for X86. A GC during emulating wenzelm@41578: an operation could cause the stack to move resulting in the result of wenzelm@41578: the operation not being stored into the result register. wenzelm@41578: ------------------------------------------------------------------------ wenzelm@41578: diff libpolyml/x86_dep.cpp libpolyml/x86_dep.cpp.orig wenzelm@41578: 1308,1311c1308 wenzelm@41578: < if (! inConsts) { wenzelm@41578: < destReg = get_reg(taskData, rrr); // May have moved because of a GC. wenzelm@41578: < *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()+1); wenzelm@41578: < } wenzelm@41578: --- wenzelm@41578: > if (! inConsts) *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()+1); wenzelm@41578: 1344,1347c1341 wenzelm@41578: < if (! inConsts) { wenzelm@41578: < destReg = get_reg(taskData, rrr); // May have moved because of a GC. wenzelm@41578: < *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()-1); wenzelm@41578: < } wenzelm@41578: --- wenzelm@41578: > if (! inConsts) *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()-1); wenzelm@41578: wenzelm@41578: ------------------------------------------------------------------------ wenzelm@41578: wenzelm@41579: wenzelm@41578: The included build script is used like this: wenzelm@41578: wenzelm@41578: ./build src x86-linux --with-gmp wenzelm@41578: ./build src x86_64-linux --with-gmp wenzelm@41578: ./build src x86-darwin --without-gmp wenzelm@41578: ./build src x86_64-darwin --without-gmp wenzelm@41578: ./build src x86-cygwin --with-gmp wenzelm@41578: wenzelm@41578: The multi-platform directory layout for executables and shared wenzelm@41578: libraries accommodates the standard ML_HOME settings for Isabelle. wenzelm@27012: wenzelm@27012: wenzelm@41579: Also note that the separate "sha1" library module is required for wenzelm@41579: efficient digesting of strings according to SHA-1. wenzelm@41579: wenzelm@41579: wenzelm@27012: Makarius wenzelm@41578: 20-Dec-2010