-REPORTING BUGS
+tREPORTING BUGS
Bugs can be reported on the help mailing list
sbcl-help@lists.sourceforge.net
the new output block should start indented 2 or more characters
rightward of the correct location.
-65:
- (probably related to bug #70; maybe related to bug #109)
- As reported by Carl Witty on submit@bugs.debian.org 1999-05-08,
- compiling this file
-(in-package "CL-USER")
-(defun equal-terms (termx termy)
- (labels
- ((alpha-equal-bound-term-lists (listx listy)
- (or (and (null listx) (null listy))
- (and listx listy
- (let ((bindings-x (bindings-of-bound-term (car listx)))
- (bindings-y (bindings-of-bound-term (car listy))))
- (if (and (null bindings-x) (null bindings-y))
- (alpha-equal-terms (term-of-bound-term (car listx))
- (term-of-bound-term (car listy)))
- (and (= (length bindings-x) (length bindings-y))
- (prog2
- (enter-binding-pairs (bindings-of-bound-term (car listx))
- (bindings-of-bound-term (car listy)))
- (alpha-equal-terms (term-of-bound-term (car listx))
- (term-of-bound-term (car listy)))
- (exit-binding-pairs (bindings-of-bound-term (car listx))
- (bindings-of-bound-term (car listy)))))))
- (alpha-equal-bound-term-lists (cdr listx) (cdr listy)))))
-
- (alpha-equal-terms (termx termy)
- (if (and (variable-p termx)
- (variable-p termy))
- (equal-bindings (id-of-variable-term termx)
- (id-of-variable-term termy))
- (and (equal-operators-p (operator-of-term termx) (operator-of-term termy))
- (alpha-equal-bound-term-lists (bound-terms-of-term termx)
- (bound-terms-of-term termy))))))
-
- (or (eq termx termy)
- (and termx termy
- (with-variable-invocation (alpha-equal-terms termx termy))))))
- causes an assertion failure
- The assertion (EQ (C::LAMBDA-TAIL-SET C::CALLER)
- (C::LAMBDA-TAIL-SET (C::LAMBDA-HOME C::CALLEE))) failed.
-
- Bob Rogers reports (1999-07-28 on cmucl-imp@cons.org) a smaller test
- case with the same problem:
-(defun parse-fssp-alignment ()
- ;; Given an FSSP alignment file named by the argument . . .
- (labels ((get-fssp-char ()
- (get-fssp-char))
- (read-fssp-char ()
- (get-fssp-char)))
- ;; Stub body, enough to tickle the bug.
- (list (read-fssp-char)
- (read-fssp-char))))
-
66:
ANSI specifies that the RESULT-TYPE argument of CONCATENATE must be
a subtype of SEQUENCE, but CONCATENATE doesn't check this properly:
crashes SBCL. In general tracing anything which is used in the
implementation of TRACE is likely to have the same problem.
-70:
- (probably related to bug #65; maybe related to bug #109)
- The compiler doesn't like &OPTIONAL arguments in LABELS and FLET
- forms. E.g.
- (DEFUN FIND-BEFORE (ITEM SEQUENCE &KEY (TEST #'EQL))
- (LABELS ((FIND-ITEM (OBJ SEQ TEST &OPTIONAL (VAL NIL))
- (LET ((ITEM (FIRST SEQ)))
- (COND ((NULL SEQ)
- (VALUES NIL NIL))
- ((FUNCALL TEST OBJ ITEM)
- (VALUES VAL SEQ))
- (T
- (FIND-ITEM OBJ (REST SEQ) TEST (NCONC VAL `(,ITEM))))))))
- (FIND-ITEM ITEM SEQUENCE TEST)))
- from David Young's bug report on cmucl-help@cons.org 30 Nov 2000
- causes sbcl-0.6.9 to fail with
- error in function SB-KERNEL:ASSERT-ERROR:
- The assertion (EQ (SB-C::LAMBDA-TAIL-SET SB-C::CALLER)
- (SB-C::LAMBDA-TAIL-SET
- (SB-C::LAMBDA-HOME SB-C::CALLEE))) failed.
-
72:
(DECLAIM (OPTIMIZE ..)) doesn't work properly inside LOCALLY forms.
time trying to GC afterwards. Surely there's some more economical
way to implement (ROOM T).
-109:
- reported by Martin Atzmueller 2001-06-25; originally from CMU CL bugs
- collection:
- ;;; This file fails to compile.
- ;;; Maybe this bug is related to bugs #65, #70 in the BUGS file.
- (in-package :cl-user)
- (defun tst2 ()
- (labels
- ((eff (&key trouble)
- (eff)
- ;; nil
- ;; Uncomment and it works
- ))
- (eff)))
- In SBCL 0.6.12.42, the problem is
- internal error, failed AVER:
- "(COMMON-LISP:EQ (SB!C::LAMBDA-TAIL-SET SB!C::CALLER)
- (SB!C::LAMBDA-TAIL-SET (SB!C::LAMBDA-HOME SB!C::CALLEE)))"
-
110:
reported by Martin Atzmueller 2001-06-25; originally from CMU CL bugs
collection:
Raymond Toy comments that this is tricky on the X86 since its FPU
uses 80-bit precision internally.
-120a:
- The compiler incorrectly figures the return type of
- (DEFUN FOO (FRAME UP-FRAME)
- (IF (OR (NOT FRAME)
- T)
- FRAME
- "BAR"))
- as NIL.
-
- This problem exists in CMU CL 18c too. When I reported it on
- cmucl-imp@cons.org, Raymond Toy replied 23 Aug 2001 with
- a partial explanation, but no fix has been found yet.
-
120b:
Even in sbcl-0.pre7.x, which is supposed to be free of the old
non-ANSI behavior of treating the function return type inferred
#+NIL) and I'd like to go back to see whether this really is
a compiler bug before I delete this BUGS entry.
-123:
- The *USE-IMPLEMENTATION-TYPES* hack causes bugs, particularly
- (IN-PACKAGE :SB-KERNEL)
- (TYPE= (SPECIFIER-TYPE '(VECTOR T))
- (SPECIFIER-TYPE '(VECTOR UNDEFTYPE)))
- Then because of this, the compiler bogusly optimizes
- (TYPEP #(11) '(SIMPLE-ARRAY UNDEF-TYPE 1))
- to T. Unfortunately, just setting *USE-IMPLEMENTATION-TYPES* to
- NIL around sbcl-0.pre7.14.flaky4.12 didn't work: the compiler complained
- about type mismatches (probably harmlessly, another instance of bug 117);
- and then cold init died with a segmentation fault.
-
124:
As of version 0.pre7.14, SBCL's implementation of MACROLET makes
the entire lexical environment at the point of MACROLET available
isn't too surprising since there are many differences in stack
implementation and GC conservatism between the X86 and other ports.)
-165:
- Array types with element-types of some unknown type are falsely being
- assumed to be of type (ARRAY T) by the compiler in some cases. The
- following code demonstrates the problem:
-
- (defun foo (x)
- (declare (type (vector bar) x))
- (aref x 1))
- (deftype bar () 'single-float)
- (foo (make-array 3 :element-type 'bar))
- -> TYPE-ERROR "The value #(0.0 0.0 0.0) is not of type (VECTOR BAR)."
- (typep (make-array 3 :element-type 'bar) '(vector bar))
- -> T
-
- The easy solution is to make the functions which depend on knowing
- the upgraded-array-element-type (in compiler/array-tran and
- compiler/generic/vm-tran as of sbcl-0.7.3.x) be slightly smarter about
- unknown types; an alternative is to have the
- specialized-element-type slot in the ARRAY-TYPE structure be
- *WILD-TYPE* for UNKNOWN-TYPE element types.
-
166:
Compiling
(in-package :cl-user)
only sporadically reproducible.
191: "Miscellaneous PCL deficiencies"
- (reported by Alexey Dejenka sbcl-devel 2002-08-04)
+ (reported by Alexey Dejneka sbcl-devel 2002-08-04)
a. DEFCLASS does not inform the compiler about generated
functions. Compiling a file with
(DEFCLASS A-CLASS ()
c. the examples in CLHS 7.6.5.1 (regarding generic function lambda
lists and &KEY arguments) do not signal errors when they should.
-192: "constant-folding DATA-VECTOR-REF"
- (from Einar Floystad Dorum sbcl-devel 14 Aug 2002)
- Typing this
- (defun test ()
- (funcall
- (LAMBDA (TEXT I L )
- (LABELS ((G908 (I)
- (LET ((INDEX
- (OR
- (IF (= I L)
- NIL
- (LET ((S TEXT)
- (E (ELT TEXT I)))
- (DECLARE (IGNORABLE S E))
- (WHEN (EQL #\a E)
- (G909 (1+ I))))))))
- INDEX))
- (G909 (I)
- (OR
- (IF (= I L)
- NIL
- (LET ((S TEXT)
- (E (ELT TEXT I)))
- (DECLARE (IGNORABLE S E))
- (WHEN (EQL #\b E) (G910 (1+ I)))))))
- (G910 (I)
- (LET ((INDEX
- (OR
- (IF NIL
- NIL
- (LET ((S TEXT))
- (DECLARE (IGNORABLE S))
- (WHEN T I))))))
- INDEX)))
- (G908 I))) "abcdefg" 0 (length "abcdefg")))
- at the command prompt in sbcl-0.7.6.23 gives
- (BUG "full call to SB-KERNEL:DATA-VECTOR-REF").
-
DEFUNCT CATEGORIES OF BUGS
IR1-#:
These labels were used for bugs related to the old IR1 interpreter.