- Nov 03, 2003
-
-
gerd authored
(let* ((string (symbol-name symbol)) (length (length string))) (if (or (< length 3) (not (char= (elt string 0) #\*)) (not (char= (elt string (1- length)) #\*))) (error "Symbol does not follow dynamic conventions.") (if prefix (intern (cs prefix (subseq string 1 (1- length)))) (intern (subseq string 1 (1- length))))))) => spurious code deletion note that goes away when the local variable length is renamed to something else. * src/compiler/generic/vm-tran.lisp (subseq, copy-seq) <deftransform>: Use len as local variable name instead of cl:length.
-
- Nov 01, 2003
-
-
toy authored
-
- Oct 29, 2003
-
-
toy authored
as the instruction. (Because there are instructions that might match the LRA header type).
-
gerd authored
-
gerd authored
parameters that are being assigned to in the method body. Reported by Hans Chalupsky on cmucl-imp. * src/pcl/boot.lisp (method-parameter): New function, extracted from make-pv-call. (assigned-method-params): New function. (make-method-lambda-internal): Call it to disable optimizations on method parameters being assigned to. * src/pcl/method-slot-access-optimization.lisp (get-param/class-to-optimize): Use new function method-parameter. * src/pcl/gf-call-optimization.lisp (make-pv-call): Ditto. * src/pcl/std-class.lisp (ensure-class-using-class): Don't setq a method parameter.
-
- Oct 27, 2003
- Oct 26, 2003
-
-
gerd authored
unreachable blocks, similar to ir1-optimize, which we don't call. This simplifies things by reducing the differences between "normal" compilation and compiling for interpretation. * src/compiler/ir1util.lisp (block-unreachable-p): New function. (delete-lambda): Mark return blocks for deletion again. * src/compiler/ir1opt.lisp (ir1-optimize): Use block-unreachable-p. Delete unreachable blocks after the loop.
-
gerd authored
Wrap locally around single-element bodies, it can be a declaration. ANSI test HANDLER-CASE.29.
-
gerd authored
(max (return-from b3 1) (if (unwind-protect (unwind-protect 2)) 3 4)))) => nil is not of type c::ref * src/compiler/envanal.lisp (emit-cleanups): Don't generate a %funcall If second arg of :unwind-protect cleanup is unused. Found by Paul Dietz.
-
- Oct 25, 2003
-
-
toy authored
-
- Oct 24, 2003
-
-
toy authored
-
toy authored
-
toy authored
(defvar *s* (open "target:code/scavhook.lisp")) (defvar *buf* (make-array 5000 :element-type 'character)) (read-sequence *buf* *s* :end 3000) => 3000 (read-sequence *buf* *s* :end 3000) => 1096 or 4096 bytes read, when we should have read 4139 (length of scavhook.lisp). Make READ-INTO-SIMPLE-STRING keep trying to READ-N-BYTES until we have enough bytes or until READ-N-BYTES returns 0 bytes read (in which case we return a short read because there's nothing left to read).
-
toy authored
-
toy authored
-
toy authored
* x86-assem.S (multiple_value_return): Add new functions to handle heap overflow warnings and errors. * x86-arch.c (sigtrap_handler): Add cases for the two new heap overflow traps. * interrupt.c (interrupt_handle_space_overflow): Add support for x86. * parms.lisp (static-symbols): Add new static symbols for heap overflow checking. Add new trap types for heap overflow checking.
-
toy authored
-
toy authored
overflow checking. Enable with :heap-overflow-check. We reserve some number of pages on the heap. When the heap reaches the reserved pages, an overflow warning is signalled. The reserved pages are set 0. This allows some additional allocation to happen during debugging, if necessary. If another overflow happens, we throw to top-level. Sparc only right now. * lisp/sparc-assem.S (_do_dynamic_space_overflow_error): New function to handle a heap overflow error. (_do_dynamic_space_overflow_warning): New function to handle heap overflow warning. * lisp/sparc-arch.c (sigill_handler): Handle the two new traps caused by heap overflows. * lisp/interrupt.c (interrupt_handle_space_overflow): New function to handle interrupt caused by heap space overflows. * lisp/gencgc.c (handle_heap_overflow): New function to handle heap overflows. (gc_alloc_new_region): Use handle_heap_overflow. (gc_alloc_large): Use handle_heap_overflow * compiler/sparc/parms.lisp (static-symbols): Add new static symbols for heap overflow checking: dynamic-space-overflow-error-hit and dynamic-space-overflow-warning-hit. * compiler/generic/new-genesis.lisp (finish-symbols): Initialize the new dynamic-space-overflow-error-hit and dynamic-space-overflow-warning-hit static symbols. * code/lispinit.lisp (:heap-overflow-check): Add heap-overflow-check to *runtime-features*, if necessary. ("reserved_heap_pages"): Access to alien variable for heap overflow. (*reserved-heap-pages*): Default number of heap pages to reserve for heap overflow. (%top-level): Set reserved-heap-pages to the default. * code/interr.lisp (dynamic-space-overflow-warning-hit): Add function to handle heap overflow warnings. (dynamic-space-overflow-error-hit): Add function to handle heap overflow error. * code/error.lisp (heap-overflow): Add new condition type for heap overflow
-
- Oct 23, 2003
- Oct 21, 2003
-
-
gerd authored
the return-block for deletion.
-
- Oct 20, 2003
- Oct 18, 2003
-
-
toy authored
-
toy authored
-
toy authored
o Add -l option to clean out the lisp C runtime and motif runtime as well as the fasls.
-
toy authored
-
toy authored
what this is supposed to do.
-
toy authored
-G to select the group to use for the installation -O to select the owner -b for bzip compression -g for gzip compression (the default, if none given)
-
toy authored
based on uname -s. Currently only supports Linux and Solaris. o Moved all the feature frobbing stuff from this file to separate files in the new setenv-scripts directory. (Should we get rid of these? However, they do serve as useful documentation of what features might exist in a given platform.)
-
toy authored
pseudo-atomic flag o Add a trap-arg-printer so we can print a note about what the trap number means.
-
- Oct 17, 2003
- Oct 16, 2003
-
-
toy authored
or/andn, so we don't inadvertently reset pseudo-atomic by adding the flag, thinking we're setting it. (Granted, this probably means we were already doing something wrong, but this will make it a bit more robust.)
-