into everyone's system when I do a "cvs update".) When no
customize-target-features.lisp file exists, the target *FEATURES* list
should be constructed the same way as before.
-* fixed bug 1 (error handling before read-eval-print loop starts), and
- redid debugger restarts and related debugger commands somewhat while
- doing so:
- ** The QUIT debugger command is gone, since it did something
- rather different than the SB-EXT:QUIT command, and since it never
- worked properly outside the main toplevel read/eval/print loop.
- Invoking the new TOPLEVEL restart provides the same functionality.
- ** The GO debugger command is also gone, since you can just invoke
- the CONTINUE restart directly instead.
- ** The TOP debugger command is also gone, since it's redundant with the
- FRAME 0 command, and since it interfered with abbreviations for the
- TOPLEVEL restart.
-* DEFCONSTANT has been made more ANSI-compatible (completely ANSI-compatible,
- as far as I know):
+* fixed bugs in DEFCONSTANT ANSI-compatibility:
** DEFCONSTANT now tests reassignments using EQL, not EQUAL, in order to
warn about behavior which is undefined under the ANSI spec. Note: This
is specified by ANSI, but it's not very popular with programmers.
pre-ANSI IR1 translation magic, so it does the ANSI-specified thing
when it's used as a non-toplevel form. (This is required in order
to implement the DEFCONSTANT-EQX macro.)
-?? fixed bug: (DEFCONSTANT X 1) (DEFVAR X) (SETF X 2) no longer "works".
-?? fixed bug 21, a compiler bug re. special variables in closures. One
- consequence of this is that ILISP should work better, because idioms like
- (LET ((*PACKAGE* ..)) (DO-SOMETHING)) no longer have screwy side-effects.
+ ** (DEFCONSTANT X 1) (DEFVAR X) (SETF X 2) no longer "works".
+ ** Unfortunately, non-toplevel DEFCONSTANT forms can still do some
+ funny things, due to bugs in the implementation of EVAL-WHEN
+ (bug #IR1-3). This probably won't be fixed until 0.7.x. (Fortunately,
+ non-toplevel DEFCONSTANTs are uncommon.)
* The core file version number and fasl file version number have been
incremented, because the old noncompliant DEFCONSTANT behavior involved
- calling functions which no longer exist.
+ calling functions which no longer exist, and because I also took the
+ opportunity to chop an unsupported slot out of the DEBUG-SOURCE structure.
+* fixed bug 1 (error handling before read-eval-print loop starts), and
+ redid debugger restarts and related debugger commands somewhat while
+ doing so:
+ ** The QUIT debugger command is gone, since it did something
+ rather different than the SB-EXT:QUIT command, and since it never
+ worked properly outside the main toplevel read/eval/print loop.
+ Invoking the new TOPLEVEL restart provides the same functionality.
+ ** The GO debugger command is also gone, since you can just invoke
+ the CONTINUE restart directly instead.
+ ** The TOP debugger command is also gone, since it's redundant with the
+ FRAME 0 command, and since it interfered with abbreviations for the
+ TOPLEVEL restart.
+* The system now recovers better from non-PACKAGE values of the *PACKAGE*
+ variable.
+* 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 patches 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.
+* gave up on fixing bug 3 (forbidden-by-ANSI warning for type mismatch
+ in structure slot initforms) for now, documented workaround instead:-|
+* fixed bug 4 (no WARNING for DECLAIM FTYPE of slot accessor function)
+* fixed bug 5: added stubs for various Gray stream functions called
+ in the not-a-CL:STREAM case, so that even when Gray streams aren't
+ installed, at least appropriate type errors are generated
+* fixed bug 8: better reporting of various PROGRAM-ERRORs
+* fixed bug 9: IGNORE and IGNORABLE now work reasonably and more
+ consistently in DEFMETHOD forms.
+* removed bug 21 from BUGS, since Martin Atzmueller points out that
+ it doesn't seem to affect SBCL after all
+* The C runtime system now builds with better optimization and many
+ fewer warnings, thanks to lots of cleanups by Martin Atzmueller.
-?? signal handling reliability
-?? fixed some bugs mentioned in the man page:
- ?? DEFUN-vs.-DECLAIM
+planned incompatible changes in 0.7.x:
+* 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 ILISP and SBCL got into arguments which left me
+ deeply nested in the debugger.)