* Disable backtrace checking on (and x86 linux).
* Describe bugs MISC.555 and MISC.563.
* Define out-of-line %ATAN2 on x86 (fix MISC.564).
fatal error encountered in SBCL pid 8356:
GC invariant lost, file "gc-common.c", line 605
on ppc/darwin. Test disabled for the duration.
+
+375: MISC.555
+ (compile nil '(lambda (p1)
+ (declare (optimize (speed 1) (safety 2) (debug 2) (space 0))
+ (type keyword p1))
+ (keywordp p1)))
+
+ fails on hairy type check in IR2.
+
+ 1. KEYWORDP is MAYBE-INLINE expanded (before TYPEP-like
+ transformation could eliminate it).
+
+ 2. From the only call of KEYWORDP the type of its argument is
+ derived to be KEYWORD.
+
+ 2. Type check for P1 is generated; it uses KEYWORDP to perform the
+ check, and so references the local function; from the KEYWORDP
+ argument type new CAST to KEYWORD is generated. The compiler
+ loops forever.
+
+376: MISC.563
+ Type deriver for CONJUGATE thinks that it returns an object of the
+ same type as its argument, which is wrong for such types as (EQL
+ #C(1 2)).
* contrib improvement: the SB-SIMPLE-STREAMS contrib now defines
STRING-SIMPLE-STREAM and FILE-SIMPLE-STREAM as subclasses of
STRING-STREAM and FILE-STREAM, respectively.
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** MISC.564: defined out-of-line version of %ATAN2 on x86.
changes in sbcl-0.8.20 (0.9alpha.0?) relative to sbcl-0.8.19:
* fixed inspection of specialized arrays. (thanks to Simon Alexander)
(def-math-rtn "acos" 1)
#!-x86 (def-math-rtn "atan" 1)
#!-x86 (def-math-rtn "atan2" 2)
+#!+x86 ;; for constant folding
+(defun %atan2 (x y)
+ (%atan2 x y))
(def-math-rtn "sinh" 1)
(def-math-rtn "cosh" 1)
(def-math-rtn "tanh" 1)
;;;
;;; FIXME: ANSI allows any subtype of REAL for the components of COMPLEX.
;;; So what if the input type is (COMPLEX (SINGLE-FLOAT 0 1))?
+;;; Or (EQL #C(1 2))?
(defoptimizer (conjugate derive-type) ((num))
(lvar-type num))
'((flet not-optimized))
(list '(flet test) #'not-optimized)))))
-#-(or alpha) ; bug 61
+#-(or alpha (and x86 linux)) ; bug 61
(progn
(defun throw-test ()
(throw 'no-such-tag t))
(defun bt.5 (&optional (opt (oops)))
(list opt))
+#-(and x86 linux)
(macrolet ((with-details (bool &body body)
`(let ((sb-debug:*show-entry-point-details* ,bool))
,@body)))
floating-point-overflow))
(assert (raises-error? (scale-float 1.0d0 (1+ most-positive-fixnum))
floating-point-overflow)))
+
+;;; MISC.564: no out-of-line %ATAN2 for constant folding
+(assert (typep
+ (funcall
+ (compile
+ nil
+ '(lambda (p1)
+ (declare (optimize (speed 3) (safety 2) (debug 3) (space 0))
+ (type complex p1))
+ (phase (the (eql #c(1.0d0 2.0d0)) p1))))
+ #c(1.0d0 2.0d0))
+ 'double-float))
;;; 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.20.7"
+"0.8.20.8"