* fixed some bugs revealed by Paul Dietz' test suite:
** RENAME-PACKAGE allows all package designators as new package
names.
+ ** constraint propagation and lambda variable substitution are
+ more cautious in dealing with partially deleted code.
changes in sbcl-0.8.16 relative to sbcl-0.8.15:
* enhancement: saving cores with foreign code loaded is now
;; LVAR-USEs should not be met on one path. Another problem
;; is with dynamic-extent.
(eq (lvar-uses lvar) ref)
+ (not (block-delete-p (node-block ref)))
(typecase dest
;; we should not change lifetime of unknown values lvars
(cast
(print (if (< iv1 iv1)
(logand (ash iv1 iv1) 1)
iv1)))))
+
+;;; MISC.435: lambda var substitution in a deleted code.
+(assert (zerop (funcall
+ (compile
+ nil
+ '(lambda (a b c d)
+ (declare (notinline aref logandc2 gcd make-array))
+ (declare
+ (optimize (space 0) (safety 0) (compilation-speed 3)
+ (speed 3) (debug 1)))
+ (progn
+ (tagbody
+ (let* ((v2 (make-array nil :initial-element (catch 'ct1 (go tag2)))))
+ (declare (dynamic-extent v2))
+ (gcd (go tag2) (logandc2 (catch 'ct2 c) (aref v2))))
+ tag2)
+ 0)))
+ 3021871717588 -866608 -2 -17194)))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.16.18"
+"0.8.16.19"