Skip to content
Snippets Groups Projects
  1. Nov 03, 2003
    • gerd's avatar
      (defun lexical-symbol (symbol &optional prefix) · e3d1deb1
      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.
      e3d1deb1
  2. Nov 01, 2003
  3. Oct 29, 2003
    • toy's avatar
      Print a note about possible LRA header words instead of printing LRA · e22e8e00
      toy authored
      as the instruction.  (Because there are instructions that might match
      the LRA header type).
      e22e8e00
    • gerd's avatar
      *** empty log message *** · f5cd2de0
      gerd authored
      f5cd2de0
    • gerd's avatar
      Suppress slot access and gf-call optimizations for method · ef829f5c
      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.
      ef829f5c
  4. Oct 27, 2003
  5. Oct 26, 2003
    • gerd's avatar
      * src/compiler/eval-comp.lisp (compile-for-eval): Delete · bf6b4a00
      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.
      bf6b4a00
    • gerd's avatar
      * src/code/error.lisp (handler-case): Delete unused old version. · 6e3efcdb
      gerd authored
      	Wrap locally around single-element bodies, it can be a declaration.
      	ANSI test HANDLER-CASE.29.
      6e3efcdb
    • gerd's avatar
      (eval '(block b3 · 2b5e775c
      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.
      2b5e775c
  6. Oct 25, 2003
  7. Oct 24, 2003
    • toy's avatar
      Initial version. · 61208c78
      toy authored
      61208c78
    • toy's avatar
      *** empty log message *** · 630fa81e
      toy authored
      630fa81e
    • toy's avatar
      READ-SEQUENCE was returning too soon: · 5b428a0a
      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).
      5b428a0a
    • toy's avatar
      Note heap overflow checking. · cfc64c87
      toy authored
      cfc64c87
    • toy's avatar
      Cross-compile script for heap overflow checking. · 13f08390
      toy authored
      13f08390
    • toy's avatar
      Add support for x86 heap-overflow checking. · 10d10ac0
      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.
      10d10ac0
    • toy's avatar
      a8681ec3
    • toy's avatar
      Add support for catching heap overflows, similar to the control stack · 3e309c44
      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
      3e309c44
  8. Oct 23, 2003
  9. Oct 21, 2003
  10. Oct 20, 2003
  11. Oct 18, 2003
  12. Oct 17, 2003
  13. Oct 16, 2003
Loading