0.8.5.6:
authorChristophe Rhodes <csr21@cam.ac.uk>
Sun, 26 Oct 2003 13:14:09 +0000 (13:14 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Sun, 26 Oct 2003 13:14:09 +0000 (13:14 +0000)
Fix for LOGAND OPTIMIZER and 0s
... use UNSIGNED-BYTE*

NEWS
src/compiler/srctran.lisp
tests/compiler.pure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index ebf76c7..0b8c6c4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2175,6 +2175,9 @@ changes in sbcl-0.8.6 relative to sbcl-0.8.5:
     SBCL binary built from CLISP)
   * fixed a compiler bug: MV-LET convertion did not check references
     to the "max args" entry point.  (reported by Brian Downing)
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** compiler failure in compiling LOGAND expressions including a
+       constant 0.
 
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles
index 1fcfe78..67c8956 100644 (file)
                             (not (and (eq fun-name 'logand)
                                       (csubtypep
                                        (single-value-type (node-derived-type node))
-                                       (specifier-type `(unsigned-byte ,width))))))
+                                       (specifier-type `(unsigned-byte* ,width))))))
                    (binding* ((name (etypecase modular-fun
                                       ((eql :good) fun-name)
                                       (modular-fun-info
index ad1853d..89b8925 100644 (file)
                        (* x 24)))
            178956970)
           4294967280))
+
+;;; bug in modular arithmetic and type specifiers
+(assert (= (funcall (compile nil (lambda (x) (logand x x 0)))
+                   -1)
+          0))
index ab40d4c..07a3e59 100644 (file)
@@ -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".)
-"0.8.5.5"
+"0.8.5.6"