summaryrefslogtreecommitdiff
tag namesbcl_0_6_9 (ee89dc446f876f630eb197e4e92d6dc02f3eb86f)
tag date2000-11-28 16:48:59 +0200
tagged byWilliam Harold Newman <william.newman@airmail.net>
tagged objectcommit 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.