Skip to content
Snippets Groups Projects
  1. Oct 05, 2003
    • gerd's avatar
      (compile nil · 56fd6636
      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.
      56fd6636
    • gerd's avatar
      Improve interrupt safety. · a7ed2dae
      gerd authored
      	* src/compiler/globaldb.lisp (get-info-value):
      	* src/code/extensions.lisp (define-hash-cache): Use
      	without-interrupts.
      a7ed2dae
  2. Oct 04, 2003
    • gerd's avatar
      (compile nil '(lambda (c) · 05271223
      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.
      05271223
  3. Oct 03, 2003
    • gerd's avatar
      (compile nil '(lambda (b) · 58c6aaf8
      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.
      58c6aaf8
  4. Oct 02, 2003
    • gerd's avatar
      (compile nil · 5d00555f
      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.
      5d00555f
  5. Sep 29, 2003
  6. Sep 26, 2003
  7. Sep 25, 2003
  8. Sep 24, 2003
    • toy's avatar
      Convert another make-member-type to use specifier-type so that member · 7359b31b
      toy authored
      types of numbers are correctly canonicalized for the type system.
      7359b31b
    • toy's avatar
      Fix bug where the compiler was not correctly deriving the result type · 7c427c71
      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.
      7c427c71
    • gerd's avatar
      (compile nil · cb113a53
      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.
      cb113a53
  9. Sep 22, 2003
  10. Sep 18, 2003
  11. Sep 16, 2003
  12. Sep 15, 2003
  13. Sep 14, 2003
  14. Sep 13, 2003
    • gerd's avatar
      * src/lisp/alloc.c (alloc) [GENCGC]: Define as alloc_pseudo_atomic. · e31f8138
      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.
      e31f8138
  15. Sep 12, 2003
  16. Sep 11, 2003
  17. Sep 10, 2003
  18. Sep 09, 2003
  19. Sep 08, 2003
Loading