0.6.8.x:
authorWilliam Harold Newman <william.newman@airmail.net>
Thu, 16 Nov 2000 15:46:14 +0000 (15:46 +0000)
committerWilliam Harold Newman <william.newman@airmail.net>
Thu, 16 Nov 2000 15:46:14 +0000 (15:46 +0000)
updated NEWS and BUGS to reflect merged MNA megapatch

BUGS
NEWS
version.lisp-expr

diff --git a/BUGS b/BUGS
index 0a80569..f9b8719 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -771,6 +771,95 @@ Error in function C::GET-LAMBDA-TO-COMPILE:
   code), or if the TAGBODY and GO forms are retained, but the 
   assigned value becomes 0.0 instead of (- (ROW-MAJOR-AREF A I)).
 
+63:
+  Paul Werkowski wrote on cmucl-imp@cons.org 2000-11-15
+    I am looking into this problem that showed up on the cmucl-help
+    list. It seems to me that the "implementation specific environment
+    hacking functions" found in pcl/walker.lisp are completely messed
+    up. The good thing is that they appear to be barely used within
+    PCL and the munged environment object is passed to cmucl only
+    in calls to macroexpand-1, which is probably why this case fails.
+  SBCL uses essentially the same code, so if the environment hacking
+  is screwed up, it affects us too.
+
+64:
+  Using the pretty-printer from the command prompt gives funny
+  results, apparently because the pretty-printer doesn't know
+  about user's command input, including the user's carriage return
+  that the user, and therefore the pretty-printer thinks that
+  the new output block should start indented 2 or more characters
+  rightward of the correct location.
+
+65:
+  As reported by Carl Witty on submit@bugs.debian.org 1999-05-08,
+  compiling this file
+(in-package "CL-USER")
+(defun equal-terms (termx termy)
+  (labels
+    ((alpha-equal-bound-term-lists (listx listy)
+       (or (and (null listx) (null listy))
+          (and listx listy
+               (let ((bindings-x (bindings-of-bound-term (car listx)))
+                     (bindings-y (bindings-of-bound-term (car listy))))
+                 (if (and (null bindings-x) (null bindings-y))
+                     (alpha-equal-terms (term-of-bound-term (car listx))
+                                        (term-of-bound-term (car listy)))
+                     (and (= (length bindings-x) (length bindings-y))
+                          (prog2
+                              (enter-binding-pairs (bindings-of-bound-term (car listx))
+                                                   (bindings-of-bound-term (car listy)))
+                              (alpha-equal-terms (term-of-bound-term (car listx))
+                                                 (term-of-bound-term (car listy)))
+                            (exit-binding-pairs (bindings-of-bound-term (car listx))
+                                                (bindings-of-bound-term (car listy)))))))
+               (alpha-equal-bound-term-lists (cdr listx) (cdr listy)))))
+
+     (alpha-equal-terms (termx termy)
+       (if (and (variable-p termx)
+               (variable-p termy))
+          (equal-bindings (id-of-variable-term termx)
+                          (id-of-variable-term termy))
+          (and (equal-operators-p (operator-of-term termx) (operator-of-term termy))
+               (alpha-equal-bound-term-lists (bound-terms-of-term termx)
+                                             (bound-terms-of-term termy))))))
+
+    (or (eq termx termy)
+       (and termx termy
+            (with-variable-invocation (alpha-equal-terms termx termy))))))
+  causes an assertion failure
+    The assertion (EQ (C::LAMBDA-TAIL-SET C::CALLER)
+                      (C::LAMBDA-TAIL-SET (C::LAMBDA-HOME C::CALLEE))) failed.
+
+  Bob Rogers reports (1999-07-28 on cmucl-imp@cons.org) a smaller test
+  case with the same problem:
+(defun parse-fssp-alignment ()
+  ;; Given an FSSP alignment file named by the argument . . .
+  (labels ((get-fssp-char ()
+            (get-fssp-char))
+          (read-fssp-char ()
+            (get-fssp-char)))
+    ;; Stub body, enough to tickle the bug.
+    (list (read-fssp-char)
+         (read-fssp-char))))
+
+66:
+  ANSI specifies that the RESULT-TYPE argument of CONCATENATE must be
+  a subtype of SEQUENCE, but CONCATENATE doesn't check this properly:
+    (CONCATENATE 'SIMPLE-ARRAY #(1 2) '(3)) => #(1 2 3)
+  This also leads to funny behavior when derived type specifiers
+  are used, as originally reported by Milan Zamazal for CMU CL (on the
+  Debian bugs mailing list (?) 2000-02-27), then reported by Martin
+  Atzmueller for SBCL (2000-10-01 on sbcl-devel@lists.sourceforge.net):
+    (DEFTYPE FOO () 'SIMPLE-ARRAY)
+    (CONCATENATE 'FOO #(1 2) '(3)) 
+      => #<ARRAY-TYPE SIMPLE-ARRAY> is a bad type specifier for
+           sequence functions.
+  The derived type specifier FOO should act the same way as the 
+  built-in type SIMPLE-ARRAY here, but it doesn't. That problem
+  doesn't seem to exist for sequence types:
+    (DEFTYPE BAR () 'SIMPLE-VECTOR)
+    (CONCATENATE 'BAR #(1 2) '(3)) => #(1 2 3)
+
 
 KNOWN BUGS RELATED TO THE IR1 INTERPRETER
 
diff --git a/NEWS b/NEWS
index fae9e59..0e694e6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -575,3 +575,26 @@ changes in sbcl-0.6.9 relative to sbcl-0.6.8:
 * The system now understands compound CONS types (e.g. (CONS FIXNUM T))
   as required by ANSI. (thanks to Douglas Crosher's CMU CL patches, with
   some porting work by Martin Atzmueller)
+* Martin Atzmueller reviewed the CMU CL mailing lists and came back
+  with a boatload of other patches for SBCL, which he ported to 
+  SBCL. Now that those have been applied,
+  ** The system tries to make sure that its low-priority messages
+     are prefixed by semicolons, to help people who like to use
+     syntax highlighting in their ILISP buffer. (This patch
+     was originally due to Raymond Toy.)
+  ** The system now optimizes INTEGER-LENGTH better, thanks to more
+     patches originally written by Raymond Toy.
+  ** The compiler understands coercion between single-value and 
+     multiple-VALUES type expressions better, getting rid of some very
+     weird behavior, thanks to patches originally by Robert MacLachlan
+     and Douglas Crosher.
+  ** The system understands ANSI-style non-KEYWORD &KEY arguments in 
+     lambda lists, thanks to a patch originally by Pierre Mai.
+  ** The system no longer bogusly warns about "abbreviated type
+     declarations".
+  ** The compiler gets less confused by inlining and RETURN-FROM,
+     thanks to some patches originally by Tim Moore.
+  ** The system no longer hangs when dumping circular lists to fasl
+     files, thanks to a patch originally from Douglas Crosher.
+* Martin Atzmueller also fixed ROOM, so that it no longer fails with an
+  undefined function error.
index 1a17050..a81911e 100644 (file)
@@ -15,4 +15,4 @@
 ;;; versions, and a string like "0.6.5.12" is used for versions which
 ;;; aren't released but correspond only to CVS tags or snapshots.
 
-"0.6.8.19"
+"0.6.8.20"