From: Christophe R. <cr...@us...> - 2009-04-24 14:42:08
|
Update of /cvsroot/sbcl/sbcl In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv22656 Modified Files: version.lisp-expr Log Message: 1.0.27.41: floating point implementation smoothing To get floating point stuff exactly right, we should build a complete IEEE float implementation to do calculations in for the cross-compiler. Since that's not going to happen this millennium, instead try to be careful when writing code that looks constant-foldable. Some other fixups on the way... 6 messages follow: fix load-time tests in src/code/pred It turns out that #c(1.1 0) is not portable: it's a REAL in clisp and a COMPLEX in sbcl. begin work on floats Floats Are Hard. The issue is that the host's float implementation, even if it agrees with SBCL that SINGLE-FLOAT is IEEE single and DOUBLE-FLOAT is IEEE double, may not match sbcl idiosyncracy for idiosyncracy. For example, clisp doesn't support denormals, so its LEAST-FOOATIVE-QUUXLE-FLOAT constants are very different from sbcl's: and sbcl's can't even be represented within the host. Ugh. Defining the print-related MIN-E constants is, however, easy enough. comment (well, #!+long-float) out some floating point constants The clauses in question were never taken absent #!+long-float anyway. -0.0 is not portable: many lisps don't respect negative zeros Use make-unportable-float instead, and hope that this doesn't matter during cross-compilation... host floating point differences Not all lisps think (log 2d0 10d0) is the same. Compute it accurately and use LOAD-TIME-VALUE. tentative attempt at smoothing over host floating point differences Compute all the necessary constants as double-float bit patterns using LOAD-TIME-VALUE. Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.4407 retrieving revision 1.4408 diff -u -d -r1.4407 -r1.4408 --- version.lisp-expr 24 Apr 2009 14:26:30 -0000 1.4407 +++ version.lisp-expr 24 Apr 2009 14:41:54 -0000 1.4408 @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.27.40" +"1.0.27.41" |