0.7.12.54:
[sbcl.git] / BUGS
diff --git a/BUGS b/BUGS
index aace2a0..bb197f8 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -1259,6 +1259,41 @@ WORKAROUND:
      calls of the form (TYPEP 1 'INTEGER NIL), even though this is
      just as optimizeable as (TYPEP 1 'INTEGER).
 
+238: "REPL compiler overenthusiasm for CLOS code"
+  From the REPL,
+    * (defclass foo () ())
+    * (defmethod bar ((x foo) (foo foo)) (call-next-method))
+  causes approximately 100 lines of code deletion notes.  Some
+  discussion on this issue happened under the title 'Three "interesting"
+  bugs in PCL', resulting in a fix for this oververbosity from the
+  compiler proper; however, the problem persists in the interactor
+  because the notion of original source is not preserved: for the
+  compiler, the original source of the above expression is (DEFMETHOD
+  BAR ((X FOO) (FOO FOO)) (CALL-NEXT-METHOD)), while by the time the
+  compiler gets its hands on the code needing compilation from the REPL,
+  it has been macroexpanded several times.
+
+239:
+  Since 0.7.0:
+  (defun foo (bit-array-2 &optional result-bit-array)
+    (declare (type (array bit) bit-array-2)
+             (type (or (array bit) (member t nil)) result-bit-array))
+    (unless (simple-bit-vector-p bit-array-2)
+      (multiple-value-call
+          (lambda (data1 start1)
+            (multiple-value-call
+                (lambda (data2 start2)
+                  (multiple-value-call
+                      (lambda (data3 start3)
+                        (declare (ignore start3))
+                        (print (list data1 data2)))
+                    (values 0 0)))
+              (values bit-array-2 0)))
+        (values 444 0))))
+
+  Then (foo (make-array 4 :element-type 'bit :adjustable t) nil)
+  must return the same value as it prints, but it returns random garbage.
+
 DEFUNCT CATEGORIES OF BUGS
   IR1-#:
     These labels were used for bugs related to the old IR1 interpreter.