Test :NAN-COMPARISONS in float.pure.lisp fails on x86-64, and has been
disabled on those platforms. Since x86 does not exhibit any problems
the problem is probably with the new FP implementation.
+
+412: deletion of global variable references in safe code
+ The following returns 1 instead of signalling an error.
+ (funcall (compile nil
+ '(lambda ()
+ (declare (optimize (safety 3)))
+ #:unbound
+ 42)))
+ Reported by Marco Monteiro on sbcl-devel.
in multithreaded application code.
* optimization: GET-INTERNAL-REAL-TIME has been optimized on POSIX
platforms. (thanks to James Anderson for the optimization hint)
+ * bug fix: / with an unused value was being deleted in safe code.
+ (thanks to Marco Monteiro and Kevin Reid)
* bug fix: number of characters that can be written onto a single
line in a file is unlimited.
* bug fix: some GC deadlocks caused by asynchronous interrupts have
(defknown * (&rest number) number
(movable foldable flushable explicit-check))
(defknown / (number &rest number) number
- (movable foldable flushable explicit-check))
+ (movable foldable unsafely-flushable explicit-check))
(defknown (1+ 1-) (number) number
(movable foldable flushable explicit-check))
`(list* ,@required
(sb-c::%listify-rest-args
.dfun-more-context.
- (the (and (unsigned-byte fixnum))
+ (the (and unsigned-byte fixnum)
.dfun-more-count.)))
`(list ,@required))))
`(lambda ,ll
#include "sbcl.h"
#include "runtime.h"
+#include "globals.h"
/* This is implemented in assembly language and called from C: */
extern lispobj call_into_lisp(lispobj fun, lispobj *args, int nargs);
y)
(integer-length x)))))
warned-p))
+
+;; Dead / in safe code
+(with-test (:name :safe-dead-/)
+ (assert (eq :error
+ (handler-case
+ (funcall (compile nil
+ '(lambda (x y)
+ (declare (optimize (safety 3)))
+ (/ x y)
+ (+ x y)))
+ 1
+ 0)
+ (division-by-zero ()
+ :error)))))
;;; 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".)
-"1.0.4.39"
+"1.0.4.40"