and that caused the system to bomb out with infinite regress
when trying to recover from type errors involving signed values,
e.g. (BUTLAST '(1 2 3) -1).)
-?? The system now uses code based on Colin Walters' O(N)
+* (BUTLAST NIL) and (NBUTLAST NIL) now return NIL as they should.
+ (This was one of the bugs Peter Van Eynde reported back in July.)
+* The system now uses code inspired by Colin Walters' O(N)
implementation of MAP (from the cmucl-imp@cons.org mailing
list, 2 September 2000) when it can't use a DEFTRANSFORM to
inline the MAP operation, and there is more than one
single sequence argument). (The old non-inline implementation
of the general M-argument sequence-of-length-N case required
O(M*N*N) time when any of the sequence arguments were LISTs.)
-?? Raymond Wiker's port of CMU CL's RUN-PROGRAM has been added.
-(?? Don't forget to mention Colin Walters and Raymond Wiker in the
- CREDITS file.)
-?? The debugger now flushes standard output streams before it begins
+* The QUIT :UNIX-CODE keyword argument has been renamed to
+ QUIT :UNIX-STATUS. (The old name still works, but is deprecated.)
+* Raymond Wiker's patches to port RUN-PROGRAM from CMU CL to SBCL
+ have been added.
+* Raymond Wiker's patches to port dynamic loading from Linux to
+ FreeBSD have been added.
+* The BUGS file is now more nearly up to date, thanks in large part
+ to Martin Atzmueller's review of it.
+* The debugger now flushes standard output streams before it begins
its output ("debugger invoked" and so forth).
-?? The patch for the SUBSEQ bug reported on the cmucl-imp mailing
- list 12 September 2000 has been applied to SBCL.
-?? 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 ??>.)
-?? A bug in signal handling which kept TRACE from working on OpenBSD
+* The core version number and fasl file version number have both
+ been incremented, because of incompatible changes in the layout
+ of static symbols.
+* FINISH-OUTPUT is now called more consistently on QUIT. (It
+ used to not be called for a saved Lisp image.)
+* Martin Atzmueller's version of a patch to fix a compiler crash,
+ as posted on sbcl-devel 13 September 2000, has been installed.
+* Instead of installing Martin Atzmueller's patch for the
+ compiler transform for SUBSEQ, I deleted the compiler transform,
+ and transforms for some similar consing operations.
+* A bug in signal handling which kept TRACE from working on OpenBSD
has been fixed.
-?? The signal handling bug reported by Martin Atzmueller on
- sbcl-devel 13 September 2000, which caused the debugger to
- get confused after a Ctrl-C interrupt under ILISP, has been fixed.
+* added enough DEFTRANSFORMs to allow (SXHASH 'FOO) to be optimized
+ away by constant folding
+* The system now defines its address space constants in one place
+ (in the Lisp sources), and propagates them automatically elsewhere
+ (through GENESIS and the sbcl.h file). Therefore, patching the
+ address map is less unnecessarily tedious and error-prone. The
+ Lisp names of address space constants have also been systematized.
+* CVS tags like dollar-Header-dollar have been removed from
+ the sources, because they have never saved me trouble and
+ they've been source of trouble working with patches and other
+ diff-related operations.
+* fixed the PROG1-vs.-PROGN bug in HANDLER-BIND (reported by
+ ole.rohne@cern.ch on cmucl-help@cons.org 2000-10-25)
+
+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.
+
+changes in sbcl-0.6.10 relative to sbcl-0.6.9:
+
+* A patch from Martin Atzmueller seems to have solved the SIGINT
+ problem, and as far as we know, signal-handling now works cleanly.
+ (If you find any new bugs, please report them!)
+* The system no longer defaults Lisp source file names to types
+ ".l", ".cl", or ".lsp", but only to ".lisp".
+* The compiler no longer uses special default file extensions for
+ byte-compiled code. (The ANSI definition of COMPILE-FILE-PATHNAME
+ seems to expect a single default extension for all compiled code,
+ and there's no compelling reason to try to stretch the standard
+ to allow two different extensions.) Instead, byte-compiled files
+ default to the same extension as native-compiled files.
+* Fasl file format version numbers have increased again, because
+ a rearrangement of internal implementation packages made some
+ dumped symbols in old fasl files unreadable in new cores.
+?? #'(SETF DOCUMENTATION) is now defined.
+* Bug #17 (differing COMPILE-FILE behavior between logical and
+ physical pathnames) has been fixed, and some related misbehavior too,
+ thanks to a patch from Martin Atzmueller.
+* More compiler warnings in src/runtime/ are gone, thanks to
+ patches from Martin Atzmueller.
+* Martin Atzmueller pointed out that bug 37 was fixed by his patches
+ some time ago.
+
+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.)