X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=BUGS;h=84357b16759532a7540a0ce62020e8908eba92cd;hb=51c5280a4b41f8c51d434643cde3e18af4113473;hp=c09e5905b889b590558bc3e8e0ef9bb9a0b9fe2c;hpb=d8edba3a4e96a718d9eab64d2cbb0b70d0946546;p=sbcl.git diff --git a/BUGS b/BUGS index c09e590..84357b1 100644 --- a/BUGS +++ b/BUGS @@ -490,6 +490,7 @@ WORKAROUND: it took more than two minutes (but less than five) for me. 145: + a. ANSI allows types `(COMPLEX ,FOO) to use very hairy values for FOO, e.g. (COMPLEX (AND REAL (SATISFIES ODDP))). The old CMU CL COMPLEX implementation didn't deal with this, and hasn't been @@ -497,6 +498,18 @@ WORKAROUND: conformance problem, since seems hard to construct useful code where it matters.) + b. + * (defun foo (x) + (declare (type (double-float -0d0) x)) + (declare (optimize speed)) + (+ x (sqrt (log (random 1d0))))) + debugger invoked on condition of type SIMPLE-ERROR: + bad thing to be a type specifier: ((COMPLEX + (DOUBLE-FLOAT 0.0d0 + #.SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY)) + #C(0.0d0 #.SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY) + #C(0.0d0 #.SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY)) + 146: Floating point errors are reported poorly. E.g. on x86 OpenBSD with sbcl-0.7.1, @@ -1051,14 +1064,48 @@ WORKAROUND: (bignum "hip") (t "zuz"))) -271: - Cross-compiler cannot perform constant folding of some internal - functions, such as %NEGATE. - 272: All forms of GC hooks (including notifiers and finalisers) are currently (since 0.8.0) broken for gencgc (i.e. x86) users +273: + Compilation of the following two forms causes "X is unbound" error: + + (symbol-macrolet ((x pi)) + (macrolet ((foo (y) (+ x y))) + (declaim (inline bar)) + (defun bar (z) + (* z (foo 4))))) + (defun quux (z) + (bar z)) + + (See (COERCE (CDR X) 'FUNCTION) in IR1-CONVERT-INLINE-LAMBDA.) + +274: + CLHS says that type declaration of a symbol macro should not affect + its expansion, but in SBCL it does. + +275: + The following code (taken from CLOCC) takes a lot of time to compile: + + (defun foo (n) + (declare (type (integer 0 #.large-constant) n)) + (expt 1/10 n)) + + (fixed in 0.8.2.51, but a test case would be good) + +276: + (defmethod fee ((x fixnum)) + (setq x (/ x 2)) + x) + (fee 1) => type error + + (taken from CLOCC) + +277: + IGNORE/IGNORABLE declarations should be acceptable for symbol + macros. + DEFUNCT CATEGORIES OF BUGS IR1-#: