From 86fca9c405f91d02784bcdd24b25a81dce549332 Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Thu, 19 Dec 2002 16:27:01 +0000 Subject: [PATCH] 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.) --- src/compiler/srctran.lisp | 2 +- version.lisp-expr | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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" -- 1.7.10.4