0.7.6.10:
[sbcl.git] / BUGS
diff --git a/BUGS b/BUGS
index 08bfbdc..8334a70 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -89,6 +89,9 @@ WORKAROUND:
   also unstable in several ways, including its inability
   to really grok function declarations.
 
+  As of sbcl-0.7.5, sbcl's cross-compiler does run with
+  *TYPE-SYSTEM-INITIALIZED*; however, this bug remains.
+
 7:
   The "compiling top-level form:" output ought to be condensed.
   Perhaps any number of such consecutive lines ought to turn into a
@@ -584,11 +587,6 @@ WORKAROUND:
   GC, so that thereafter memory usage can never be reduced below that
   level.
 
-96:
-  The TRACE facility can't be used on some kinds of functions.
-  (Basically, the breakpoint facility was incompletely implemented
-  in the X86 port of CMU CL, and hasn't been fixed in SBCL.)
-
 98:
   In sbcl-0.6.11.41 (and in all earlier SBCL, and in CMU
   CL), out-of-line structure slot setters are horribly inefficient
@@ -1073,6 +1071,8 @@ WORKAROUND:
   It should be possible to be much more specific (overflow, division
   by zero, etc.) and of course the "How can this be?" should be fixable.
 
+  See also bugs #45.c and #183
+
 148:
   In sbcl-0.7.1.3 on x86, COMPILE-FILE on the file
     (in-package :cl-user)
@@ -1118,18 +1118,6 @@ WORKAROUND:
     Is (1 . 1) of type CONS a cons? => NIL
   without signalling an error.
 
-154:
-  There's some sort of problem with aborting back out of the debugger
-  after a %DETECT-STACK-EXHAUSTION error in sbcl-0.7.1.38. In some cases
-  telling the debugger to ABORT doesn't get you back to the main REPL,
-  but instead just gives you another stack exhaustion error. The problem
-  doesn't occur in the trivial case
-    * (defun frob () (frob) (frob))
-    FROB
-    * (frob)
-  but it has happened in more complicated cases (which I haven't
-  figured out how to reproduce).
-
 157:
   Functions SUBTYPEP, TYPEP, UPGRADED-ARRAY-ELEMENT-TYPE, and 
   UPGRADED-COMPLEX-PART-TYPE should have an optional environment argument.
@@ -1324,12 +1312,6 @@ WORKAROUND:
   the compiler handle the error, convert it into a COMPILER-ERROR, and
   continue compiling) which seems wrong.
 
-182: "SPARC/Linux floating point"
-  Evaluating (/ 1.0 0.0) at the prompt causes a Bus error and complete
-  death of the environment. Other floating point operations sometimes
-  return infinities when they should raise traps (e.g. the test case
-  for bug #146, (expt 2.0 12777)).
-
 183: "IEEE floating point issues"
   Even where floating point handling is being dealt with relatively
   well (as of sbcl-0.7.5, on sparc/sunos and alpha; see bug #146), the
@@ -1369,17 +1351,6 @@ WORKAROUND:
   however, compiling and loading the same expression in a file works
   as expected.
 
-186: "Undercautious FILL transform"
-  Compiling and loading the following code:
-  (declare (optimize (safety 3) (speed 2) (space 1)))
-  (defun foo (x)
-    (fill (make-string 10) x))
-  and then running
-  * (foo 4097)
-  "@@@@@@@@@@"
-  This is probably due to insufficient checking in the IR1
-  deftransform for FILL
-
 187: "type inference confusion around DEFTRANSFORM time"
   (reported even more verbosely on sbcl-devel 2002-06-28 as "strange
   bug in DEFTRANSFORM")
@@ -1437,6 +1408,49 @@ WORKAROUND:
       ;; go away.) 
       (sb-c::%dvai v i))
 
+188: "compiler performance fiasco involving type inference and UNION-TYPE"
+  (In sbcl-0.7.6.10, DEFTRANSFORM CONCATENATE was commented out until this
+  bug could be fixed properly, so you won't see the bug unless you restore
+  the DEFTRANSFORM by hand.) In sbcl-0.7.5.11 on a 700 MHz Pentium III, 
+    (time (compile
+           nil
+           '(lambda ()
+              (declare (optimize (safety 3)))
+              (declare (optimize (compilation-speed 2)))
+              (declare (optimize (speed 1) (debug 1) (space 1)))
+              (let ((fn "if-this-file-exists-the-universe-is-strange"))
+                (load fn :if-does-not-exist nil)
+                (load (concatenate 'string fn ".lisp") :if-does-not-exist nil)
+                (load (concatenate 'string fn ".fasl") :if-does-not-exist nil)
+                (load (concatenate 'string fn ".misc-garbage")
+                      :if-does-not-exist nil)))))
+  reports  
+                134.552 seconds of real time
+                133.35156 seconds of user run time
+                0.03125 seconds of system run time
+                   [Run times include 2.787 seconds GC run time.]
+                0 page faults and
+                246883368 bytes consed.
+  BACKTRACE from Ctrl-C in the compilation shows that the compiler is
+  thinking about type relationships involving types like
+     #<UNION-TYPE
+       (OR (INTEGER 576 576)
+           (INTEGER 1192 1192)
+           (INTEGER 2536 2536)
+           (INTEGER 1816 1816)
+           (INTEGER 2752 2752)
+           (INTEGER 1600 1600)
+           (INTEGER 2640 2640)
+           (INTEGER 1808 1808)
+           (INTEGER 1296 1296)
+           ...)>)[:EXTERNAL]
+
+190: "PPC/Linux pipe? buffer? bug"
+  In sbcl-0.7.6, the run-program.test.sh test script sometimes hangs
+  on the PPC/Linux platform, waiting for a zombie env process.  This
+  is a classic symptom of buffer filling and deadlock, but it seems
+  only sporadically reproducible.
+
 DEFUNCT CATEGORIES OF BUGS
   IR1-#:
     These labels were used for bugs related to the old IR1 interpreter.