- Oct 09, 2007
-
-
rtoy authored
independent of the scale factor.
-
rtoy authored
-
rtoy authored
accurate-scale-exponent and flonum-to-digits. o Minor clean up of scale in both places.
-
rtoy authored
o Add *POWERS-OF-TEN* for use in scaling. o Implement the fast log scaling from Burger and Dybvig's paper. Scaling is very noticeably faster for large and small numbers; it is somewhat slower for intermediate numbers near 1. (Should we test for this case?) format.lisp: o Implement an accurate scaling routine, based on the scale routine in FLONUM-TO-DIGITS. o Use the new scaling routine in FORMAT-EXP-AUX. This should fix Trac Ticket #12.
-
- Oct 08, 2007
-
-
rtoy authored
uses EQUAL hash-tables now to keep track of labels/flets. Basically moved the implementation of sxhash-instance from pcl/low.lisp to hash-new.lisp.
-
- Oct 04, 2007
-
-
rtoy authored
versions of which. Some versions of which will return a 0 exit code and return "no gmake in <paths>". This confuses the script. Check for this and set MAKE to "make" in this case, and hope for the best.
-
rtoy authored
if the user set a different value. Fix this so the correct precision is restored. compiler/x86/parms.lisp: o Add new static-symbol *FPU-PRECISION* to hold the precision bits that are given in (setf floating-point-modes). compiler/x86/float.lisp: o Whenever (setf floating-point-modes) is called, save the precision bits to *FPU-PRECISION* so that get restored correctly in DEALLOC-NUMBER-STACK-SPACE. compiler/x86/c-call.lisp: o Update DEALLOC-NUMBER-STACK-SPACE VOP so that when float-accuracy policy says so, we restore the precision from *fpu-precision*, instead of always making it :53-bit. code/lispinit.lisp: o Initialize the default precision to :53-bit on startup.
-
rtoy authored
-
- Oct 03, 2007
-
-
rtoy authored
Instead of having scale-exponent scale the number and using the scaled number for printing, have flonum-to-string scale the number for us. There is no loss in precision in flonum-to-string, so we don't have round-off errors in printing the number. This means (format nil "~E" 1.234567890123456789d4) is printed as "1.2345678901234567d+4" instead of "1.2345678901234565d+0". Then prin1 and ~E both call flonum-to-digits with exactly the same number, so prin1 and ~E should have the same printed result. These tests pass: (assert (string= (format nil "~9,4,,-7E" pi) ".00000003d+8")) (assert (string= (format nil "~9,4,,-5E" pi) ".000003d+6")) (assert (string= (format nil "~5,4,,7E" pi) "3141600.d-6")) (assert (string= (format nil "~11,4,,3E" pi) " 314.16d-2")) (assert (string= (format nil "~11,4,,5E" pi) " 31416.d-4")) (assert (string= (format nil "~11,4,,0E" pi) " 0.3142d+1")) (assert (string= (format nil "~9,,,-1E" pi) ".03142d+2")) (assert (string= (format nil "~,,,-2E" pi) "0.003141592653589793d+3")) (assert (string= (format nil "~,,,2E" pi) "31.41592653589793d-1")) (assert (string= (format nil "~E" pi) "3.141592653589793d+0")) (assert (string= (format nil "~9,5,,-1E" pi) ".03142d+2")) (assert (string= (format nil "~11,5,,-1E" pi) " 0.03142d+2")) (assert (string= (format nil "~G" pi) "3.141592653589793 ")) (assert (string= (format nil "~9,5G" pi) "3.1416 ")) (assert (string= (format nil "|~13,6,2,7E|" pi) "| 3141593.d-06|")) (assert (string= (format nil "~9,3,2,0,'%E" pi) "0.314d+01")) (assert (string= (format nil "~9,0,6f" pi) " 3141593.")) (assert (string= (format nil "~6,2,1,'*F" pi) " 31.42")) (assert (string= (format nil "~6,2,1,'*F" (* 100 pi)) "******")) (assert (string= (format nil "~9,3,2,-2,'%@E" pi) "+.003d+03")) (assert (string= (format nil "~10,3,2,-2,'%@E" pi) "+0.003d+03")) (assert (string= (format nil "~15,3,2,-2,'%,'=@E" pi) "=====+0.003d+03")) (assert (string= (format nil "~9,3,2,-2,'%E" pi) "0.003d+03")) (assert (string= (format nil "~8,3,2,-2,'%@E" pi) "%%%%%%%%")) (assert (string= (format nil "~g" 1e0) "1. ")) (assert (string= (format nil "~g" 1.2d40) "12000000000000000000000000000000000000000. ")) (assert (string= (format nil "~e" 0) "0.0e+0")) (assert (string= (format nil "~e" 0d0) "0.0d+0")) (assert (string= (format nil "~9,,4e" 0d0) "0.0d+0000")) (assert (string= (format nil "~E" 1.234567890123456789d4) "1.2345678901234567d+0"))
-
rtoy authored
-
- Oct 02, 2007
-
-
rtoy authored
o In MAYBE-CONVERT-TAIL-LOCAL-CALL, honor the notinline declaration when deciding if we can let convert a tail call. This is useful for tracing of local functions. code/debug-int.lisp: o If we can't find a debug function, print a note that the (local) function might have been inlined.
-
- Oct 01, 2007
-
-
rtoy authored
(parse-time "1 jan 2006") causes an error if Jan 1, 2006 isn't on the same day of the week as the current day of the week. Patch supplied by Madhu, cmucl-imp, 24 Sep 2007. o Change default dotw value from nil to -1 so we can properly initialize the dotw.
-
- Sep 28, 2007
- Sep 25, 2007
-
-
rtoy authored
The defoptimizer for SIGNUM was not handling DOUBLE-DOUBLE-FLOAT numbers at all.
-
- Sep 13, 2007
-
-
rtoy authored
-
rtoy authored
retracing flet/labels functions. This was caused by the hash-table in *TRACE-FUNCTIONS* using an EQ test. This doesn't work well when the functions are lists like (FLET INNER OUTER). code/ntrace.lisp: o Change *TRACED-FUNCTIONS* to use an EQUAL table so lists can match. pcl/braid.lisp: o Move LISP::SXHASH-INSTANCE to low.lisp because we need it defined earlier because of the change to tracing. Can't build PCL without this change. pcl/low.lisp: o LISP::SXHASH-INSTANCE moved here.
-
- Sep 10, 2007
- Sep 05, 2007
-
-
rtoy authored
-
- Sep 04, 2007
-
-
cshapiro authored
definitions accordingly.
-
- Aug 29, 2007
-
-
rtoy authored
-
- Aug 28, 2007
-
-
rtoy authored
Add case for double-double-float.
-
- Aug 22, 2007
-
-
fgilham authored
-
- Aug 21, 2007
- Aug 17, 2007
-
-
rtoy authored
o Let's just return all of the declarations we know of, instead of removing some, in DECLARATION-INFORMATION. o Add the known set of CL (and CMUCL) declarations to the list of declarations that are returned in DECLARATIONS. o Add support for AUGMENT-ENVIRONMENT. code/exports.lisp: o Export AUGMENT-ENVIRONMENT from EXT package. o Import AUGMENT-ENVIRONMENT into C package.
-
rtoy authored
-
rtoy authored
-
- Aug 15, 2007
-
-
rtoy authored
-
- Aug 14, 2007
-
-
fgilham authored
-
rtoy authored
appears to be created successfully, and you can do things, but it is not usable. lisp/elf.h: o Set C_COMPILER to either "cc" or "gcc". We use gcc everywhere, except if the C compiler is Sun C on sparc. lisp/elf.c: o Print out C_COMPILER as the first arg to the linker script. tools/linker.sh: o Rearrange code so test for number of args is done first. o Look at the first arg to determine the C compiler used. If gcc, use the original code. Add new code to support Sun C.
-
- Aug 08, 2007
- Aug 05, 2007
-
-
fgilham authored
-
- Aug 04, 2007
-
-
fgilham authored
-
- Aug 03, 2007