X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=BUGS;h=30d25d5e8bfe7baf3cbef1865f3fc669448c8fd2;hb=d147d512602d761a2dcdfded506dd1a8f9a140dc;hp=db60e3e656e3686d7a565d37c0caf1a97e70a4a1;hpb=0b5610d8a220a4b20cbeac958953ca4d67c00038;p=sbcl.git diff --git a/BUGS b/BUGS index db60e3e..30d25d5 100644 --- a/BUGS +++ b/BUGS @@ -118,18 +118,6 @@ WORKAROUND: (during macroexpansion of IN-PACKAGE, during macroexpansion of DEFFOO) -12: - The type system doesn't understand the KEYWORD type very well: - (SUBTYPEP 'KEYWORD 'SYMBOL) => NIL, NIL - It might be possible to fix this by changing the definition of - KEYWORD to (AND SYMBOL (SATISFIES KEYWORDP)), but the type system - would need to be a bit smarter about AND types, too: - (SUBTYPEP '(AND SYMBOL KEYWORD) 'SYMBOL) => NIL, NIL - (The type system does know something about AND types already, - (SUBTYPEP '(AND INTEGER FLOAT) 'NUMBER) => T, T - (SUBTYPEP '(AND INTEGER FIXNUM) 'NUMBER) =>T, T - so likely this is a small patch.) - 13: Floating point infinities are screwed up. [When I was converting CMU CL to SBCL, I was looking for complexity to delete, and I thought it was safe @@ -537,8 +525,18 @@ Error in function C::GET-LAMBDA-TO-COMPILE: # was defined in a non-null environment. 58: - (SUBTYPEP '(AND ZILCH INTEGER) 'ZILCH) - => NIL, NIL + (SUBTYPEP '(AND ZILCH INTEGER) 'ZILCH) => NIL, NIL + Note: I looked into fixing this in 0.6.11.15, but gave up. The + problem seems to be that there are two relevant type methods for + the subtypep operation, HAIRY :COMPLEX-SUBTYPEP-ARG2 and + INTERSECTION :COMPLEX-SUBTYPEP-ARG1, and only the first is + called. This could be fixed, but type dispatch is messy and + confusing enough already, I don't want to complicate it further. + Perhaps someday we can make CLOS cross-compiled (instead of compiled + after bootstrapping) so that we don't need to have the type system + available before CLOS, and then we can rewrite the type methods to + CLOS methods, and then expressing the solutions to stuff like this + should become much more straightforward. -- WHN 2001-03-14 59: CL:*DEFAULT-PATHNAME-DEFAULTS* doesn't behave as ANSI suggests (reflecting @@ -812,6 +810,37 @@ Error in function C::GET-LAMBDA-TO-COMPILE: it would decrease efficiency more than is probably necessary. Perhaps using some sort of accept/reject method would be better. +84: + (SUBTYPEP '(SATISFIES SOME-UNDEFINED-FUN) NIL)=>NIL,T (should be NIL,NIL) + +85: + Internally the compiler sometimes evaluates + (sb-kernel:type/= (specifier-type '*) (specifier-type t)) + (I stumbled across this when I added an + (assert (not (eq type1 *wild-type*))) + in the NAMED :SIMPLE-= type method.) '* isn't really a type, and + in a type context should probably be translated to T, and so it's + probably to ask whether it's equal to the T type and then (using the + EQ type comparison in the NAMED :SIMPLE-= type method) return NIL. + (I haven't tried to investigate this bug enough to guess whether + there might be any user-level symptoms.) + +87: + Despite what the manual says, (DECLAIM (SPEED 0)) doesn't cause + things to be byte compiled. This seems to be true in cmucl-2.4.19, + too: (COMPILE-FILE .. :BYTE-COMPILE T) causes byte-compilation, + but ordinary COMPILE-FILE of a file containing (DECLAIM (SPEED 0)) + does not. + +90: + a latent cross-compilation/bootstrapping bug: The cross-compilation + host's CL:CHAR-CODE-LIMIT is used in target code in readtable.lisp + and possibly elsewhere. Instead, we should use the target system's + CHAR-CODE-LIMIT. This will probably cause problems if we try to + bootstrap on a system which uses a different value of CHAR-CODE-LIMIT + than SBCL does. + + KNOWN BUGS RELATED TO THE IR1 INTERPRETER (Note: At some point, the pure interpreter (actually a semi-pure