From 9b6a38ff5c16c35404f1b2a0a1ebb37af07474bd Mon Sep 17 00:00:00 2001 From: William Harold Newman Date: Thu, 16 Nov 2000 15:46:14 +0000 Subject: [PATCH] 0.6.8.x: updated NEWS and BUGS to reflect merged MNA megapatch --- BUGS | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++ NEWS | 23 ++++++++++++++ version.lisp-expr | 2 +- 3 files changed, 113 insertions(+), 1 deletion(-) diff --git a/BUGS b/BUGS index 0a80569..f9b8719 100644 --- 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)) + => # 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 --- 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. diff --git a/version.lisp-expr b/version.lisp-expr index 1a17050..a81911e 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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" -- 1.7.10.4