- Dec 21, 2007
-
-
cshapiro authored
struct than the utsname struct in sys/utsname.h and the alien struct definition in Lisp. Instead of calling the exported uname, call the underlying __xuname that knows about with the post FreeBSD 4 struct.
-
- Dec 18, 2007
-
-
rtoy authored
check in for this condition in case it should appear again. Remove this at some later date if this doesn't happen anymore.
-
- Dec 17, 2007
-
-
cshapiro authored
h_errno. Like errno, it is left unspecified whether h_errno is a macro or an identifier declared with external linkage. Let the C compiler sort this out for us.
-
- Dec 15, 2007
-
-
rtoy authored
issues like why the mcontext slot is 0 in the sigcontext from a function end breakpoint. This works around that problem for now. lisp/x86-arch.c: o Add documentation on how arch_do_displaced_inst works. o Darwin has the eflags register in the sigcontext so use that to enable and disable single-stepping using the eflags slot. This is how Linux works too. This change makes function start breakpoints work. code/debug-int.lisp: o In FIND-ESCAPED-FRAME, make sure the mcontext slot is not null (0) before we try to grab the cfp slot from it. This works around an issue where the mcontext slot is 0 on Darwin. code/ntrace.lisp: o Make *TRACE-ENCAPSULATE-DEFAULT* be :default again.
-
- Dec 13, 2007
-
-
rtoy authored
default be encapsulation.
-
- Nov 14, 2007
-
-
rtoy authored
-
rtoy authored
rearrangement. Changes not tested, but there are no compiler warnings anymore. o Fix typo: It's fpstate, not ftpstate. o Fix dereferencing of the fpstate, which is not in the sigcontext anymore. It's in the sc-mcontext slot of the sigcontext now.
-
rtoy authored
o Add comments that we need to cross-compile on x86. o Load up boot-2007-11-1 for the x86 cross-compile to get rid of a warning. o Load up the default cross-x86-x86 script. exports.lisp: o Remove FLOAT-ACCURACY. It is now gone.
-
rtoy authored
unix-glibc2 doesn't define FILE-OFFSET.
-
cshapiro authored
the precision control will always be set to double precision. For the duration of calls into C, the precision control will be set to the ABI default. On Linux and Darwin this is double extended precision. On all other platforms the precision control is left as double precision. The specious FLOAT-ACCURACY declaration has been eliminated. * Shorten the precision control field to 24-bits by disposing of the unexamined high order eight bits of the status word. This compacts the code generated around floating point mode changes and reduces consing. * Eliminate unnecessary uses of FLDENV and FSTENV. We can substitute a use of FSTENV with FSTSW in FLOATING-POINT-MODES. This reduces the number of cycles to access the relevant mode bits by a factor of thirty. We cannot eliminate FLDENV in SET-FLOATING-POINT-MODES, but the common case does not require an update to the status word. A fast path has been added to the VOP that improves the execution time by at least a factor of fifteen. * Remove the precision control option to SET-FLOATING-POINT-MODES. It is the responsibility of the compiler to generating code that yields correctly rounded results in double and single precision.
-
- Nov 09, 2007
-
-
rtoy authored
happened because the callback trampoline used malloc'ed space which were not executable by default. Change this so that the trampoline is executable. code/unix.lisp, code/unix-glibc2.lisp: o Add UNIX-MPROTECT code/exports.lisp: o Export UNIX-MPROTECT code/alieneval.lisp: o Make sure the malloc'ed trampoline area is executable. general-info/release-19e.txt: o Update
-
- Nov 06, 2007
- Nov 05, 2007
-
-
rtoy authored
simple-streams buffers) into LISP and removes them from simple-streams (and from EXT). Use boot-2007-11-1.lisp to bootstrap the necessary symbol changes. Patch from Paul Foley.
-
- Oct 31, 2007
-
-
rtoy authored
o Disable package errors when loading up external formats. o A minor patch allowing string-to-octets and vice versa to write into a preallocated array (though they might still allocate a bigger one if necessary), o Fix up any confusion between simple-base-string and simple-string so that nothing breaks when/if they're not the same.
-
- Oct 25, 2007
-
-
rtoy authored
New files: o code/extfmts.lisp o pcl/simple-streams/external-formats/iso8859-1.lisp o pcl/simple-streams/external-formats/void.lisp code/exports.lisp: o Export the new symbols STRING-TO-OCTETS, OCTETS-TO-STRING, *DEFAULT-EXTERNAL-FORMAT*, ENCODE-STRING, and DECODE-STRING from the STREAM package o Make the symbols in the EXT package too. pcl/simple-streams/internal.lisp: o Move the implementation of STRING-TO-OCTETS and friends to a new file (extfmts.lisp). pcl/simple-streams/external-formats/utf-8.lisp: o New implementation. tools/make-main-dist.sh: o Create new target directory to hold external formats o Copy all of the external formats to the new directory. tools/pclcom.lisp: o Compile new code tools/worldcom.lisp: o Compile code/extfmts.lisp tools/worldload.lisp: o Load code/extfmts.lisp
-
- Oct 18, 2007
-
-
rtoy authored
don't do the hackish list-of-name to find local debug function anymore. This change allows us to retrace local functions when the function is redefined. code/debug-int.lisp: o Add :LOCAL-NAME keyword parameter to tell us to look for the local function within the given FUN. The bizarre hack using a list as the FUN to do this is now gone. code/ntrace.lisp: o Change TRACE-FDEFINITION to return a fourth value if the function is a local function. The fourth value is the name of the local function. o TRACE-1 recognizes the extra value from TRACE-FDEFINITION to determine if this is a local function that needs to be traced. Also, if DEFINITION is given, we process that carefully so we can trace the new definition with a local function. o UNTRACE-1 likewise updated to recognize and handle local functions. o TRACE-REFINED-UPDATE modified so that when a function is redefined, we retrace the function itself if it was traced (as before). But we also look through the traced functions to see if we need to retrace the local definitions in this new function.
-
- Oct 10, 2007
-
-
rtoy authored
double-doubles. o Remove now unused DOUBLE-DOUBLE-FLOAT-FROM-BITS. This should fix an issue with converting bignums to double-doubles. For example (- (ash 1 150) 1) can now be be represented accurately as a double-double.
-
rtoy authored
double-double-floats. (From Richard Fateman.) o Use that in FLOAT-RATIO for convertnig ratios to double-double-floats. o Remove old double-double-float support from FLOAT-RATIO. o Split FLOAT-RATIO in two, one supporting single/double floats, and one for double-double-floats. With these changes, I think we now have print/read consistency for double-double-float numbers.
-
- Oct 09, 2007
-
-
rtoy authored
-
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
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"))
-
- 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
-
-
rtoy authored
MAPHASH needs to grab the kv-vector from the hash table for each iteration because the hash table may have been rehashed. (This mostly reverts the code to the previous version, where this bug was introduced.)
-
- Sep 13, 2007
-
-
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
-
-
rtoy authored
bug that #p"..." didn't have a namestring. Some further changes were also applied to fix the problem that #p"..a" had directory = (:relative), name = nil, and type "a". This is now directory = nil, name = ".", type ="a".
-
- Sep 04, 2007
-
-
cshapiro authored
definitions accordingly.
-
- Aug 28, 2007
-
-
rtoy authored
Add case for double-double-float.
-
- Aug 21, 2007
-
-
fgilham authored
-
- 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 08, 2007
-
-
rtoy authored
exactly sure how this should work, but we can return declarations defined by the user.
-