Skip to content

Commit

Permalink
0.8.20.8:
Browse files Browse the repository at this point in the history
        * Disable backtrace checking on (and x86 linux).
        * Describe bugs MISC.555 and MISC.563.
        * Define out-of-line %ATAN2 on x86 (fix MISC.564).
  • Loading branch information
Alexey Dejneka committed Mar 7, 2005
1 parent 617079f commit 3dfb34c
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 2 deletions.
24 changes: 24 additions & 0 deletions BUGS
Expand Up @@ -2051,3 +2051,27 @@ WORKAROUND:
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)).
2 changes: 2 additions & 0 deletions NEWS
Expand Up @@ -21,6 +21,8 @@ changes in sbcl-0.8.21 (0.9alpha.1?) relative to sbcl-0.8.20:
* 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)
Expand Down
3 changes: 3 additions & 0 deletions src/code/irrat.lisp
Expand Up @@ -54,6 +54,9 @@
(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)
Expand Down
1 change: 1 addition & 0 deletions src/compiler/float-tran.lisp
Expand Up @@ -1301,6 +1301,7 @@
;;;
;;; 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))

Expand Down
3 changes: 2 additions & 1 deletion tests/debug.impure.lisp
Expand Up @@ -181,7 +181,7 @@
'((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))
Expand All @@ -208,6 +208,7 @@
(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)))
Expand Down
12 changes: 12 additions & 0 deletions tests/float.pure.lisp
Expand Up @@ -97,3 +97,15 @@
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))
2 changes: 1 addition & 1 deletion version.lisp-expr
Expand Up @@ -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.20.7"
"0.8.20.8"

0 comments on commit 3dfb34c

Please sign in to comment.