X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=e167b0b336c42b0d50e2104cac13b2179cd12cdd;hb=2f1071f50ae43bce938aacf03d67d9626014a076;hp=b08faff0daf6242ae945aeedb5a96b96d6acae17;hpb=9afb0bc650cd36dc093be6958a224e86d59d3893;p=sbcl.git diff --git a/NEWS b/NEWS index b08faff..e167b0b 100644 --- a/NEWS +++ b/NEWS @@ -2234,18 +2234,50 @@ changes in sbcl-0.8.7 relative to sbcl-0.8.6: ** 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 #. 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). - * 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) + * 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. @@ -2254,6 +2286,163 @@ changes in sbcl-0.8.8 relative to sbcl-0.8.7: ** 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 ) for + 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 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 was erroneously + applied to a call of a value of a variable with 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) + * 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 ); 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) + * 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%. + * fixed some bugs revealed by Paul Dietz' test suite: + ** 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. planned incompatible changes in 0.8.x: * (not done yet, but planned:) When the profiling interface settles