Fix for LOGAND OPTIMIZER and 0s
... use UNSIGNED-BYTE*
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
(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
(* x 24)))
178956970)
4294967280))
+
+;;; bug in modular arithmetic and type specifiers
+(assert (= (funcall (compile nil (lambda (x) (logand x x 0)))
+ -1)
+ 0))
;;; 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"