0.9.13.49:
authorWilliam Harold Newman <william.newman@airmail.net>
Mon, 19 Jun 2006 13:25:00 +0000 (13:25 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Mon, 19 Jun 2006 13:25:00 +0000 (13:25 +0000)
logged bug 404

BUGS
version.lisp-expr

diff --git a/BUGS b/BUGS
index 890f957..fd35ada 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -2176,3 +2176,22 @@ WORKAROUND:
   argument to CHECK-FOR-CIRCULARITY, but I haven't reverse-engineered
   enough of the intended meaning of the different MODE values to be
   confident of this.
+
+404: nonstandard DWIMness in LOOP with unportably-ordered clauses
+  In sbcl-0.9.13, the code
+    (loop with stack = (make-array 2 :fill-pointer 2 :initial-element t)
+          for length = (length stack)
+          while (plusp length)
+          for element = (vector-pop stack)
+          collect element)
+  compiles without error or warning and returns (T T). Unfortunately, 
+  it is inconsistent with the ANSI definition of the LOOP macro, 
+  because it mixes up VARIABLE-CLAUSEs with MAIN-CLAUSEs. Furthermore,
+  SBCL's interpretation of the intended meaning is only one possible,
+  unportable interpretation of the noncompliant code; in CLISP 2.33.2, 
+  the code compiles with a warning
+    LOOP: FOR clauses should occur before the loop's main body
+  and then fails at runtime with 
+    VECTOR-POP: #() has length zero
+  perhaps because CLISP has shuffled the clauses into an 
+  ANSI-compliant order before proceeding.
index 9fce641..55305e2 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.13.48"
+"0.9.13.49"