X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=f3a9e43d9c069d4d0c1aa655b10b07dff7a08be8;hb=2217cdb364e8b48c187b085895bb2a5cbdbd9622;hp=593c4a9c65e4bfdea1bb156baada991c01723e2d;hpb=bf4aee82dd12d132a82fa39355d66f2ac67c8fc5;p=sbcl.git diff --git a/NEWS b/NEWS index 593c4a9..f3a9e43 100644 --- a/NEWS +++ b/NEWS @@ -1251,23 +1251,338 @@ changes in sbcl-0.7.7 relative to sbcl-0.7.6: bug fix involving the names of PCL MAKE-INSTANCE functions) changes in sbcl-0.7.8 relative to sbcl-0.7.7: + * A beta-quality port to the mips architecture running Linux, + based on the old CMUCL backend, has been made. It has been tested + on a big-endian kernel, and works sufficiently well to be able to + rebuild itself; it has not been tested in little-endian mode. + * fixed an inconsistency between gencgc.c and purify.c which made + dumping/loading .core files unreliable * fixed bug 120a: The compiler now deals correctly with IFs where the consequent is the same as the alternative, instead of misderiving the return type. (thanks to Alexey Dejneka) + * fixed bug 113: Logical pathnames are now dumpable (the logical + host is resolved at load-time, throwing an error if it is not + found). + * fixed bug 174: FORMAT's error message is slightly clearer when a + non-printing character is used in a format directive. + * fixed several bugs in compiler checking of type declarations, i.e. + violations of the Python "declarations are assertions" principle + (thanks to Alexey Dejneka) + * fixed several bugs in PCL's error checking (thanks to Gerd + Moellmann) + * fixed bug: printing of FILE-ERROR (thanks to Antonio + Martinez-Shotton) + * fixed bug in compilation of functions as first class values + (thanks to Antonio Martinez-Shotton) + * The compiler's handling TYPE-ERRORs which it can prove will + inevitably happen at runtime has been cleaned up and corrected + in several ways. (thanks to Alexey Dejneka) + * improved argument type checking for various basic arithmetic + operations (MAX, +, LOGXOR, etc.) which have had so much TLC + lavished on them in the past that they can be compiled in many + ways in different special cases + * fixed bug 181: compiler checks validity of user supplied type + specifiers + * cleaned up code flushing in optimization: Function calls which + should signal errors for safety purposes (e.g. which ANSI says + should signal errors when their arguments are of incorrect type) + are no longer optimized away. + * added new extension: SB-DEBUG:BACKTRACE-AS-LIST + * incremented fasl file version number, because changes in the + implementation of sequence functions like COERCE caused + internal utility functions like COERCE-TO-SIMPLE-VECTOR (used + in old inline expansions) to become undefined. (Actually these + changes were later undone, so we might very well be binary + compatible with 0.7.7 after all, but leaving the version number + incremented seemed like the simplest and most conservative + thing to do.) + +changes in sbcl-0.7.9 relative to sbcl-0.7.8: + * minor incompatible change: The runtime (the Unix executable named + "sbcl") is now much pickier about the .core files it will load. + Essentially it now requires .core files to descend from the same + build (not just the same sources or LISP-IMPLEMENTATION-VERSION) + as the runtime does. (The intent is to prevent the crashes which + can occur, and which can even be reported as mysterious failures, + when people patch the sources or change the build parameters + without changing LISP-IMPLEMENTATION-VERSION, then mix and match + sbcl and .core files.) + * fixed bug: VALUES-LIST is no longer optimized away. + * fixed bug 142: The FFI conversion of C string values to Lisp + string values no longer conses excessively. (thanks to Nathan + Froyd porting Raymond Toy's fix to CMU CL) + * began to systematize and improve MOP conformance in PCL (thanks to + Nathan Froyd, Gerd Moellman and Pierre Mai): + ** SLOT-DEFINITION-ALLOCATION now returns :CLASS, not the class + itself; + ** GENERIC-FUNCTION-ARGUMENT-PRECEDENCE-ORDER is now implemented; + ** FINALIZE-INHERITANCE is now called on class finalization; + ** DOCUMENTATION and (SETF DOCUMENTATION) now have the correct + argument precedence order. + * fixed bug 202: The compiler no longer fails on functions whose + derived types contradict their declared type. + * DEFMACRO is implemented via EVAL-WHEN instead of IR1 translation, + so it can be non-toplevel. + * The fasl file version number has changed (because of the new + implementation of DEFMACRO). + * (mostly) fixed bugs 46b and 46c: sequence functions now check, in + safe code, that any length requirement by their type-specifier + argument is valid. The exceptions to this are described in bug + 213. + * fixed bugs 46h and 46i: TWO-WAY- and CONCATENATED-STREAM creation + functions now check the types of their inputs as required by ANSI. + * fixed bug 48c: SYMBOL-MACROLET signals PROGRAM-ERROR when an + introduced symbol is DECLAREd to be SPECIAL. + * fixed reading of (COMPLEX DOUBLE-FLOAT) literals from fasl files + * fixed bug: :COUNT argument to sequence functions may be negative + * fixed bug: body of DO-SYMBOLS may contain declarations + * fixed bug: PUSHNEW now evaluates its arguments from left to right + (reported by Paul F. Dietz, fixed by Gerd Moellman) + * fixed bug: PUSH, PUSHNEW and POP now evaluate a place given by a + symbol macro only once + * fixed printing of call frame when argument list is unavailable + * fixed bug: :ALLOW-OTHER-KEYS is an allowed keyword name + * compiler no longer signals WARNING on unknown keyword + :ALLOW-OTHER-KEYS + +changes in sbcl-0.7.10 relative to sbcl-0.7.9: + * Support for building SBCL for MIPS platforms running in + little-endian mode has now been checked in, and basic + functionality on said platforms verified. + * minor incompatible change: PCL now records the pathname of a file + in which methods and the like are defined, rather than its + truename. + * minor incompatible change: TRUENAME now considers the truename of + a file naming a directory to be the pathname with :DIRECTORY + component indicating that directory. + * minor incompatible change: a NAMED clause in the extended form of + LOOP no longer causes a BLOCK named NIL to surround the LOOP. The + reason for the previous behaviour is unclear. + * more systematization and improvement of CLOS and MOP conformance + in PCL (thanks to Gerd Moellman and Pierre Mai): + ** the standard ANSI CL generic function NO-NEXT-METHOD is now + implemented; + ** DEFINE-METHOD-COMBINATION no longer signals an error for + primary methods with no specializers; + ** the MOP generic function GENERIC-FUNCTION-DECLARATIONS is now + implemented; + ** the Readers for Class Metaobjects methods CLASS-DIRECT-SLOTS + and CLASS-DIRECT-DEFAULT-INITARGS have been implemented for + FORWARD-REFERENCED-CLASSes; error reporting on + CLASS-DEFAULT-INITARGS, CLASS-PRECEDENCE-LIST and CLASS-SLOTS + has been improved; + ** SXHASH on CLOS instances now uses a slot internal to the + instance to return different numbers on distinct instances, + while preserving the same return value through invocations of + CHANGE-CLASS; + ** DEFMETHOD signals errors when methods with longer incongruent + lambda lists are added to generic functions; + ** COMPUTE-CLASS-PRECEDENCE-LIST now has a method specialized on + CLASS, as specified in AMOP; + ** COMPUTE-SLOTS :AROUND now assigns locations sequentially based + on the order returned by the primary method for classes of + class STANDARD-CLASS; + ** DEFINE-METHOD-COMBINATION now works with the :ARGUMENTS option. + * fixed some bugs shown by Paul Dietz' test suite: + ** DOLIST puts its body in TAGBODY; + ** SET-EXCLUSIVE-OR sends arguments to :TEST function in the + correct order; + ** MULTIPLE-VALUE-SETQ evaluates side-effectful places before + value producing form; + ** if more variables are given to PROGV than values, extra + variables are bound and made to have no value; + ** NSUBSTITUTE on list arguments gets the right answer with + :FROM-END; + ** ELT signals an error of type TYPE-ERROR when the index argument + is not a valid sequence index; + ** LOOP signals (at macroexpansion time) an error of type + PROGRAM-ERROR when duplicate variable names are found; + ** LOOP supports DOWNTO and ABOVE properly; (thanks to Matthew Danish) + ** FUNCALL of special-operators now cause an error of type + UNDEFINED-FUNCTION; + ** PSETQ now works as required in the presence of side-effecting + symbol-macro places; + ** NCONC accepts any object as its last argument; + ** :COUNT argument to sequence functions may be BIGNUM; (thanks to + Gerd Moellman) + ** loop-for-as-package does not require a package to be explicitely + specified; + ** LOOP WITH now treats NIL in the d-var-spec correctly as an + ignored binding. + * fixed bug 166: compiler preserves "there is a way to go" + invariant when deleting code. + * fixed bug 172: macro lambda lists with required arguments after + &REST arguments now cause an error to be signalled. (thanks to + Matthew Danish) + * fixed Entomotomy PEEK-CHAR-WRONGLY-ECHOS-TO-ECHO-STREAM + bug. (thanks to Matthew Danish) + * fixed bug 225: STRING-STREAM is now a class. (reported by Gilbert + Baumann) + * fixed bug 136: CALL-NEXT-METHOD no longer gets confused when + arguments are lexically rebound. (thanks to Gerd Moellmann and + Pierre Mai) + * fixed bug 194: error messages are now more informative when there + is no primary method applicable in a call to a generic + function. (thanks to Gerd Moellmann) + * fixed bug in command line argument checking (thanks to Julian + Fondren) + * fixed bug in COUNT-IF, making it handle :FROM-END correctly + (thanks to Matthew Danish) + * incremented fasl file version number, because of the + SXHASH-related changes in the layout of CLOS data structures + +changes in sbcl-0.7.11 relative to sbcl-0.7.10: + * fixed bug 127: DEFSTRUCT now does not clobber old structure + accessors that are related by inheritance, as specified in the + :CONC-NAME section of the specification of DEFSTRUCT. (thanks to + Valtteri Vuorikoski) + * The compiler is now able to inline functions that were defined in + a complex lexical environment (e.g. inside a MACROLET). + * fixed bug in DESCRIBE, which now works on rank-0 arrays. (thanks + to Lutz Euler) + * Support for the upcoming FreeBSD-5.0 release has been included. + (thanks to Dag-Erling Smorgrav) + * fixed bug 219: DEFINE-COMPILER-MACRO no longer has compile-time + effect when it is not in a toplevel context. + * fixed bug 222: DEFMETHOD and SYMBOL-MACROLET interactions now + stand a better chance of being correct. (thanks to Gerd + Moellmann) + * fixed bug in COERCE, which now signals an error on coercing a + rational to a bounded real type which excludes the expected + answer. + * The compiler is now able to derive types more accurately from the + COERCE and COMPILE functions. + * fixed bug 223: functional binding is considered to be constant + only for symbols in the CL package. + * fixed bug 231: SETQ did not check the type of a variable being set + (reported by Robert E. Brown) + * A new optimization for MAKE-INSTANCE has been included, fixing + various bugs (including relating to :ALLOCATION :CLASS slots and + :DEFAULT-INITARGS over-eager evalueation). (thanks to Gerd + Moellmann) + * fixed some LOOP bugs revealed by Paul Dietz' test suite: + ** As required by ANSI, LOOP now disallows anonymous collection + clauses such as COLLECT I in conjunction with aggregate boolean + clauses such as THEREIS (= I 1); + ** LOOP now signals an error when any variable is reused in the + same loop (including the potentially useful construct analogous + to WITH A = 1 WITH A = (1+ A); + ** IT is only a special loop symbol within the first clause of a + conditional loop clause; + ** LOOP with a typed iteration variable over a hashtable now + signals a type error iff it should. + * fixed some other bugs revealed by Paul Dietz' test suite: + ** FILE-STREAM now names the class previously known as FD-STREAM; + ** in DEFSTRUCT, a bare :CONC-NAME (or a :CONC-NAME with no + argument) no longer signals an error; + ** likewise in DEFSTRUCT, :CONC-NAME NIL now respects the package + of the slot symbol, rather than using the current package + ((:CONC-NAME "") continues to intern the slot's name in the + current package); + * incremented fasl file version number, because of the incompatible + change to the DEFSTRUCT-DESCRIPTION structure, and again because + of the new implementation of DEFINE-COMPILER-MACRO. + +changes in sbcl-0.7.12 relative to sbcl-0.7.11: + * minor incompatible change: code processed by the "interpreter" or + EVAL now has a compilation optimization policy of (DEBUG 2) + (changed from (DEBUG 1)) to improve debuggability of interactive + development, and to allow the use of the debug RETURN command in + such code. + * an experimental implementation of the RETURN command for the + debugger has been included. (thanks to Frederik Kuivinen) + * fixed bug 62: constraints were not propagated into a loop. + * fixed bug in embedded calls of SORT (reported and investigated by + Wolfgang Jenkner). + * fixed some bugs revealed by Paul Dietz' test suite: + ** printing and reading of arrays with some dimensions having + length 0 (thanks to Gerd Moellmann); + ** BOA constructor with &AUX argument without a default value does + not cause a type error; + ** CONSTANTP now returns true for all self-evaluating objects. + +changes in sbcl-0.7.13 relative to sbcl-0.7.12: + * incompatible packaging change: in line with Unix convention, + SBCL now looks for its core file in /usr/{local/,}lib/sbcl/sbcl.core + if it's not in $SBCL_HOME. It also sets SBCL_HOME to match. + * REQUIRE and PROVIDE are now optionally capable of doing something + useful: see the documentation string for REQUIRE + * infrastructure for a managed SBCL contrib system: contributed + modules in this release include: + ** the ASDF system definition facility; + ** an interface to the BSD Sockets API; + ** an ACL-like convenience interface to the repl; + (thanks to Kevin Rosenberg) + ** an implementation of ROTATE-BYTE, with efficient implementation + on x86 hardware; + * fixed a bug in LOG, so that LOG of a rational argument near 1 now + gives a closer approximation to the right answer than previously. + (thanks to Raymond Toy) + * fixed bug 157: TYPEP, SUBTYPEP, UPGRADED-ARRAY-ELEMENT-TYPE and + UPGRADED-COMPLEX-PART-TYPE now take (ignored, in all situations) + optional environment arguments, as required by ANSI. + * fixed bugs in other functions taking environment objects, allowing + calls with an explicit NIL environment argument to be compiled + without error. + * fixed bug 228: primary return values from + FUNCTION-LAMBDA-EXPRESSION are either NIL or suitable for input to + COMPILE or FUNCTION. + * fixed a bug in DEFSTRUCT: predicates for :NAMED structures with + :TYPE will no longer signal errors on innocuous objects. + * fixed bug 231b: SETQ is better at respecting type declarations in + the lexical environment. + * fixed a bug in DEFCLASS: classes named by symbols with no or + unprintable packages can now be defined. + * fixed a bug in RESTART-BIND: The :TEST-FUNCTION option had been + carelessly renamed to :TEST-FUN. (thanks to Robert E. Brown) + * fixed compiler failure related to checking types of functions. + (reported by Robert E. Brown) + * the compiler is now much more consistent in its error-checking + treatment of bounding index arguments to sequence functions: in + (SAFETY 3) code, errors will be signalled in almost all cases if + invalid sequence bounding indices are passed to functions defined + by ANSI to operate on sequences. + * fixed a bug in the build procedure: documentation of SBCL-specific + packages is now preserved and available in the final Lisp image. + * lifted FDEFINITION lookup out of loops in the implementation of + many list operations. (thanks to Robert E. Brown) + * fixed a bug in the reader: the #n# reader macro now works for + objects of type STANDARD-OBJECT. (reported by Tony Martinez) + * the compiler is now aware that SYMBOL-FUNCTION returns a FUNCTION + and that READ-DELIMITED-LIST returns a LIST. (thanks to Robert + E. Brown and Tony Martinez respectively) + * PCL is now smarter about SLOT-VALUE, (SETF SLOT-VALUE) and + SLOT-BOUNDP: in particular, it is now able to optimize them much + better, and is now not vulnerable to having packages renamed. + Furthermore, a compliance bug has been fixed: SLOT-MISSING is now + always called when a slot is not present in an instance. (thanks + to Gerd Moellmann) + * fixed some bugs revealed by Paul Dietz' test suite: + ** ARRAY-IN-BOUNDS-P now allows arbitrary integers as arguments, + not just nonnegative fixnums; + ** the logical bit-array operators such as BIT-AND now accept an + explicit NIL for their "opt-arg" argument (to indicate a + freshly-consed result bit-array); + ** ELT now signals an error on an invalid sequence index in safe + code; + ** the type system is now cleverer about negations of numeric + types, and consequently understands the BIGNUM and RATIO types + better; planned incompatible changes in 0.7.x: -* When the profiling interface settles down, maybe in 0.7.x, maybe - later, it might impact TRACE. They both encapsulate functions, and - it's not clear yet how e.g. UNPROFILE will interact with TRACE - and UNTRACE. (This shouldn't matter, though, unless you are - using profiling. If you never profile anything, TRACE should - continue to behave as before.) -* Inlining can now be controlled the ANSI way, without - MAYBE-INLINE, since the idiom + * (not done yet, but planned:) When the profiling interface settles + down, maybe in 0.7.x, maybe later, it might impact TRACE. They both + encapsulate functions, and it's not clear yet how e.g. UNPROFILE + will interact with TRACE + and UNTRACE. (This shouldn't matter, though, unless you are + using profiling. If you never profile anything, TRACE should + continue to behave as before.) + * (not done yet, but planned:) Inlining can now be controlled the + ANSI way, without MAYBE-INLINE, since the idiom (DECLAIM (INLINE FOO)) (DEFUN FOO (..) ..) (DECLAIM (NOTINLINE FOO)) (DEFUN BAR (..) (FOO ..)) (DEFUN BLETCH (..) (DECLARE (INLINE FOO)) (FOO ..)) - now does what ANSI says it should. The CMU-CL-style - SB-EXT:MAYBE-INLINE declaration is now deprecated and ignored. + now does what ANSI says it should. The CMU-CL-style + SB-EXT:MAYBE-INLINE declaration is now deprecated and ignored.