tag name | sbcl_0_6_9 (ee89dc446f876f630eb197e4e92d6dc02f3eb86f) |
tag date | 2000-11-28 16:48:59 +0200 |
tagged by | William Harold Newman <william.newman@airmail.net> |
tagged object | commit 943f38e623... |
changes in sbcl-0.6.9 relative to sbcl-0.6.8:
* DESCRIBE now works on CONDITION objects.
* The debugger now handles errors which arise when trying to print
*DEBUG-CONDITION*, so that it's less likely to fall into infinite
regress.
* The build system now uses an additional file, customize-target-features.lisp,
to allow local modifications to the target *FEATURES* list. (The point of
this is that now I can set up a custom configuration, e.g. with :SB-SHOW
debugging features enabled, without having to worry about propagating it
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 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.
If it causes you problems, take a look at the new SB-INT:DEFCONSTANT-EQX
macro in the SBCL sources for an example of a workaround which you
might use to make portable ANSI-standard code which does what you want.
** DEFCONSTANT's implementation is now based on EVAL-WHEN instead of on
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.)
** (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, 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.