0.pre7.111:
[sbcl.git] / BUGS
diff --git a/BUGS b/BUGS
index 62ffc35..e50ba73 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1283,9 +1283,10 @@ Error in function C::GET-LAMBDA-TO-COMPILE:
   "SB-INT:&MORE processor".
 
 138:
-  a cross-compiler bug in sbcl-0.pre7.107
+  a pair of cross-compiler bugs in sbcl-0.pre7.107
 
-  $ cat > /tmp/bug139.lisp << EOF
+138a:
+  $ cat > /tmp/bug138.lisp << EOF
   (in-package "SB!KERNEL")
   (defun f-c-l (name parent-types)
     (let* ((cpl (mapcar (lambda (x) 
@@ -1300,7 +1301,7 @@ Error in function C::GET-LAMBDA-TO-COMPILE:
   EOF
   $ sbcl --core output/after-xc.core
   ...
-  * (target-compile-file "/tmp/bug139.lisp")
+  * (target-compile-file "/tmp/bug138.lisp")
   ...
   internal error, failed AVER:
     "(COMMON-LISP:MEMBER SB!C::FUN (SB!C::COMPONENT-LAMBDAS SB!C:COMPONENT))"
@@ -1312,6 +1313,36 @@ Error in function C::GET-LAMBDA-TO-COMPILE:
   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.
+
 139:
   In sbcl-0.pre7.107, (DIRECTORY "*.*") is broken, as reported by 
   Nathan Froyd sbcl-devel 2001-12-28.