updated for Poly/ML 5.4.0;
authorwenzelm
Mon, 20 Dec 2010 23:19:16 +0100
changeset 41578a4d9831c21d4
parent 41577 b6242168e7fa
child 41579 8cdadd543fc8
updated for Poly/ML 5.4.0;
Admin/polyml/README
     1.1 --- a/Admin/polyml/README	Mon Dec 20 22:27:26 2010 +0100
     1.2 +++ b/Admin/polyml/README	Mon Dec 20 23:19:16 2010 +0100
     1.3 @@ -1,15 +1,46 @@
     1.4  Poly/ML for Isabelle
     1.5  ====================
     1.6  
     1.7 -This distribution of Poly/ML 5.4 has been compiled from the original
     1.8 -sources using the included build script.  For example:
     1.9 +This compilation is based on the official Poly/ML 5.4 sources from
    1.10 +http://www.polyml.org with the following change in the SVN (which is
    1.11 +also part of the fixes-5.4 source tree):
    1.12  
    1.13 -  ./build polyml.5.4 x86-linux --with-gmp
    1.14 +------------------------------------------------------------------------
    1.15 +r1214 | dcjm | 2010-09-14 20:03:52 +0200 (Tue, 14 Sep 2010) | 1 line
    1.16  
    1.17 -The resulting executables and shared libraries are moved to
    1.18 -x86-linux/.  This directory layout accomodates the standard ML_HOME
    1.19 -settings for Isabelle.
    1.20 +Fix to arbitrary precision emulation for X86.  A GC during emulating
    1.21 +an operation could cause the stack to move resulting in the result of
    1.22 +the operation not being stored into the result register.
    1.23 +------------------------------------------------------------------------
    1.24 +diff libpolyml/x86_dep.cpp libpolyml/x86_dep.cpp.orig
    1.25 +1308,1311c1308
    1.26 +<                     if (! inConsts) {
    1.27 +<                         destReg = get_reg(taskData, rrr); // May have moved because of a GC.
    1.28 +<                         *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()+1);
    1.29 +<                     }
    1.30 +---
    1.31 +>                     if (! inConsts) *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()+1);
    1.32 +1344,1347c1341
    1.33 +<                     if (! inConsts) {
    1.34 +<                         destReg = get_reg(taskData, rrr); // May have moved because of a GC.
    1.35 +<                         *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()-1);
    1.36 +<                     }
    1.37 +---
    1.38 +>                     if (! inConsts) *destReg = PolyWord::FromUnsigned(destReg->AsUnsigned()-1);
    1.39 +
    1.40 +------------------------------------------------------------------------
    1.41 +
    1.42 +The included build script is used like this:
    1.43 +
    1.44 +  ./build src x86-linux --with-gmp
    1.45 +  ./build src x86_64-linux --with-gmp
    1.46 +  ./build src x86-darwin --without-gmp
    1.47 +  ./build src x86_64-darwin --without-gmp
    1.48 +  ./build src x86-cygwin --with-gmp
    1.49 +
    1.50 +The multi-platform directory layout for executables and shared
    1.51 +libraries accommodates the standard ML_HOME settings for Isabelle.
    1.52  
    1.53  
    1.54  	Makarius
    1.55 -	17-Aug-2010
    1.56 +	20-Dec-2010