0.8.10.7:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index e4bb460..1ea3f0e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2233,6 +2233,182 @@ changes in sbcl-0.8.7 relative to sbcl-0.8.6:
        SUBTYPEP.
     ** VALUES tranformer lost derived type.
 
+changes in sbcl-0.8.8 relative to sbcl-0.8.7:
+  * minor incompatible change: parsing of namestrings on a physical
+    (Unix) host has changed; numbers after the final #\. in a
+    namestring are no longer interpreted as a version field.  This is
+    intented to be largely invisible to the user, except that the
+    meaning of the namestring "*.*.*" has changed: it now refers to a
+    pathname with :TYPE :WILD :NAME #<pattern "*.*">.  This namestring
+    should usually be replaced by 
+      (make-pathname :name :wild :type :wild :version :wild)
+    with the added benefit that this is more likely to be portable.
+    As a consequence of this change, the :IF-EXISTS :NEW-VERSION
+    option to OPEN now signals an error if the file being opened
+    exists; this may have an impact on existing code.
+  * fixed bug 190: RUN-PROGRAM should now work properly, respecting
+    signals received, on the PowerPC platforms (both Linux and
+    Darwin).  (thanks to Pierre Mai for pointing out the location of
+    the error)
+  * several fixes on OS X: The system now builds and runs cleanly on
+    Panther (10.3), and works around sigreturn bug (no more SIGFPEs).
+    (thanks to Brian Mastenbrook)
+  * bug fix: DECODE-UNIVERSAL-TIME now accepts timezone arguments with
+    second-resolution: integer multiples of 1/3600 between -24 and 24.
+    (thanks to Vincent Arkesteijn)
+  * bug fix: functions =, /=, <, <=, >, >= did not check the argument
+    type when called with 1 argument; PEEK-CHAR checked type of
+    PEEK-TYPE only after having read first character from a
+    stream.  (reported by Peter Graves)
+  * bug fix: the garbage collector now has much better locality
+    behaviour, and in particular no longer treats all memory as being
+    exhausted when many small objects point to each other in a deeply
+    recursive manner.
+  * bug fix: arrays specialized on (UNSIGNED-BYTE 15) are now
+    recognized as being TYPEP their class.
+  * bug fix: the PUSHNEW documentation string has been corrected.
+    (thanks to Vincent Arkesteijn)
+  * bug fix: defaulting of the value for the last of an atypically
+    large number of multiple values being bound was not being
+    performed correctly on the Alpha or PPC platforms
+  * optimization: implemented multiplication as a modular
+    (UNSIGNED-BYTE 32) operation on the x86 backend.
+  * optimization: SEARCH on simple-base-strings can now be open-coded.
+    (see also contrib/compiler-extras.lisp for inspiration for
+    teaching the compiler about the Boyer-Moore algorithm).
+  * value, returned by MAX (and MIN) called with several EQUALP, but
+    not EQL, arguments now does not depend on compiler settings.
+  * fixed some bugs revealed by Paul Dietz' test suite:
+    ** in stack analysis liveness information is propagated from
+       non-local entry points.
+    ** pathwise CAST removing failed when the CAST node did not start
+       a block.
+    ** INPUT-STREAM-P, OUTPUT-STREAM-P, STREAM-ELEMENT-TYPE and
+       OPEN-STREAM-P signal a TYPE-ERROR if their argument is not a
+       stream.
+    ** LOAD-LOGICAL-PATHNAME-TRANSLATIONS returns NIL if the logical
+       host is already defined.
+    ** RENAME-FILE works on streams instead of signalling an internal
+       type error.
+    ** PEEK-CHAR uses the current readtable when determining whether
+       or not a character is whitespace.
+    ** MERGE-PATHNAMES handles the case when the pathname does not
+       specify a name while the default-pathname specifies a version.
+    ** Pathnames now stand a better chance of respecting print/read
+       consistency.
+    ** Attempting to use standardized file system operators with a
+       pathname with invalid :DIRECTORY components signals a
+       FILE-ERROR.
+    ** OPEN :DIRECTION :IO no longer fails to work on non-existent
+       files.
+    ** DIRECTORY on logical pathnames is more correct.
+    ** CLEAR-INPUT, CLEAR-OUTPUT, FINISH-OUTPUT and FORCE-OUTPUT
+       signal a TYPE-ERROR if their argument is not a stream.
+    ** READ-BYTE and WRITE-BYTE signal a TYPE-ERROR if their stream
+       designator argument does not designate a stream.
+    ** OPEN-STREAM-P and INPUT-STREAM-P on synonym streams work by
+       examining the synonym.
+    ** STREAM-ELEMENT-TYPE and FRESH-LINE on broadcast-streams now
+       work as specified.
+    ** OPEN and WITH-OPEN-STREAM allow opening streams with
+       element-type larger than ([UN]SIGNED-BYTE 32).
+
+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.
+
+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.11 relative to sbcl-0.8.10:
+  * 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)
+  * on X86 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)
+
 planned incompatible changes in 0.8.x:
   * (not done yet, but planned:) When the profiling interface settles
     down, it might impact TRACE. They both encapsulate functions, and