From: Nikodemus Siivola Date: Thu, 30 Sep 2010 07:15:57 +0000 (+0000) Subject: 1.0.43.3: make (LOAD-TIME-VALUE (THE (VALUES FIXNUM) 42)) work again X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=b5036cdeddc69c2514276528ed3dae87ff593e55;p=sbcl.git 1.0.43.3: make (LOAD-TIME-VALUE (THE (VALUES FIXNUM) 42)) work again An explicit THE + VALUES broke LOAD-TIME-VALUE. FIxes lp#646796. --- diff --git a/NEWS b/NEWS index 16b575e..3a669e3 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,8 @@ changes relative to sbcl-1.0.43: * bug fix: compiler failed to derive the result-type of MAKE-ARRAY as (AND VECTOR (NOT SIMPLE-ARRAY)) when appropriate. (lp#309130) + * bug fix: (THE (VALUES ...)) in LOAD-TIME-VALUE caused a compiler-error. + (lp#646796) changes in sbcl-1.0.43 relative to sbcl-1.0.42: * incompatible change: FD-STREAMS no longer participate in the serve-event diff --git a/src/compiler/ltv.lisp b/src/compiler/ltv.lisp index a695b65..cbeba89 100644 --- a/src/compiler/ltv.lisp +++ b/src/compiler/ltv.lisp @@ -30,7 +30,7 @@ guaranteed to never be modified, so it can be put in read-only storage." (cond ((consp form) (let ((op (car form))) (cond ((member op '(the truly-the)) - (specifier-type (second form))) + (values-specifier-type (second form))) ((eq 'function op) (specifier-type 'function)) ((and (legal-fun-name-p op) diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 531acc1..b809242 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -3558,3 +3558,10 @@ (list (vector-push-extend (svref x 0) x)))) ((and warning (not style-warning)) () :warning))))) + +(with-test (:name :bug) + (assert 42 + (funcall + (compile nil + `(lambda () + (load-time-value (the (values fixnum) 42))))))) diff --git a/version.lisp-expr b/version.lisp-expr index 1762dfd..4b00ed2 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; 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".) -"1.0.43.2" +"1.0.43.3"