then requesting a BACKTRACE at the debugger prompt gives no information
about where in the user program the problem occurred.
+ (this is apparently mostly fixed on the SPARC and PPC architectures:
+ while giving the backtrace the system complains about "unknown
+ source location: using block start", but apart from that the
+ backtrace seems reasonable. See tests/debug.impure.lisp for a test
+ case)
+
64:
Using the pretty-printer from the command prompt gives funny
results, apparently because the pretty-printer doesn't know
e-mail on cmucl-help@cons.org on 2001-01-16 and 2001-01-17 from WHN
and Pierre Mai.)
-79:
- as pointed out by Dan Barlow on sbcl-devel 2000-07-02:
- The PICK-TEMPORARY-FILE-NAME utility used by LOAD-FOREIGN uses
- an easily guessable temporary filename in a way which might open
- applications using LOAD-FOREIGN to hijacking by malicious users
- on the same machine. Incantations for doing this safely are
- floating around the net in various "how to write secure programs
- despite Unix" documents, and it would be good to (1) fix this in
- LOAD-FOREIGN, and (2) hunt for any other code which uses temporary
- files and make it share the same new safe logic.
-
- (partially alleviated in sbcl-0.7.9.32 by a fix by Matthew Danish to
- make the temporary filename less easily guessable)
-
83:
RANDOM-INTEGER-EXTRA-BITS=10 may not be large enough for the RANDOM
RNG to be high quality near RANDOM-FIXNUM-MAX; it looks as though
This is probably the same bug as 216
-167:
- In sbcl-0.7.3.11, compiling the (illegal) code
- (in-package :cl-user)
- (defmethod prove ((uustk uustk))
- (zap ((frob () nil))
- (frob)))
- gives the (not terribly clear) error message
- ; caught ERROR:
- ; (during macroexpansion of (DEFMETHOD PROVE ...))
- ; can't get template for (FROB NIL NIL)
- The problem seems to be that the code walker used by the DEFMETHOD
- macro is unhappy with the illegal syntax in the method body, and
- is giving an unclear error message.
-
173:
The compiler sometimes tries to constant-fold expressions before
it checks to see whether they can be reached. This can lead to
(list x y)))
(funcall (eval #'foo) 1)))
-269:
- SCALE-FLOAT should accept any integer for its second argument.
-
270:
In the following function constraint propagator optimizes nothing:
debugger invoked on a SB-INT:BUG in thread 27726:
fasl stack not empty when it should be
-334: "COMPUTE-SLOTS used to add slots to classes"
- (reported by Bruno Haible sbcl-devel 2004-06-01)
- a. Adding a local slot does not work:
- (use-package "SB-PCL")
- (defclass b (a) ())
- (defmethod compute-slots ((class (eql (find-class 'b))))
- (append (call-next-method)
- (list (make-instance 'standard-effective-slot-definition
- :name 'y
- :allocation :instance))))
- (defclass a () ((x :allocation :class)))
- ;; A should now have a shared slot, X, and a local slot, Y.
- (mapcar #'slot-definition-location (class-slots (find-class 'b)))
- yields
- There is no applicable method for the generic function
- #<STANDARD-GENERIC-FUNCTION CLASS-SLOTS (3)>
- when called with arguments
- (NIL).
-
- b. Adding a class slot does not work:
- (use-package "SB-PCL")
- (defclass b (a) ())
- (defmethod compute-slots ((class (eql (find-class 'b))))
- (append (call-next-method)
- (list (make-instance 'standard-effective-slot-definition
- :name 'y
- :allocation :class))))
- (defclass a () ((x :allocation :class)))
- ;; A should now have two shared slots, X and Y.
- (mapcar #'slot-definition-location (class-slots (find-class 'b)))
- yields
- There is no applicable method for the generic function
- #<STANDARD-GENERIC-FUNCTION SB-PCL::CLASS-SLOT-CELLS (1)>
- when called with arguments
- (NIL).
-
336: "slot-definitions must retain the generic functions of accessors"
reported by Tony Martinez:
(defclass foo () ((bar :reader foo-bar)))
(test-um12 17))
fails with NO-APPLICABLE-METHOD.
-338: "MOP specializers as type specifiers"
- (reported by Bruno Haible sbcl-devel 2004-06-11)
-
- ANSI 7.6.2 says:
- Because every valid parameter specializer is also a valid type
- specifier, the function typep can be used during method selection
- to determine whether an argument satisfies a parameter
- specializer.
-
- however, SBCL's EQL specializers are not type specifiers:
- (defmethod foo ((x (eql 4.0))) 3.0)
- (typep 1 (first (sb-pcl:method-specializers *)))
- gives an error.
-
339: "DEFINE-METHOD-COMBINATION bugs"
(reported by Bruno Haible via the clisp test suite)
method is applicable, and yet matches neither of the method group
qualifier patterns.
-340: SETF of VALUES using too many values
- (reported by Kalle Olavi Niemetalo via the Debian bug system, with
- bug id #256764)
-
- (let ((a t) (b t) (c t) (d t))
- (setf (values (values a b) (values c d)) (values 1 2 3 4))
- (list a b c d))
- should return (1 NIL 2 NIL), but under sbcl-0.8.12.x returns
- (1 2 3 4) instead.
+341: PPRINT-LOGICAL-BLOCK / PPRINT-FILL / PPRINT-LINEAR sharing detection.
+ (from Paul Dietz' test suite)
+
+ CLHS on PPRINT-LINEAR and PPRINT-FILL (and PPRINT-TABULAR, though
+ that's slightly different) states that these functions perform
+ circular and shared structure detection on their object. Therefore,
+
+ a.(let ((*print-circle* t))
+ (pprint-linear *standard-output* (let ((x '(a))) (list x x))))
+ should print "(#1=(A) #1#)"
+
+ b.(let ((*print-circle* t))
+ (pprint-linear *standard-output*
+ (let ((x (cons nil nil))) (setf (cdr x) x) x)))
+ should print "#1=(NIL . #1#)"
+
+ (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
+ as "canonical", does not work:
+ (defclass my-generic-function (standard-generic-function) ()
+ (:metaclass funcallable-standard-class))
+ (defmethod compute-discriminating-function ((gf my-generic-function))
+ (let ((dfun (call-next-method)))
+ (lambda (&rest args)
+ (apply dfun args))))
+ (defgeneric foo (x)
+ (:generic-function-class my-generic-function))
+ (defmethod foo (x) (+ x x))
+ (foo 5)
+ signals an error. This error is the same even if the LAMBDA is
+ replaced by (FUNCTION (SB-KERNEL:INSTANCE-LAMBDA ...)). Maybe the
+ SET-FUNCALLABLE-INSTANCE-FUN scary stuff in
+ src/code/target-defstruct.lisp is broken? This seems to be broken
+ in CMUCL 18e, so it's not caused by a recent change.
+
+344: more (?) ROOM T problems (possibly part of bug 108)
+ In sbcl-0.8.12.51, and off and on leading up to it, the
+ SB!VM:MEMORY-USAGE operations in ROOM T caused
+ unhandled condition (of type SB-INT:BUG):
+ failed AVER: "(SAP= CURRENT END)"
+ Several clever people have taken a shot at this without fixing
+ it; this time around (before sbcl-0.8.13 release) I (WHN) just
+ commented out the SB!VM:MEMORY-USAGE calls until someone figures
+ out how to make them work reliably with the rest of the GC.
+
+ (Note: there's at least one dubious thing in room.lisp: see the
+ comment in VALID-OBJ)
+
+345: backtrace on x86 undefined function
+ In sbcl-0.8.13 (and probably earlier versions), code of the form
+ (flet ((test () (#:undefined-fun 42)))
+ (funcall #'test))
+ yields the debugger with a poorly-functioning backtrace. Brian
+ Downing fixed most of the problems on non-x86 architectures, but on
+ the x86 the backtrace from this evaluation does not reveal anything
+ about the problem. (See tests in debug.impure.lisp)
+
+346: alpha backtrace
+ In sbcl-0.8.13, all backtraces from errors caused by internal errors
+ on the alpha seem to have a "bogus stack frame".
+
+347: FUNCALL forms and compiler-macros
+ (reported by Johan Bockgård on #lisp)
+ The example
+ (funcall (compiler-macro-function 'square) '(funcall #'square x) nil)
+ => (EXPT X 2)
+ from CLHS entry for DEFINE-COMPILER-MACRO fails in 0.8.13.41 with an
+ error. Fixed in CMUCL 19a.