X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=1ea3f0ea6662d748d5ad76cc6b47c1fead739721;hb=fb9c34275389e23f32d80954ab4848fac48936d9;hp=df18876db0d851591c285a38f8699b030316d425;hpb=4b57a4917b61299ac074fa385e9a0c62a716655b;p=sbcl.git diff --git a/NEWS b/NEWS index df18876..1ea3f0e 100644 --- a/NEWS +++ b/NEWS @@ -2108,11 +2108,30 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3: data structures referred to above). changes in sbcl-0.8.5 relative to sbcl-0.8.4: - * in full calls compiler does not generate checks for declared + * New code in contrib/sb-introspect (still probably not entirely + stable yet) provides some support for smart Lisp development + environments like SLIME. + * The conditions signalled for errors occurring when loading .fasl + files have been systematized (inheriting from SB-EXT:INVALID-FASL) + in a way which should help ASDF recover gracefully. + * The REQUIRE/PROVIDE behavior of *MODULE-PROVIDER-FUNCTIONS* + stuff has been cleaned up. If you code contrib/ stuff, this might + affect you, and you can look at contrib/README, contrib/STANDARDS, + and/or the 0.8.4.27 diff to check. + * In full calls the compiler now does not generate checks for declared argument types for all arguments. - * fix bug 282: compiler does not trust type assertions while passing + * various threading fixes + ** and some experimental patches which didn't make it into + the main tree for this release, but which are shipped in + contrib/experimental-thread.patch as a possible fix for some + failures (deadlock, spinning...) in GC-intensive multithreaded + applications. + * fixed PPC build problem (source code incompatibility of different + library versions): added offsetof() hackery which attempts to divine + where glibc maintainers put uc_mcontext today + * fixed bug 282: compiler does not trust type assertions while passing arguments to a full call. - * fix bug 261: compiler allows NIL or "no value" to be accepted for + * fixed bug 261: compiler allows NIL or "no value" to be accepted for &OPTIONAL VALUES type parameter. * fix bug 214: algorithm for noting rejected templates is now more similar to that of template seletion. (also reported by rydis on @@ -2129,13 +2148,15 @@ changes in sbcl-0.8.5 relative to sbcl-0.8.4: * bug fix: LOOP forms using NIL as a for-as-arithmetic counter no longer raise an error; further, using a list as a for-as-arithmetic counter now raises a meaningful error. + * fixed bug 213a: even fairly unreasonable CONS type specifiers are + now understood by sequence creation functions such as MAKE-SEQUENCE + and COERCE. + * fixed bug 46k: READ-BYTE now signals an error when asked to read from + a STRING-INPUT-STREAM. * compiler enhancement: SIGNUM is now better able to derive the type of its result. * type declarations inside WITH-SLOTS are checked. (reported by salex on #lisp) - * loading incompatible FASLs, e.g. those produced by an incompatible - lisp implementation, cause a condition of type SB-EXT:INVALID-FASL - (a subtype of ERROR) to be raised. * fixed some bugs revealed by Paul Dietz' test suite: ** incorrect optimization of TRUNCATE for a positive first argument and negative second. @@ -2147,6 +2168,247 @@ changes in sbcl-0.8.5 relative to sbcl-0.8.4: ** intersection of CONS types now canonicalizes properly, fixing inconsistencies in SUBTYPEP. +changes in sbcl-0.8.6 relative to sbcl-0.8.5: + * fixed a bootstrapping bug: the build process no longer assumes + that the various BOOLE-related constants have the same value in + host and target lisps. (noted by Paul Dietz' test suite on an + SBCL binary built from CLISP) + * The system can now be dynamically linked on the MIPS platform, + which enables dynamic loading of foreign code from Lisp. (thanks + to Ralf Baechle for discussions on the MIPS ABI) + * The system now records debugging information for its own source + files in a filesystem-position-independent manner, relative to + the "SYS" logical host. + * fixed a compiler bug: MV-LET convertion did not check references + to the "max args" entry point. (reported by Brian Downing) + * tweaked disassembly notes to be less confident about proclaiming + some instruction as an LRA. (thanks to Brian Downing) + * contrib update: SB-ACLREPL is now threadsafe; multiple listeners + now each have their own history, command character, and other + characteristics. (thanks to David Lichteblau) + * fixed some bugs revealed by Paul Dietz' test suite: + ** compiler failure in compiling LOGAND expressions including a + constant 0 + ** Implementation of ASH-MOD32 on X86 and PPC did not work for the + shift greater than 32. + ** FLUSH-DEST did not mark blocks for type check regeneration. + ** HANDLER-CASE failed to accept declarations in handler clauses + in some circumstances. + +changes in sbcl-0.8.7 relative to sbcl-0.8.6: + * When built with the :SB-FUTEX feature, threaded builds now take + advantage of the "fast userspace mutex" facility in Linux kernel 2.6 + for faster/more reliable mutex and condition variable support. + * Incompatible change (but one you probably shouldn't have been using + anyway): the interface and code for arbitrating between multiple + threads in the same user session has been redesigned. + * bug fix: GET-SETF-EXPANSION no longer throws an internal type + error when called without an explicit environment argument. + (thanks to Nikodemus Siivola) + * bug fix: buffered :DIRECTION :IO streams are less likely to become + confused about their position. (thanks to Adam Warner and Gerd + Moellmann) + * bug fix: Pretty printing backquoted forms with unquotations in the + argument list position of various code constructs such as LAMBDA + now works correctly. (reported by Paul Dietz) + * bug fix: Pretty printing unquotations no longer loses all + stream position information. + * optimization: performance of string output streams is now less + poor for multiple small sequence writes. + * optimization: performance of CSUBTYPEP in the presence of complex + expressions involving CONS and NOT many times has been improved. + (reported by Paul Dietz) + * ASDF-INSTALL bug fix: now parses *PROXY* properly. (thanks to + Sean Ross) + * SB-SIMPLE-STREAMS enhancement: simple-streams can now be used as + streams for the REPL, for the debugger, and so on. (thanks to + David Licteblau) + * DEFINE-CODITION is more efficient. (thanks to Brian Mastenbrook) + * fixed some bugs revealed by Paul Dietz' test suite: + ** the value of the :REHASH-THRESHOLD argument to MAKE-HASH-TABLE + is ignored if it is too small, rather than propagating through + to cause DIVIDE-BY-ZERO or FLOATING-POINT-OVERFLOW errors. + ** extremely complex negations of CONS types were not being + sufficiently canonicalized, leading to inconsistencies in + 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 #. 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 ) 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 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) + 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