From: Christophe Rhodes Date: Thu, 19 Dec 2002 16:27:01 +0000 (+0000) Subject: 0.7.10.26: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=86fca9c405f91d02784bcdd24b25a81dce549332;p=sbcl.git 0.7.10.26: Fix up a theoretical bug in the COMPILE DERIVE-TYPE-OPTIMIZER ... '(VALUES FUNCTION BOOLEAN BOOLEAN), not 'FUNCTION (why only a "theoretical" bug? Well, at present, SBCL's type engine returns (VALUES FUNCTION BOOLEAN BOOLEAN) for (VALUES-TYPE-INTERSECTION 'FUNCTION '(VALUES (OR FUNCTION SYMBOL) BOOLEAN BOOLEAN)) so it DWIM. However, CMUCL doesn't (it returns the empty type instead), which led to the discovery of this error by Raymond Toy when he tried to port the optimizer.) --- diff --git a/src/compiler/srctran.lisp b/src/compiler/srctran.lisp index bdcbec7..cd363e2 100644 --- a/src/compiler/srctran.lisp +++ b/src/compiler/srctran.lisp @@ -3383,7 +3383,7 @@ (defoptimizer (compile derive-type) ((nameoid function)) (when (csubtypep (continuation-type nameoid) (specifier-type 'null)) - (specifier-type 'function))) + (values-specifier-type '(values function boolean boolean)))) ;;; FIXME: Maybe also STREAM-ELEMENT-TYPE should be given some loving ;;; treatment along these lines? (See discussion in COERCE DERIVE-TYPE diff --git a/version.lisp-expr b/version.lisp-expr index 80b70ff..6bc91e0 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.10.25" +"0.7.10.26"