From: Christophe R. <cr...@us...> - 2004-05-11 18:30:02
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3976/tests Modified Files: print.impure.lisp Log Message: 0.8.10.19: Fix floating point read/print consistency, with a slightly tidied up version of Burger and Dybvig from the one CSR posted to sbcl-devel ca. end 2004-04. ... no more recursion, yay! ... still two versions of float printing algorithms ... test case ... fix the reader too. (The original workaround was probably a CMUCLism from having :underflow traps enabled; since SBCL has never been distributed with underflow traps, we can remove the workaround). Log all remaining undisputed bugs from Bruno Haible. Index: print.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/print.impure.lisp,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- print.impure.lisp 9 May 2004 17:12:15 -0000 1.18 +++ print.impure.lisp 11 May 2004 18:29:51 -0000 1.19 @@ -220,5 +220,16 @@ (assert (and w-p f-p)) (assert (nth-value 1 (ignore-errors (funcall f))))) +;;; floating point print/read consistency +(let ((x (/ -9.349640046247849d-21 -9.381494249123696d-11))) + (let ((y (read-from-string (write-to-string x :readably t)))) + (assert (eql x y)))) + +(let ((x1 (float -5496527/100000000000000000)) + (x2 (float -54965272/1000000000000000000))) + (assert (or (equal (multiple-value-list (integer-decode-float x1)) + (multiple-value-list (integer-decode-float x2))) + (string/= (prin1-to-string x1) (prin1-to-string x2))))) + ;;; success (quit :unix-status 104) |