X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=BUGS;h=36986f94e738a37d4fb4e03fbb140c445ec0ae28;hb=6c4d4d984b1af6b2a73568cec3ab9c8795cff2da;hp=0df09bcdc0e6c9d7a7cd3cadb26353d83f416889;hpb=f55a2e56e343bb9736da350bc7802e2a78a27ade;p=sbcl.git diff --git a/BUGS b/BUGS index 0df09bc..36986f9 100644 --- a/BUGS +++ b/BUGS @@ -1354,7 +1354,7 @@ WORKAROUND: the bad VECTOR-PUSH-EXTEND frame causes GC problems, though that may not be the actual problem. (CMU CL 18c doesn't have problems with this.) -217: +217: "Bad type operations with FUNCTION types" In sbcl.0.7.7: * (values-type-union (specifier-type '(function (base-char))) @@ -1362,6 +1362,24 @@ WORKAROUND: # + It causes insertion of wrong type assertions into generated + code. E.g. + + (defun foo (x s) + (let ((f (etypecase x + (character #'write-char) + (integer #'write-byte)))) + (funcall f x s) + (etypecase x + (character (write-char x s)) + (integer (write-byte x s))))) + + Then (FOO #\1 *STANDARD-OUTPUT*) signals type error. + + (In 0.7.9.1 the result type is (FUNCTION * *), so Python does not + produce invalid code, but type checking is not accurate. Similar + problems exist with VALUES-TYPE-INTERSECTION.) + DEFUNCT CATEGORIES OF BUGS IR1-#: