In the current CVS-version of sbcl (0.6.8-pre?) 'NEWS' has an entry:
?? Martin Atzmueller's versions of two CMU CL patches, as posted on
sbcl-devel 13 September 2000, have been installed. (The patches fix
a bug in SUBSEQ and <a bug in ??>.)
And 'BUGS' says (somewhere near the bottom):
* The bug discussed on the cmucl-imp@... mailing list ca. 5
simplified by Douglas Crosher down to
(defun tickle-bug ()
(labels ((fun1 ()
causes the same problem on SBCL: compiling it fails with
:LET fell through ECASE expression.
Very likely the patch discussed there is appropriate for SBCL
as well, but I don't understand it, so I didn't apply it.
Actually, I think the bug is fixed, because you indeed incorporated this
patch by DTC, posted on
Thu, 07 Sep 2000 04:13:23 +1100.
e.g. the "let-patch", => in merge-lets,
"After looking into this further, and trying to figure out why the
deleted calls block was not marked deleted, it appears that the
real problem is in merge-let which is not removing the converted
function from the lambda-calls in the case of a recursive call ..."
This patch was present in my set of two patches that I sent (see above).
Additionally I have some comments on the 'BUGS' file:
Apparently you tidied it up, so that bugs, that are not present any more
in sbcl, were removed (I did this some time ago, but failed to send you
Anyway there are some more things to remove, because they were fixed
(tested on a sbcl-0.6.7.4):
I am quoting from 'BUGS':
- FIXED: * Missing ordinary arguments in a macro call aren't reported
macro lambda list contains &KEY:
(DEFMACRO FOO (BAR &KEY) BAR) => FOO
(FOO) => NIL
Also in DESTRUCTURING-BIND:
(DESTRUCTURING-BIND (X Y &REST REST) '(1) (VECTOR X Y REST))
=> #(1 NIL NIL)
Also with &REST lists:
(DEFMACRO FOO (BAR &REST REST) BAR) => FOO
(FOO) => NIL
+++ I tried all the above, and it worked.
- FIXED: * The message "The top of the stack was encountered." from the
is not helpful when I type "FRAME 0" -- I know I'm going to the top
of the stack.
- FIXED: * The print system doesn't conform to ANSI
"126.96.36.199.1 Package Prefixes for Symbols" for keywords printed
*PACKAGE* is the KEYWORD package.
from a message by Ray Toy on CMU CL mailing list Fri, 28 Apr 2000:
In a discussion on comp.lang.lisp, the following code was given (by
(let ((*package* (find-package :keyword)))
(write-to-string object :readably t))
+++ this works with
+++ (let ((*package* (find-package :keyword)))
+++ (write-to-string :bla :readably t))
+++ Or am I missing something?
Hope this is useful.