(Also, when this is fixed, we can enable the code in PROCLAIM which
checks for incompatible FTYPE redeclarations.)
-18:
- from DTC on the CMU CL mailing list 25 Feb 2000:
-;;; Compiler fails when this file is compiled.
-;;;
-;;; Problem shows up in delete-block within ir1util.lisp. The assertion
-;;; (assert (member (functional-kind lambda) '(:let :mv-let :assignment)))
-;;; fails within bind node branch.
-;;;
-;;; Note that if c::*check-consistency* is enabled then an un-reached
-;;; entry is also reported.
-;;;
-(defun foo (val)
- (declare (values nil))
- nil)
-(defun bug (val)
- (multiple-value-call
- #'(lambda (res)
- (block nil
- (tagbody
- loop
- (when res
- (return nil))
- (go loop))))
- (foo val))
- (catch 'ccc1
- (throw 'ccc1
- (block bbbb
- (tagbody
-
- (let ((ttt #'(lambda () (go cccc))))
- (declare (special ttt))
- (return-from bbbb nil))
-
- cccc
- (return-from bbbb nil))))))
-
19:
(I *think* this is a bug. It certainly seems like strange behavior. But
- the ANSI spec is scary, dark, and deep..)
+ the ANSI spec is scary, dark, and deep.. -- WHN)
(FORMAT NIL "~,1G" 1.4) => "1. "
(FORMAT NIL "~3,1G" 1.4) => "1. "
Process inferior-lisp exited abnormally with code 1
I haven't noticed a repeatable case of this yet.
-29:
- some sort of bug in inlining and RETURN-FROM in sbcl-0.6.5: Compiling
- (DEFUN BAR? (X)
- (OR (NAR? X)
- (BLOCK USED-BY-SOME-Y?
- (FLET ((FROB (STK)
- (DOLIST (Y STK)
- (UNLESS (REJECTED? Y)
- (RETURN-FROM USED-BY-SOME-Y? T)))))
- (DECLARE (INLINE FROB))
- (FROB (RSTK X))
- (FROB (MRSTK X)))
- NIL)))
- gives
- error in function SB-KERNEL:ASSERT-ERROR:
- The assertion (EQ (SB-C::CONTINUATION-KIND SB-C::CONT) :BLOCK-START) failed.
- This is still present in sbcl-0.6.8.
-
31:
In some cases the compiler believes type declarations on array
elements without checking them, e.g.
(Also, verify that the compiler handles declared function
return types as assertions.)
-38:
- DEFMETHOD doesn't check the syntax of &REST argument lists properly,
- accepting &REST even when it's not followed by an argument name:
- (DEFMETHOD FOO ((X T) &REST) NIL)
-
41:
TYPEP of VALUES types is sometimes implemented very inefficiently, e.g. in
(DEFTYPE INDEXOID () '(INTEGER 0 1000))
;; no problem, can just use the ordinary expansion
`(function (setf ,place-function-name))))
-99:
- DESCRIBE interacts poorly with *PRINT-CIRCLE*, e.g. the output from
- (let ((*print-circle* t)) (describe (make-hash-table)))
- is weird,
- #<HASH-TABLE :TEST EQL :COUNT 0 {90BBFC5}> is an . (EQL)
- Its SIZE is 16.
- Its REHASH-SIZE is 1.5. Its REHASH-THRESHOLD is . (1.0)
- It holds 0 key/value pairs.
- where the ". (EQL)" and ". (1.0)" substrings are screwups.
- (This is likely a pretty-printer problem which happens to
- be exercised by DESCRIBE, not actually a DESCRIBE problem.)
-
100:
There's apparently a bug in CEILING optimization which caused
Douglas Crosher to patch the CMU CL version. Martin Atzmueller
/usr/stuff/sbcl/src/code/host-alieneval.lisp
Created: Monday, March 12, 2001 07:47:43 AM CST
-105:
- (DESCRIBE 'STREAM-READ-BYTE)
-
106:
(reported by Eric Marsden on cmucl-imp 2001-06-15)
(and APD pointed out on sbcl-devel 2001-12-29 that it's the same
(bar x)))
shouldn't compile without error (because of the extra DEFMACRO symbol).
-130:
- reported by Alexey Dejneka on sbcl-devel 2001-11-03
- (defun x (x)
- "Return X if X is a non-negative integer."
- (let ((step (lambda (%funcall)
- (lambda (n)
- (cond ((= n 0) 0)
- (t (1+ (funcall %funcall (1- n)))))))))
- (funcall
- ((lambda (a)
- (funcall step (lambda (n)
- (funcall (funcall a a) n))))
- (lambda (a)
- (funcall step (lambda (n)
- (funcall (funcall a a) n)))))
- x)))
- This function returns its argument. But after removing percents it
- does not work: "Result of (1- n) is not a function".
-
131:
As of sbcl-0.pre7.86.flaky7.3, the cross-compiler, and probably
the CL:COMPILE function (which is based on the same %COMPILE
still some functions named "hairy arg processor" and
"SB-INT:&MORE processor".
-138:
- a pair of cross-compiler bugs in sbcl-0.pre7.107
-
-138a:
- $ cat > /tmp/bug138.lisp << EOF
- (in-package "SB!KERNEL")
- (defun f-c-l (name parent-types)
- (let* ((cpl (mapcar (lambda (x)
- (condition-class-cpl x))
- parent-types))
- (new-inherits
- (concatenate 'simple-vector
- (layout-inherits cond-layout))))
- (if (not (mismatch (layout-inherits olayout) new-inherits))
- olayout
- (make-layout))))
- EOF
- $ sbcl --core output/after-xc.core
- ...
- * (target-compile-file "/tmp/bug138.lisp")
- ...
- internal error, failed AVER:
- "(COMMON-LISP:MEMBER SB!C::FUN (SB!C::COMPONENT-LAMBDAS SB!C:COMPONENT))"
-
- It seems as though this xc bug is likely to correspond to a bug in the
- ordinary compiler, but I haven't yet found a test case which causes
- this problem in the ordinary compiler.
-
- related weirdness: Using #'(LAMBDA (X) ...) instead of (LAMBDA (X) ...)
- makes the assertion failure go away.
-
-138b:
- Even when you relax the AVER that fails in 138a, there's another
- problem cross-compiling the same code:
- internal error, failed AVER:
- "(COMMON-LISP:ZEROP
- (COMMON-LISP:HASH-TABLE-COUNT
- (SB!FASL::FASL-OUTPUT-PATCH-TABLE SB!FASL:FASL-OUTPUT)))"
-
- The same problem appears in the simpler test case
- (in-package "SB!KERNEL")
- (defun f-c-l ()
- (let ((cpl (foo (lambda (x)
- (condition-class-cpl x))))
- (new-inherits (layout-inherits cond-layout)))
- (layout-inherits olayout)))
-
- Changing CONDITION-CLASS-CPL or (either of the calls to) LAYOUT-INHERITS
- to arbitrary nonmagic not-defined-yet just-do-a-full-call functions makes
- the problem go away. Also, even in this simpler test case which fails
- on a very different AVER, the 138a weirdness about s/(lambda/#'(lambda/
- making the problem go away is preserved.
-
- I still haven't found any way to make this happen in the ordinary
- (not cross-) SBCL compiler, nor in CMU CL.
-
-138c:
- In sbcl-0.pre7.111 I added an assertion upstream, in IR2-CONVERT-CLOSURE,
- which fails for the test case above but doesn't keep the system
- from cross-compiling itself or passing its tests.
-
- I traced IR1-CONVERT-LAMBDA (with :PRINT *CURRENT-COMPONENT*)
- and tracing various COMPONENT-manipulating functions like
- FIND-INITIAL-DFO, DFO-SCAVENGE-DEPENDENCY-GRAPH,
- JOIN-COMPONENTS, LOCALL-ANALYZE-COMPONENT, etc. From that,
- it looks as though the problem is that IR1-CONVERT-LAMBDA
- is being called by MAKE-EXTERNAL-ENTRY-POINT to
- create the mislaid LAMBDA in an environment set up by
- WITH-BELATED-IR1-ENVIRONMENT which has *CURRENT-COMPONENT* set
- to a component which is never seen again, and specifically never
- passed to LOCALL-ANALYZE-COMPONENT or JOIN-COMPONENTS, so that
- its NEW-FUNS list (where the mislaid LAMBDA is waiting patiently)
- gets lost. Thus, the LAMBDA is essentially being written into never
- never land. But I haven't figured out why. *CURRENT-COMPONENT* is set
- wrong? Something later on is dropping the ball and neglecting
- to look at all the components it should? Something else?
-
- Tracing more things like IR1-PHASES and COMPILE-COMPONENT, it
- looks as though the problem is that WITH-BELATED-IR1-ENVIRONMENT
- is binding *CURRENT-COMPONENT* (i.e., where new code will be inserted)
- to a COMPONENT which has already been passed to COMPILE-COMPONENT
- (once and for all, so it'll never pass that way again). It seems
- as though there's a broken invariant there: *CURRENT-COMPONENT*
- should never be something which has already been COMPILE-COMPONENTed.
-
-139:
- In sbcl-0.pre7.107, (DIRECTORY "*.*") is broken, as reported by
- Nathan Froyd sbcl-devel 2001-12-28.
-
- Christophe Rhodes suggested (sbcl-devel 2001-12-30) converting
- the MERGED-PATHNAME expression in DEFUN DIRECTORY to
- (merged-pathname (merge-pathnames pathname
- *default-pathname-defaults*))
- This looks right, and fixes this bug, but it interacts with the NODES
- logic in %ENUMERATE-PATHNAMES to create a new bug, so that
- (DIRECTORY "../**/*.*") no longer shows files in the current working
- directory. Probably %ENUMERATE-PATHNAMES (or related logic like
- %ENUMERATE-MATCHES) needs to be patched as well.
-
- Note: The MERGED-PATHNAME change changes behavior incompatibly,
- making e.g. (DIRECTORY "*") no longer equivalent to (DIRECTORY "*.*"),
- so deserves a NEWS entry. E.g.
-* minor incompatible change (part of a bug fix by Christophe Rhodes
- to DIRECTORY behavior): DIRECTORY no longer implicitly promotes
- NIL slots of its pathname argument to :WILD, and in particular
- asking for the contents of a directory, which you used to be able
- to do without explicit wildcards, e.g. (DIRECTORY "/tmp/"),
- now needs explicit wildcards, e.g. (DIRECTORY "/tmp/*.*").
-
140:
(reported by Alexey Dejneka sbcl-devel 2002-01-03)
T
T
-
-KNOWN BUGS RELATED TO THE IR1 INTERPRETER
-
-(Now that the IR1 interpreter has gone away, these should be
-relatively straightforward to fix.)
-
-IR1-4:
+141:
+ Pretty-printing nested backquotes doesn't work right, as
+ reported by Alexey Dejneka sbcl-devel 2002-01-13:
+ * '``(FOO ,@',@S)
+ ``(FOO SB-IMPL::BACKQ-COMMA-AT S)
+ * (lisp-implementation-version)
+ "0.pre7.129"
+
+142:
+ (as reported by Lynn Quam on cmucl-imp ca. 2002-01-16)
+ %NATURALIZE-C-STRING conses a lot, like 16 bytes per byte
+ of the naturalized string. We could probably port the patches
+ from the cmucl-imp mailing list.
+
+143:
+ (reported by Jesse Bouwman 2001-10-24 through the unfortunately
+ prominent SourceForge web/db bug tracking system, which is
+ unfortunately not a reliable way to get a timely response from
+ the SBCL maintainers)
+ In the course of trying to build a test case for an
+ application error, I encountered this behavior:
+ If you start up sbcl, and then lay on CTRL-C for a
+ minute or two, the lisp process will eventually say:
+ %PRIMITIVE HALT called; the party is over.
+ and throw you into the monitor. If I start up lisp,
+ attach to the process with strace, and then do the same
+ (abusive) thing, I get instead:
+ access failure in heap page not marked as write-protected
+ and the monitor again. I don't know enough to have the
+ faintest idea of what is going on here.
+ This is with sbcl 6.12, uname -a reports:
+ Linux prep 2.2.19 #4 SMP Tue Apr 24 13:59:52 CDT 2001 i686 unknown
+ I (WHN) have verified that the same thing occurs on sbcl-0.pre7.141
+ under OpenBSD 2.9 on my X86 laptop. Do be patient when you try it:
+ it took more than two minutes (but less than five) for me.
+
+144:
+ (This was once known as IR1-4, but it lived on even after the
+ IR1 interpreter went to the big bit bucket in the sky.)
The system accepts DECLAIM in most places where DECLARE would be
accepted, without even issuing a warning. ANSI allows this, but since
it's fairly easy to mistype DECLAIM instead of DECLARE, and the
interpreter is gone, the system's notion of what's a top-level form
and what's not will remain too confused to fix this problem.]
-IR1-6:
- (another wishlist thing..) Reimplement DEFMACRO to be basically
- like DEFMACRO-MUNDANELY, just using EVAL-WHEN.
+DEFUNCT CATEGORIES OF BUGS
+ IR1-#:
+ These numbers were used for bugs related to the old IR1
+ interpreter. The # values reached 6 before the category
+ was closed down.
\ No newline at end of file