-changes in sbcl-0.6.13 relative to sbcl-0.6.12:
-* a port to the Compaq/DEC Alpha CPU, thanks to Dan Barlow
-* Martin Atzmueller ported Tim Moore's marvellous CMU CL DISASSEMBLE
- patch, so that DISASSEMBLE output is much nicer.
-* The code in the SB-PROFILE package now seems reasonably stable.
- I still haven't decided what the final interface should look like
- (I'd like PROFILE to interact cleanly with TRACE, since both
- facilities use function encapsulation) but if you have a need
- for profiling now, you can probably use it successfully with
- the current CMU-CL-style interface.
-* Pathnames and *DEFAULT-DIRECTORY-DEFAULTS* are much more
- ANSI-compliant, thanks to various fixes and tests from Dan Barlow.
- Also, at Dan Barlow's suggestion, TRUENAME on a dangling symbolic
- link now returns the dangling link itself, and for similar
- reasons, TRUENAME on a cyclic symbolic link returns the cyclic
- link itself. (In these cases the old code signalled an error and
- looped endlessly, respectively.) Thus, DIRECTORY now works even
- in the presence of dangling and cyclic symbolic links.
-* Compiler trace output (the :TRACE-FILE option to COMPILE-FILE)
- is now a supported extension again, since the consensus on
- sbcl-devel was that it can be useful for ordinary development
- work, not just for debugging SBCL itself.
-* The default for SB-EXT:*DERIVE-FUNCTION-TYPES* has changed to
- NIL, i.e. ANSI behavior, i.e. the compiler now recognizes
- that currently-defined functions might be redefined later with
- different return types.
-* Hash tables can be printed readably, as inspired by CMU CL code
- of Eric Marsden and SBCL code of Martin Atzmueller.
-* better error handling in CLOS method combination, thanks to
- Martin Atzmueller porting Pierre Mai's CMU CL patches
-* more overflow fixes for >16Mbyte I/O buffers
-* A bug in READ has been fixed, so that now a single Ctrl-D
- character suffices to cause end-of-file on character streams.
- In particular, now you only need one Ctrl-D at the command
- line (not two) to exit SBCL.
-* fixed bug 26: ARRAY-DISPLACEMENT now returns (VALUES NIL 0) for
- undisplaced arrays.
-* fixed bug 107 (reported as a CMU CL bug by Erik Naggum on
- comp.lang.lisp 2001-06-11): (WRITE #*101 :RADIX T :BASE 36) now
- does the right thing.
-* The implementation of some type tests, especially for CONDITION
- types, is now tidier and maybe faster, due to CMU CL code
- originally by Douglas Crosher, ported by Martin Atzmueller.
-* Some math functions have been fixed, and there are new
- optimizers for deriving the types of COERCE and ARRAY-ELEMENT-TYPE,
- thanks to Raymond Toy's work on CMU CL, ported by Martin Atzmueller.
-* (There are also some new optimizers in contrib/*-extras.lisp. Those
- aren't built into sbcl-0.6.13, but are a sneak preview of what's
- likely to be built into sbcl-0.7.0.)
-* A bug in COPY-READTABLE was fixed. (Joao Cachopo's patch to CMU
- CL, ported to SBCL by Martin Atzmueller)
-* DESCRIBE now gives more information in some cases. (Pierre Mai's
- patch to CMU CL, ported to SBCL by Martin Atzmueller)
-* Martin Atzmueller and Bill Newman fixed some bugs in INSPECT.
-* There's a new slam.sh hack to shorten the edit/compile/debug
- cycle for low-level changes to SBCL itself, and a new
- :SB-AFTER-XC-CORE target feature to control the generation of
- the after-xc.core file needed by slam.sh.
-* minor incompatible change: The ENTRY-POINTS &KEY argument to
- COMPILE-FILE is no longer supported, so that now every function
- gets an entry point, so that block compilation looks a little
- more like the plain vanilla ANSI section 3.2.2.3 scheme.
-* minor incompatible change: SB-EXT:GET-BYTES-CONSED now
- returns the number of bytes consed since the system started,
- rather than the number consed since the first time the function
- was called. (The new definition parallels ANSI functions like
- CL:GET-INTERNAL-RUN-TIME.)
-* minor incompatible change: The old CMU-CL-style DIRECTORY options,
- i.e. :ALL, :FOLLOW-LINKS, and :CHECK-FOR-SUBDIRS, are no longer
- supported. Now DIRECTORY always does the abstract Common-Lisp-y
- thing, i.e. :ALL T :FOLLOW-LINKS T :CHECK-FOR-SUBDIRS T.
-* Fasl file version numbers are now independent of the target CPU,
- since historically most system changes which required version
- number changes have affected all CPUs equally. Similarly,
- the byte fasl file version is now equal to the ordinary
- fasl file version.
+changes in sbcl-0.8.12 relative to sbcl-0.8.11:
+ * minor incompatible change: the system no longer provides
+ optimization hints (conditions which are TYPEP
+ SB-EXT:COMPILER-NOTE) for conforming code in default compilation
+ mode; these hints are still emitted when higher SPEED optimization
+ is requested.
+ * new contrib module: a sampling profiler (profiling by statistical
+ sampling, rather than by instrumenting functions) is available as
+ the SB-SPROF contrib. (thanks to Gerd Moellmann and Juho Snellman)
+ * the behaviour of the standard function ED is now customizeable by
+ third parties through a hook variable: see ED's documentation
+ string for information on the protocol.
+ * the compiler no longer emits efficiency notes for (FUNCALL X)
+ when the type of X is uncertain under default optimization
+ settings.
+ * fixed bug 276: mutating a binding of a specialized parameter to a
+ method to something that is not TYPEP the specializer is now
+ possible.
+ * fixed bugs 45d and 118: DOUBLE-FLOAT[-NEGATIVE]-EPSILON now
+ exhibit the required behaviour on the x86 platform. (thanks to
+ Peter van Eynde, Eric Marsden and Bruno Haible)
+ * fixed bug 335: ATANH now computes the inverse hyperbolic tangent
+ even for difficult arguments. (reported by Peter Graves)
+ * fixed bug 141a: the backquote printer now descends quoted
+ structure.
+ * fixed another bug in backquote printing: no more destructive
+ modification of the form's list structure. (reported by Brian
+ Downing)
+ * fixed bug in INTERRUPT-THREAD: pin the function, so that it cannot
+ move between its address being taken and the call to
+ interrupt_thread, fixing a crashing race condition.
+ * the SB-POSIX contrib implementation has been adjusted so that it
+ no longer exhibits ridiculously poor performance when constructing
+ instances corresponding to C structs.
+
+changes in sbcl-0.8.11 relative to sbcl-0.8.10:
+ * minor incompatible change: the sb-grovel contrib now treats C
+ structures as alien (in the sense of SB-ALIEN) objects rather than
+ as undistinguished (simple-array (unsigned-byte 8) (*))s. This
+ has implications for memory management of client code
+ (sb-grovel-returned objects must now be manually managed) and for
+ type safety (alien objects now have full types).
+ * new feature: the SB-EXT:MUFFLE-CONDITIONS declaration should be
+ used to control emission of compiler diagnostics, rather than the
+ SB-EXT:INHIBIT-WARNINGS OPTIMIZE quality. See the manual for
+ documentation on this feature. The SB-EXT:INHIBIT-WARNINGS
+ quality should be considered deprecated.
+ * install.sh now installs the user manual as well
+ * (not quite a new documentable feature, but worth considering in
+ the light of the new SB-EXT:MUFFLE-CONDITIONS declaration): the
+ beginnings of a semantically meaningful condition hierarchy is
+ under development, for use in SB-EXT:MUFFLE-CONDITIONS and by
+ IDEs.
+ * fixed bug: PARSE-NAMESTRING now accepts any valid pathaname
+ designator as the defaults argument.
+ * fixed bug: Displaced arrays whose displaced-to array has become
+ too small now cause ARRAY-DIMENSION to signal an error, providing
+ for safer bounds-checking. (reported by Bruno Haible)
+ * fixed bug: DEFCLASS slot definitions with identical :READER and
+ :WRITER names now signal a reasonable error. (reported by Thomas
+ Burdick)
+ * fixed bug: CLOSE :ABORT T on appending stream no longer causes
+ file deletion.
+ * fixed bug: Invalid slot specification errors now print correctly.
+ (thanks to Zach Beane)
+ * fixed bug 320: Shared to local slot value transfers in class
+ redefinitions now happen corrently from superclasses as
+ well. (reported by Bruno Haible)
+ * fixed bug 316: SHIFTF now accepts VALUES forms. (reported by Bruno
+ Haible)
+ * fixed bug 322: DEFSTRUCT :TYPE LIST type predicates now handle
+ improper lists correctly. (reported by Bruno Haible)
+ * fixed bug 313: source-transform for <fun-name> was erroneously
+ applied to a call of a value of a variable with name <fun-name>.
+ (reported by Antonio Menezes Leitao)
+ * fixed bug 307: The obsolete instance protocol ensures that
+ subclasses are properly obsoleted. (thanks to Nikodemus Siivola)
+ * fixed bug 298, revealed by Paul F. Dietz' test suite: SBCL can
+ remove dead unknown-values globs from the middle of the stack.
+ * added a new restart to *BREAK-ON-SIGNALS* handling to make it
+ easier to resume long computations after using *BREAK-ON-SIGNALS*
+ to diagnose and fix failures. (thanks to Nikodemus Siivola)
+ * fixed bug reported by PFD in lisppaste #747 (and Bruno Haible from
+ CLISP test suite): WRITE-TO-STRING is not constant-foldable.
+ * fixed bugs in COMPLEX type specifier: UPGRADED-COMPLEX-PART-TYPE
+ is now consistent with (COMPLEX <x>); bugs in treatment of COMPLEX
+ MEMBER and UNION types have likewise been fixed. (thanks to Bruno
+ Haible)
+ * fixed a (fairly theoretical) bug in string printing: if
+ *PRINT-READABLY* is true, signal PRINT-NOT-READABLE if the string
+ does not have array-element-type equal to the most general string
+ type.
+ * fixed bug: SET-PPRINT-DISPATCH does not immediately resolve
+ function name. (thanks to Nikodemus Siivola)
+ * fixed bug: compile-time format string checker failed on
+ non-closed ~{. (reported by Thomas F Burdick)
+ * fixed bug: as reported by Kalle Olavi Niemitalo on #lisp IRC,
+ don't warn on legal loop code involving more than one aggregate
+ boolean. (thanks to Nikodemus Siivola)
+ * fixed bug: as reported by Peter Graves on #lisp IRC, passing a NIL
+ in keyword position to MAKE-PACKAGE was not being reported as
+ invalid.
+ * fixed bug: as reported by Juan Ripoll on cmucl-imp,
+ MULTIPLE-VALUE-BIND should be able to lexically bind lambda list
+ keywords.
+ * fixed bugs 280 and 312: the checking for multiple definitions in a
+ file is less likely to become confused by uses of inline
+ functions.
+ * fixed bug: the #S reader macro performs the keyword coercion
+ specified for slot names. (reported by Kalle Niemitalo)
+ * fixed bug: lambda lists may contain symbols whose names start with
+ & but are not lambda-list-keywords; their occurrence triggers a
+ STYLE-WARNING.
+ * fixed bug 321: define-method-combination argument lambda lists do
+ not cause invalid code to be generated when &optional or &aux
+ variables have default values. (reported by Bruno Haible)
+ * fixed bug 327: system subclasses of STRUCTURE-OBJECT or CONDITION
+ have CLOS classes; this appears also to have fixed reported
+ instability in stack exhaustion detection.
+ * fixed bug: the CONTROL-ERROR from ABORT, CONTINUE and
+ MUFFLE-WARNING when no associated restart is present is now
+ printable.
+ * optimization: rearranged the expansion of various defining macros
+ so that each expands into only one top-level form in a
+ :LOAD-TOPLEVEL context; this appears to decrease fasl sizes by
+ approximately 10%.
+ * optimization: used a previously little-used slot in symbols to
+ cache SXHASH values, yielding a 5-10% compiler speedup. (thanks
+ to Juho Snellman)
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** MAKE-INSTANCES-OBSOLETE returns the class name when called with
+ a symbol.
+ ** Fixed an optimization bug related to inheritance of initforms
+ from local to shared slots.
+ ** FILE-POSITION works as specified on BROADCAST-STREAMs.
+ ** CAST optimizer forgot to flush argument derived type.
+ ** print/read consistency on floats is now orders of magnitude
+ more likely. (thanks also to Bruno Haible for a similar report
+ and discussions)
+ ** removed stack cleaning in the cleanup part of UNWIND-PROTECT.
+ ** IMAGPART is specified (infelicitously) to return (* 0 <thing>)
+ for objects of type REAL. Make it so.
+ ** SXHASH is specified (infelicitously) to respect similarity,
+ which means that (SXHASH 0.0) must equal (SXHASH -0.0). Make
+ it so. (thanks to Markus Ziegler)
+ ** on the Alpha, the compiler succeeds in compiling functions
+ returning a known number of arguments greater than 63.
+ ** fixed handling of invalid NIL arguments in keyword position
+ in local calls.
+ ** fixed non-pretty printing of arrays with *PRINT-RADIX* being
+ true.
+ ** provided a readably-printable representation for RANDOM-STATE
+ objects.
+ ** ensured that pathnames, where they have a namestring, always
+ print using #P"..." syntax.
+
+changes in sbcl-0.8.10 relative to sbcl-0.8.9:
+ * Support for the forthcoming 2.0 version of the NetBSD kernel
+ running on x86 hardware has been added. (thanks to Perry
+ E. Metzger most immediately, and others for their past work)
+ * SBCL now runs on OpenBSD 3.4. (Thanks to Scott Parish; 3.4 is the
+ current release version; SBCL's OpenBSD support had been broken
+ since about the time of OpenBSD's switch to ELF binary format.)
+ * [placeholder for DX summary]
+ ** user code with &REST lists declared dynamic-extent, under high
+ speed or space and low safety and debug optimization policy.
+ * The manual has been converted to Texinfo format and the debugger
+ chapter from the cmucl manual has been added.
+ * A facility has been added to extract documentation strings from
+ sbcl and store them as Texinfo-formatted snippets for inclusion in
+ the manual (via Texinfo's @include directive)
+ * bug fix: compiler emitted division in optimized DEREF. (thanks for
+ the test case to Dave Roberts)
+ * bug fix: multidimensional simple arrays loaded from FASLs had fill
+ pointers. (reported by Sean Ross)
+ * bug fix: PROFILE output is printed nicely even for large numerical
+ values. (thanks to Zach Beane)
+ * bug fix: streams with element-type (SIGNED-BYTE <N>) for <N>
+ greater than 32 handle EOF correctly.
+ * bug fix: on X86 an immediate argument of the IMUL instruction is
+ correctly printed in disassembly. (thanks to Lutz Euler)
+ * bug fix: class slots in redefined classes preserve their old
+ values. (thanks to Bruno Haible and Nikodemus Siivola)
+ * bug fix: compilation of funcalls of CXX+R (e.g. CDDR) now
+ succeeds. (reported by Marco Baringer)
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** READ-SEQUENCE now works on ECHO-STREAMs.
+ ** RATIONALIZE works more according to its specification. (thanks
+ to Bruno Haible)
+
+changes in sbcl-0.8.9 relative to sbcl-0.8.8:
+ * deprecation of old extension: *DEBUG-PRINT-LEVEL* and
+ *DEBUG-PRINT-LENGTH* are now deprecated in favor of the new, more
+ general SB-DEBUG:*DEBUG-PRINT-VARIABLE-ALIST* mechanism. (This
+ should matter to you only if you rebind the printer control
+ variables and then find you want different bindings in the
+ debugger than in the ordinary execution of your program.)
+ * The runtime build system has been tweaked to support building
+ (on SPARC/SunOS) using a C compiler which invokes Sun's own
+ assembler and linker. (thanks to Nikodemus Siivola)
+ * Unbound, undefined, undeclared variables now trigger full
+ WARNINGs, not just STYLE-WARNINGs, on the assumption that this is
+ more often programmer error than deliberate exploitation of undefined
+ behaviour.
+ * optimization: the hash algorithm for strings has changed to one
+ that is less vulnerable to spurious collisions. (thanks to Juho
+ Snellman)
+ * optimization: VECTOR-POP, VECTOR-PUSH-EXTEND and REPLACE do less
+ needless bounds checking. (thanks to Juho Snellman)
+ * optimization: implemented multiplication as a modular
+ (UNSIGNED-BYTE 32) operation on the PPC backend.
+ * fixed some bugs revealed by Paul Dietz' test suite:
+ ** ADJUST-ARRAY now copies the datum in a zero rank array if
+ required.
+ ** ADJUST-ARRAY no longer adjusts non-adjustable arrays.
+ ** MAKE-STRING-INPUT-STREAM accepts NIL as a value for :END.
+ ** MAKE-STRING-INPUT-STREAM functions correctly for strings with
+ element-type NIL.
+ ** CLEAR-INPUT accepts NIL and T for its (optional) stream
+ argument.
+ ** Ratios can now be printed correctly with *PRINT-BASE* bound to
+ 2, 8 or 16.
+ ** ECHO-STREAMs no longer attempt to echo the end of file value to
+ their output stream on EOF from read.
+ ** CONCATENATED-STREAM-STREAMS discards constituent streams which
+ have been read to end-of-file.
+ ** CLOSE works as expected on the null CONCATENATED-STREAM, and on
+ STRING-STREAMS.
+ ** Printing symbols with *PRINT-CASE* :CAPITALIZE respects the
+ description of determination of which consecutive characters
+ constitute a word.
+ ** Printing the "Space" character with escaping on now yields "#\\ ",
+ rather than "#\\Space", as mandated by ANSI 22.1.3.2.
+ ** Reading floating-point numbers with *READ-BASE* set to a number
+ less than 10 works correctly.
+ ** Reading floating-point numbers with *READ-BASE* set to a number
+ more than 10 works correctly.
+ ** Printing with *PRINT-READABLY* targets the standard readtable, not
+ the readtable currently in effect.