summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
eab34ac)
* Fix bug MISC.641: unused optional entry deletion after
physical environment analysis can cause LET-conversion, so
the latter must deal with NLX-INFOs.
;;;; -*- coding: utf-8; -*-
;;;; -*- coding: utf-8; -*-
+changes in sbcl-0.9.14 relative to sbcl-0.9.13:
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** MISC.641: LET-conversion were not supposed to work in late
+ compilation stages.
+
changes in sbcl-0.9.13 relative to sbcl-0.9.12:
* new feature: source path information is generated for macro-expansion
errors for use in IDE's like Slime (thanks to Helmut Eller)
changes in sbcl-0.9.13 relative to sbcl-0.9.12:
* new feature: source path information is generated for macro-expansion
errors for use in IDE's like Slime (thanks to Helmut Eller)
(depart-from-tail-set clambda)
(let* ((home (node-home-lambda call))
(depart-from-tail-set clambda)
(let* ((home (node-home-lambda call))
- (home-physenv (lambda-physenv home)))
+ (home-physenv (lambda-physenv home))
+ (physenv (lambda-physenv clambda)))
(aver (not (eq home clambda)))
(aver (not (eq home clambda)))
(setf (lambda-home clambda) home)
(setf (lambda-physenv clambda) home-physenv)
(setf (lambda-home clambda) home)
(setf (lambda-physenv clambda) home-physenv)
+ (when physenv
+ (setf (physenv-nlx-info home-physenv)
+ (nconc (physenv-nlx-info physenv)
+ (physenv-nlx-info home-physenv))))
+
;; All of CLAMBDA's LETs belong to HOME now.
(let ((lets (lambda-lets clambda)))
(dolist (let lets)
;; All of CLAMBDA's LETs belong to HOME now.
(let ((lets (lambda-lets clambda)))
(dolist (let lets)
summing i)
x)))
(assert (= a (random most-positive-fixnum))))
summing i)
x)))
(assert (= a (random most-positive-fixnum))))
+
+;;; MISC.641: LET-conversion after physical environment analysis lost NLX-INFOs
+(let ((form '(lambda ()
+ (declare (optimize (speed 1) (space 0) (debug 2)
+ (compilation-speed 0) (safety 1)))
+ (flet ((%f3 (f3-1 &key (key1 (count (floor 0 (min -74 0)) #())))
+ 0))
+ (apply #'%f3 0 nil)))))
+ (assert (zerop (funcall (compile nil form)))))
;;; 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".)
;;; 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".)