- Oct 05, 2003
-
-
gerd authored
'(lambda (a b c) (declare (notinline logandc2 not)) (declare (optimize (safety 3))) (declare (optimize (speed 0))) (declare (optimize (debug 0))) (let ((v10 (let ((v5 (if (not nil) -4 (logandc2 68392 c)))) c))) a))) => assertion failure, (not (block-delete-p block)) * src/compiler/ir1opt.lisp (recognize-known-call): Treat :inline and :maybe-inline like :notinline if byte-compiling or converting for interpreter. Reported by Paul Dietz.
-
gerd authored
* src/compiler/globaldb.lisp (get-info-value): * src/code/extensions.lisp (define-hash-cache): Use without-interrupts.
-
- Oct 04, 2003
-
-
gerd authored
(flet ((%f16 () (setq c 1))) (+ (%f16) (%f16))))) => assertion failure, c not found in environment Found by Paul Dietz (similar cases). * src/compiler/envanal.lisp (compute-closure): Don't close over unused variables from sets. Not really a port from SBCL because I needed to debug this to the point where the cause was clear; SBCL does the same though.
-
- Oct 03, 2003
-
-
gerd authored
(declare (type (integer -290488443 2) b) (optimize (speed 3) (safety 1) (debug 1))) (let ((v3 (min -1720 b))) (max v3 (logcount (if (= v3 b) b b)))))) => error in function lisp::assert-error: the assertion (eq c::env (c::lambda-environment (c::lambda-var-home c::thing))) failed. Found by Paul Dietz. Fix from SBCL/Alexey Dejneka. * src/compiler/constraint.lisp (constrain-ref-type): Don't change a ref to an unused leaf.
-
- Oct 02, 2003
-
-
gerd authored
'(lambda (c) (declare (optimize (speed 3) (debug 1))) (flet ((%f18 () -36)) (flet ((%f13 () (let () (block b8 (return-from b8 c))))) (%f18))))) => error nil is not an integer, in dump-1-variable Found by Paul Dietz. This is caused by a lambda-var being passed to dump-1-variable which hasn't been packed, and so has a null tn-offset. A ref to this lambda-var remains at this point because it is referenced from a different component. The ref is deleted when that component is compiled. The problem is that there shouldn't have been two components to begin with, which we prevent by recording additional DFO dependencies for closed-over variables and entries. Port from SBCL, basically. Does not require a bootstrap file, but a full build is necessary due to the renamed clambda structure slot. * src/compiler/dfo.lisp (dfo-walk-call-graph): Process new dfo dependencies. * src/compiler/node.lisp (clambda): Rename slot `calls' to `dfo-dependencies'. * src/compiler/locall.lisp (convert-call, convert-mv-call): Call note-dfo-dependency. (merge-lets): Change for new clambda slot name. (unconvert-tail-calls): Handle the case of non-clambdas in the dfo dependencies. * src/compiler/ir1util.lisp (continuation-home-lambda) (note-dfo-dependency): New functions. * src/compiler/ir1tran.lisp (ir1-convert-variable) (return-from, go, setq): Call note-dfo-dependency. * src/compiler/xref.lisp (lambda-called-p): New function. (prettiest-caller-name): Use lambda-called-p instead of lambda-calls.
-
- Sep 29, 2003
-
-
toy authored
can happen when we scavenge the control stack on non-x86.
-
- Sep 26, 2003
-
-
toy authored
Use boot18 to bootstrap this change.
-
toy authored
some hardwired random number.
-
toy authored
-
toy authored
cases: o SIGNUM of a (complex rational) is a (complex single-float) o If the interval contained 0, we weren't returning an interval that included both +0 and -0. Required since (signum -0.0) is -0.0. Fixed a bug where we didn't set the bounds of a numeric type to the correct type.
-
- Sep 25, 2003
-
-
toy authored
byte-fasl-file-version. * src/code/sysmacs.lisp (register-lisp-runtime-feature): (register-lisp-feature): Don't quote the given feature. * src/code/misc.lisp: Register more features, mostly for sparc.
-
toy authored
-
toy authored
REGISTER-LISP-RUNTIME-FEATURE.
-
toy authored
REGISTER-LISP-RUNTIME-FEATURE.
-
toy authored
and *RUNTIME-FEATURES* and setting them appropriately as files are loaded so that recompiling CMUCL produces a result with the same set of features. *RUNTIME-FEATURES* is a subset of *FEATURES* that is written out to internals.h so the C code can be compiled appropriately. A simple bootstrap with boot17 is needed.
-
- Sep 24, 2003
-
-
toy authored
types of numbers are correctly canonicalized for the type system.
-
toy authored
of (defun foo (x) (declare (type (double-float (0d0)) x)) (* x (- (log (random 1d0))))) ONE-ARG-DERIVE-TYPE and TWO-ARG-DERIVE-TYPE should not create member types directly, but should use specifier-type to create them, which will canonicalize them appropriately for the type system. The type system expects member types to be converted to unions of singleton number types, except in certain cases, like signed zeroes. Based on a patch from Christophe Rhodes, sent to cmucl-imp.
-
gerd authored
'(lambda (a b c) (block b6 (logeqv (rem c -6758) (rem b (max 44 (return-from b6 a))))))) => error nil is not of type c::node * src/compiler/macros.lisp (do-nodes-backwards): Stop at unused continuations. Reported by Paul Dietz. Ported from SBCL/Alexey Dejneka.
-
- Sep 22, 2003
- Sep 18, 2003
-
-
gerd authored
to fprintf.
-
- Sep 16, 2003
- Sep 15, 2003
- Sep 14, 2003
-
-
emarsden authored
stale information when recompiling a file. Will fix this limitation in the next few weeks.
-
gerd authored
that is likely caused by it, and which needs to be tracked down first before enabling dynamic-extent again. * src/compiler/envanal.lisp (*suppress-dynamic-extent-safe-closures*): Set to true. * src/compiler/ir1tran.lisp (*trust-dynamic-extent-declarations*): Set to nil.
-
- Sep 13, 2003
-
-
gerd authored
* src/lisp/gencgc.c (set_pseudo_atomic_atomic) (clr_pseudo_atomic_atomic) [i386]: Reverse the values assigned to PSEUDO_ATOMIC_ATOMIC, remove semicolons. (alloc_pseudo_atomic): New function wrapping alloc in a pseudo-atomic section. (alloc): Remove code for the non-PA case, rewrite the rest to use a loop instead of goto.
-
- Sep 12, 2003
-
-
toy authored
-
toy authored
-
gerd authored
is an invalid type specifier. * src/compiler/float-tran.lisp (float): Make three optimizers, one for no prototype, one for single-float prototype, and one for double-float prototype.
-
gerd authored
%dpb optimizer. Add in a sign bit for signed numbers. (%dpb, %deposit-field) <defoptimizer>: Use %dpb-derive-type-aux. Reported by Paul Dietz.
-
gerd authored
is an invalid type specifier. Reported by Paul Dietz.
-
- Sep 11, 2003
- Sep 10, 2003
-
-
toy authored
o Add symbolic names for the predefined PREFETCH function values. o Add SIGNX (sign extend) and CLRUW (zero-extent, clear upper word) synthetic instructions.
-
- Sep 09, 2003
- Sep 08, 2003
-
-
gerd authored
-