introduced some new bugs, but since the new logic is simpler and
more orthogonal, hopefully it will be easier to clean up bugs
in the new code than it was in the old code.
-* The rewritten compiler is still a little unsteady on its feet.
+* Some obscure compiler bugs (notably a messy one involving closures
+ over variables when the closure relationship was stretched over
+ multiple compilation components) were exposed by the new way that
+ the compiler is used, and were fixed.
+* The revised compiler is still a little unsteady on its feet.
In particular, the debugging information it produces is sometimes
broken, and the support for inlining FOO when you
(DECLAIM (INLINE FOO)) then do (DEFUN FOO ..) in a non-null
** bug in the optimization of ARRAY-ELEMENT-TYPE
** argument ordering in FIND with :TEST option
** mishandled package designator argument in APROPOS-LIST
+ ** various problems in the backquote readmacro
He also pointed out some bogus old entries in BUGS, and fixed
a number of bugs which came into existence in the pre7 branch
(internal to the CVS repository), so that they never showed
:SB-PROPAGATE-FUN-TYPE are no longer considered to be optional
features. Instead, the code that they used to control is always
built into the system.
-?? minor incompatible change: The debugger prompt sequence now goes
+* minor incompatible change: The debugger prompt sequence now goes
"5]", "5[2]", "5[3]", etc. as you get deeper into recursive calls
to the debugger command loop, instead of the old "5]", "5]]",
"5]]]" sequence. (I was motivated to do this when squabbles between
ILISP and SBCL left me very deeply nested in the debugger. In the
short term, this change will probably provoke more ILISP/SBCL
squabbles, but hopefully it will be an improvement in the long run.)
-?? minor incompatible change: The default output representation for
- unprintable ASCII characters which, unlike e.g. #\Newline, don't
- have names defined in the ANSI Common Lisp standard, is now based
- on their ASCII symbolic names: #\Nul, #\Soh, #\Stx, etc.
+* minor incompatible change: The CHAR-NAME of unprintable ASCII
+ characters which, unlike e.g. #\Newline and #\Tab, don't have names
+ specified in the ANSI Common Lisp standard, is now based on their
+ ASCII symbolic names (#\Nul, #\Soh, #\Stx, etc.) The old CMU CL
+ names (#\Null, #\^a, #\^b, etc.) are still accepted by NAME-CHAR.
?? Old operator names in the style DEF-FOO are now deprecated in
favor of new corresponding names DEFINE-FOO, for consistency with
the naming convention used in the ANSI standard (DEFSTRUCT, DEFVAR,
DEFINE-CONDITION, DEFINE-MODIFY-MACRO..). This mostly affects
- internal symbols, but a few external symbols like
+ internal symbols, but a few supported extensions like
SB-ALIEN:DEF-ALIEN-FUNCTION are also affected.
+* minor incompatible change (part of a bug fix by Christophe Rhodes
+ to DIRECTORY behavior): DIRECTORY no longer implicitly promotes
+ NIL slots of its pathname argument to :WILD, and in particular
+ asking for the contents of a directory, which you used to be able
+ to do without explicit wildcards, e.g. (DIRECTORY "/tmp/"),
+ now needs explicit wildcards, e.g. (DIRECTORY "/tmp/*.*").
* minor incompatible change: DEFINE-ALIEN-FUNCTION (also known by
the old deprecated name DEF-ALIEN-FUNCTION) now does DECLAIM FTYPE
for the defined function, since declaiming return types involving