X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=BUGS;h=729da429391c342bde85d966dfb95bd16b9b0539;hb=129b26c117d41c21663f07e9017871b56fafa501;hp=5b3d79911ca8539112993b236c4019d6c498c4d4;hpb=ad6d0faf5e478900b67df9fbe4b0d5067ff51d55;p=sbcl.git diff --git a/BUGS b/BUGS index 5b3d799..729da42 100644 --- a/BUGS +++ b/BUGS @@ -861,26 +861,12 @@ WORKAROUND: b. The same for CSUBTYPEP. 262: "yet another bug in inline expansion of local functions" - Compiler fails on - - (defun foo (x y) - (declare (integer x y)) - (+ (block nil - (flet ((xyz (u) - (declare (integer u)) - (if (> (1+ (the unsigned-byte u)) 0) - (+ 1 u) - (return (+ 38 (cos (/ u 78))))))) - (declare (inline xyz)) - (return-from foo - (* (funcall (eval #'xyz) x) - (if (> x 30) - (funcall (if (> x 5) #'xyz #'identity) - (+ x 13)) - 38))))) - (sin (* x y)))) - - Urgh... It's time to write IR1-copier. + During inline expansion of a local function Python can try to + reference optimized away objects (functions, variables, CTRANs from + tags and blocks), which later may lead to problems. Some of the + cases are worked around by forbidding expansion in such cases, but + the better way would be to reimplement inline expansion by copying + IR1 structures. 266: David Lichteblau provided (sbcl-devel 2003-06-01) a patch to fix @@ -1101,14 +1087,6 @@ WORKAROUND: gives the error failed AVER: "(NOT (AND (NOT EQUALP) CERTAINP))" -302: Undefined type messes up DATA-VECTOR-REF expansion. - Compiling this file - (defun dis (s ei x y) - (declare (type (simple-array function (2)) s) (type ei ei)) - (funcall (aref s ei) x y)) - on sbcl-0.8.7.36/X86/Linux causes a BUG to be signalled: - full call to SB-KERNEL:DATA-VECTOR-REF - 303: "nonlinear LVARs" (aka MISC.293) (defun buu (x) (multiple-value-call #'list @@ -1153,23 +1131,6 @@ WORKAROUND: collect `(array ,(sb-vm:saetp-specifier x))))) => NIL, T (when it should be T, T) -308: "Characters without names" - (reported by Bruno Haible sbcl-devel "character names are missing" - 2004-04-19) - (graphic-char-p (code-char 255)) - => NIL - (char-name (code-char 255)) - => NIL - - SBCL is unsure of what to do about characters with codes in the - range 128-255. Currently they are treated as non-graphic, but don't - have names, which is not compliant with the standard. Various fixes - are possible, such as - * giving them names such as NON-ASCII-128; - * reducing CHAR-CODE-LIMIT to 127 (almost certainly unpopular); - * making the characters graphic (makes a certain amount of sense); - * biting the bullet and implementing Unicode (probably quite hard). - 309: "Dubious values for implementation limits" (reported by Bruno Haible sbcl-devel "Incorrect value of multiple-values-limit" 2004-04-19) @@ -1217,15 +1178,20 @@ WORKAROUND: 318: "stack overflow in compiler warning with redefined class" reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP test suite. - (setq *print-pretty* nil) (defstruct foo a) (setf (find-class 'foo) nil) (defstruct foo slot-1) - gives - ...# + ... + debugger invoked on a TYPE-ERROR in thread 19973: + The value NIL is not of type FUNCTION. + + CSR notes: it's not really clear what it should give: is (SETF FIND-CLASS) + meant to be enough to delete structure classes from the system? 319: "backquote with comma inside array" reported by Bruno Haible sbcl-devel "various SBCL bugs" from CLISP @@ -1339,12 +1305,6 @@ WORKAROUND: in the wrapper, and then to update the instance just run through all the old wrappers in order from oldest to newest. -331: "lazy creation of CLOS classes for user-defined conditions" - (defstruct foo) - (defstruct (bar (:include foo))) - (sb-mop:class-direct-subclasses (find-class 'foo)) - returns NIL, rather than a singleton list containing the BAR class. - 332: "fasl stack inconsistency in structure redefinition" (reported by Tim Daly Jr sbcl-devel 2004-05-06) Even though structure redefinition is undefined by the standard, the @@ -1536,13 +1496,6 @@ WORKAROUND: (it is likely that the fault lies in PPRINT-LOGICAL-BLOCK, as suggested by the suggested implementation of PPRINT-TABULAR) -342: PPRINT-TABULAR / PPRINT-LOGICAL-BLOCK logical block start position - The logical block introduced by PPRINT-LOGICAL-BLOCK should not - include the prefix, so that - (pprint-tabular *standard-output* '(1 2 3) t nil 2) - should print - "(1 2 3)" rather than "(1 2 3)". - 343: MOP:COMPUTE-DISCRIMINATING-FUNCTION overriding causes error Even the simplest possible overriding of COMPUTE-DISCRIMINATING-FUNCTION, suggested in the PCL implementation @@ -1613,38 +1566,15 @@ WORKAROUND: pprinter and only truncated at output? (So that indenting by 1/2 then 3/2 would indent by two spaces, not one?) -350: heap overflow when printing bignums - (reported by Bruno Haible 2004-10-08) - In sbcl-0.8.15.18, - * (DEFPARAMETER *BIG* (ASH 1 1000000)) - *BIG* - * (PRINT *BIG*) - Argh! gc_find_freeish_pages failed (restart_page), nbytes=110152. - It should be straightforward to push the heap overflow threshold - up to much larger bignums; CSR pointed out it would help to use a - bignum-printing algorithm which bisected the printed number, - rather than stripping off digits one by one. - -351: suboptimal error handling/reporting when compiling (PUSH (LET ...)) - In sbcl-0.8.15.18, - * (defvar *b*) - *B* - * (defun oops () - (push *b* - (let ((b *b*)) - (aref b 1)))) - causes the compiler to die with a TYPE-ERROR in SB-C::EXTRACT-LET-VARS, - The value #:G4 is not of type LIST. - Since the (LET ...) expression is being misused in PUSH as a - SETFable place, it would be more helpful to fail as in - * (defun oops2 () (setf (let ((b *b*)) (aref b 1)) *b*)) - with compiler conditions errors like - ; in: LAMBDA NIL - ; ((B *B*)) - ; caught ERROR: - ; illegal function call - and - ; caught WARNING: - ; The function (SETF LET) is undefined, and its name is reserved - ; by ANSI CL so that even if it were defined later, the code - ; doing so would not be portable. +352: forward-referenced-class trouble + reported by Bruno Haible on sbcl-devel + (defclass c (a) ()) + (setf (class-name (find-class 'a)) 'b) + (defclass a () (x)) + (defclass b () (y)) + (make-instance 'c) + Expected: an instance of c, with a slot named x + Got: debugger invoked on a SIMPLE-ERROR in thread 78906: + While computing the class precedence list of the class named C. + The class named B is a forward referenced class. + The class named B is a direct superclass of the class named C.