- May 14, 2004
-
-
rtoy authored
itself. Only for sparc currently. Doesn't lazily compute the symbol hash yet. Simple test shows a 5% increase in compilation speed, despite making make-symbol significantly slower. * src/code/hash-new.lisp (internal-sxhash): Use the symbol-hash slot instead of computing the hash value. * src/compiler/generic/new-genesis.lisp (allocate-symbol): Write out the sxhash value of the symbol into the symbol-hash slot. * src/compiler/globaldb.lisp (info-hash): Update to use the symbol hash instead of computing the sxhash. * src/code/symbol.lisp (make-symbol): Compute the symbol hash when creating the symbol. * src/compiler/sparc/cell.lisp ((symbol-hash)): Add vop to extract out the symbol hash from a symbol. * src/compiler/generic/objdef.lisp: Rename the unused slot to hash, so we can make it the symbol hash.
-
- May 13, 2004
-
-
rtoy authored
CLOS/defmethod test in cl-bench to run. (I'm waiting for bug reports before adding this everywhere.) o Add a temp to the MOVE-ARGUMENT vop so we can store things on the stack with large offsets.
-
rtoy authored
o Add a global temp register, gtemp, for use in move-functions when a temp register is needed. Currently %g7, but could be changed to a5 (aka %l5) if necessary, which some more straightforward work.
-
- May 11, 2004
-
-
rtoy authored
adds the mark_bit slot to weak-pointers and eliminates the n-squared performance problem with scav_weak_pointer.
-
- May 10, 2004
- May 06, 2004
-
-
rtoy authored
source location for defvar and friends.
-
- May 05, 2004
-
-
rtoy authored
in general.)
-
- Apr 28, 2004
-
-
rtoy authored
(macrolet ((%x () t)) (declare (optimize)) (declare (notinline identity))) Because the macrolet IR1 translator puts a list onto the FVARS arg in PROCESS-INLINE-DECLARATION, which is not a LEAF. This patch works around this by checking to see if the element of FVARS is a LEAF before getting the LEAF-NAME. There is probably a better solution.
-
- Apr 27, 2004
-
-
emarsden authored
- fix lambda-list processing: symbols with names like &foo should be handled like normal arguments, if they are not present in LAMBDA-LIST-KEYWORDS. Issue a STYLE-WARNING instead of signaling an error.
-
- Apr 23, 2004
-
-
rtoy authored
be printed with ~A. Hope this doesn't cause other problems, but this shows up when the context contains something like a condition object with unbound slots.
-
- Apr 19, 2004
-
-
rtoy authored
closures are disabled. This causes problems with hemlock so we turn it off.
-
- Apr 16, 2004
-
-
rtoy authored
From Helmut Eller.
-
rtoy authored
limitation of the 13-bit signed offset in instructions.)
-
rtoy authored
o Fix problem where the desired size is a number that won't fit in the 13-bit signed offset of an instruction. Fortunately, we had a temp register we could use. However, we cannot currently stack allocate something that large. The code needs to be rearranged. We also need to fix the code for non-gencgc version, but I'm not going to do that. There are also other issues that might crop up. The number stack or control stack could be an issue if there are enough locals or args.
-
- Apr 13, 2004
-
-
rtoy authored
-
rtoy authored
o Do not generate dynamic-extent closures. This should enable dynamic-extent &rest lists and dynamic-extent lists, but dynamic-extent closures are disabled.
-
rtoy authored
Hacker's Delight.
-
rtoy authored
using division to multiplication by a magic multiplier. (From Hacker's Delight on signed and unsigned division.)
-
- Apr 08, 2004
-
-
rtoy authored
source-location. This bug triggered by (compile nil (lambda () (defclass foo () ()))) (Bug and fix from Eric Marsden.)
-
- Apr 07, 2004
- Apr 06, 2004
-
-
rtoy authored
cmucl-imp: The patch below adds a somewhat general mechanism to the get the "current location". So every macro that wants to record the source location, can insert a call to SOURCE-LOCATION in the generated code and safe the result in a appropriate place. SOURCE-LOCATION is a compiler-macro and returns a quoted struct with the source info. The patch adds the definition for SOURCE-LOCATION some modifications for the defclass, defgeneric and defmethod macros. Classes, generic functions and methods have already a "source" slot and the result of SOURCE-LOCATION is just stored into that slot. (The source slot contains currently only the *loadpath*, which is is not very useful, if the fasl file is in a different directory than the source file.)
-
rtoy authored
during interval arithmetic and returns a doubly unbounded INTERVAL. Use this in the INTERVAL-* routines. This is intended to fix the ansi-test failure misc.89. The approach is rather heavy-handed, and a better solution is desirable.
-
rtoy authored
revision 1.10.1.3 date: 90/04/13 12:11:22; author: ram; state: Exp; lines added/del: 8/3 Changed block dumping to notice when the successor is in a different environment (due to a TR call). ---------------------------- revision 1.10.1.2 date: 90/04/08 17:54:38; author: ram; state: Exp; lines added/del: 2/2 old-cont => old-fp ---------------------------- revision 1.10.1.1 date: 90/03/27 12:12:06; author: ram; state: Exp; lines added/del: 1/0 Added support for file comments.
-
- Apr 01, 2004
-
-
rtoy authored
(defun foo (f d) (declare (type (simple-array single-float (*)) f) (type (simple-array double-float (*)) d)) (setf (aref f 0) (aref d 0))) doesn't produce any warnings and generates completely bogus code. Don't know what the real answer solution is, but turning off the assert-continuation-type for a single-use continuation fixes this, which is what 18a used to do. There are probably other bugs that this hides.
-
- Mar 29, 2004
-
-
rtoy authored
consistent in which argument is selected. Previously, they were inconsistent which causes problems when the argument types are equal, but of different types. (Based on a patch Alexey Dejneka did for SBCL for the same issue.)
-
rtoy authored
defined. Define it.
-
rtoy authored
doesn't return any values, but instance-set is supposed to. This shows up in some PCL code that expects the instance-set to do the correct thing, but the VOP returns NIL.
-
- Mar 24, 2004
-
-
emarsden authored
- component names may be non-pretty-printable
-
- Jan 19, 2004
-
-
toy authored
(that we backed out) so (abs (the (double-float 0d0) x)) produces the correct result. o Add a kludge to INTERVAL-RANGE-INFO to handle the case of an interval -0.0 to 0.0 specially. INTERVAL-RANGE-INFO should return NIL instead of '- for this. o The fixes to INTERVAL-RANGE-INFO tickle a bug in INTERVAL-SPLIT where we weren't correctly splitting the the interval [-0.0, 0d0] into 2 intervals correctly. This was causing the compiler to loop forever deriving things. This is all a bit kludgy. Dealing with signed-zeroes is a pain.
-
- Jan 17, 2004
-
-
toy authored
the stack: (defun foo (x) (declare (type (member 0d0 -0d0) x)) (/ 46666 x))
-
- Jan 16, 2004
-
-
toy authored
-
toy authored
-
toy authored
target-dynamic-space-start be defconstants so that they'll get dumped to internals.h. o Move the dynamic space start on Linux to a higher address so that CMUCL can run in an x86-64 CPU. o Move the start of the foreign linkage space higher on Linux too so that we don't lose as much heap space.
-
- Jan 15, 2004
-
-
toy authored
o MOVE-FROM-SIGNED uses a shorter sequence of instructions with fewer branch instructions to figure out if the number is a fixnum. o MOVE-FROM-UNSIGNED uses shorter sequence of instructions to set the bignum correctly.
-
- Jan 10, 2004
-
-
toy authored
This shows up in deriving the type of (abs (the (double-float 0d0))), which was (double-float 0d0), but should have been (or (member 0d0) (double-float (0d0)). o In TWO-ARG-DERIVE-TYPE, use our own same-leaf-ref-p in place of the real same-leaf-ref-p. We don't care if the leaf is not constant, only that they are the same leaf. This shows up in Eric Marsden's cl-bench where CMUCL was not able to deduce that z^2 is positive in mandelbrot/dfloat.
-
toy authored
we don't have to call abs at all.
-
- Jan 09, 2004
-
-
toy authored
current-region-free-pointer. Cross compile may be needed, but I'm not sure. I only used cross-compiling to do this change. sparc/macros.lisp: o Update the allocation macro appropriately for alloc-tn holding the current-region-free-pointer. lisp/gencgc.c: o Define macros for setting and getting *current-region-free-oointer* and *current-region-end-addr* so sparc can use alloc-tn. *current-region-free-pointer* isn't used anymore, but is still a static symbol. It's been replaced by alloc-tn. o On sparc, set_alloc_pointer doesn't need to do anything anymore. o Don't need to call update_dynamic_space_free_pointer anymore. o The assertion that *current-region-free-pointer* is a fixnum is no longer valid on sparc because that is alloc-tn which contains the pseudo-atomic bits. lisp/sparc-arch.c: o The allocation trap instruction is now preceeded by a SUB instruction. Handle that correctly. Keep support for the OR instruction for now, but should be removed. o Set alloc-tn from current_dynamic_space_free_pointer.
-
toy authored
there's only one place (Lisp) to maintain the space-start values. new-genesis.lisp: o Any constants ending with "-SPACE-START" are dumped to internals.h sparc/parms.lisp: o Make target-read-only-space-start, target-static-space-start, target-dynamic-space-start, and target-foreign-linkage-space-start defconstants instead of defparameters so that internals.h will have the values for use in C code.
-