0.8.6.30:
authorAlexey Dejneka <adejneka@comail.ru>
Fri, 5 Dec 2003 19:30:47 +0000 (19:30 +0000)
committerAlexey Dejneka <adejneka@comail.ru>
Fri, 5 Dec 2003 19:30:47 +0000 (19:30 +0000)
        * Fix bug reported by PFD on sbcl-devel 2003-12-04
        ... VALUES transform: preserve (single-valuified) derived
            type;
        ... LET-CONVERT: flush combination derived type.

NEWS
tests/compiler.pure.lisp

diff --git a/NEWS b/NEWS
index a9f68f1..a7342ad 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2216,6 +2216,7 @@ changes in sbcl-0.8.7 relative to sbcl-0.8.6:
     ** extremely complex negations of CONS types were not being
        sufficiently canonicalized, leading to inconsistencies in
        SUBTYPEP.
+    ** VALUES tranformer lost derive type.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles
index 45c22e8..d7732db 100644 (file)
                 (%f11 -120429363 (%f11 62362 b)))))
    6714367 9645616 -637681868)
   -264223548))
+
+;;; Bug reported by Paul F. Dietz caused by derive type loss in VALUE
+;;; transform
+(assert (equal (multiple-value-list
+                (funcall
+                 (compile nil '(lambda ()
+                                (declare (optimize (speed 1) (space 0) (safety 3) (debug 3) (compilation-speed 1)))
+                                (ceiling
+                                 (ceiling
+                                  (flet ((%f16 () 0)) (%f16))))))))
+               '(0 0)))