X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=01cdabb9f1447fdeea9bd0dcb3610d811b8e55fb;hb=8d021a02be794dee4802e64701bab8a5b1ae3c55;hp=29b376293c08381d2b4857c0235922e23cc42bf2;hpb=d86eaf5880e4f8738e20a739334ef380ec98762a;p=sbcl.git diff --git a/NEWS b/NEWS index 29b3762..01cdabb 100644 --- a/NEWS +++ b/NEWS @@ -1191,6 +1191,13 @@ changes in sbcl-0.7.6 relative to sbcl-0.7.5: is no longer a static symbol.) changes in sbcl-0.7.7 relative to sbcl-0.7.6: + * An alpha-quality port to the parisc architecture running Linux, + based on the old CMUCL backend, has been made. This, even more so + than the other backends, should be considered still a work in + progress; known problems include that the Linux kernel in 64-bit + mode does not propagate the correct sigcontext structure to + userspace, and consequently SBCL on a parisc64 kernel will not + work yet. * fixed bug 189: The compiler now respects NOTINLINE declarations for functions declared in FLET and LABELS. (I.e. "LET conversion" is suppressed.) Also now that the compiler is looking at declarations @@ -1206,6 +1213,9 @@ changes in sbcl-0.7.7 relative to sbcl-0.7.6: SB-KERNEL:CONTROL-STACK-EXHAUSTED condition (subclass of STORAGE-CONDITION) is signalled, so stack exhaustion can no longer be caught using IGNORE-ERRORS. + * Bugs 65, 70, and 109 fixed: The compiler now preserves invariants + correctly when transforming recursive LABELS functions to LETs. + (thanks to Alexey Dejneka) * Bug 48a./b. fixed: SYMBOL-MACROLET now refuses to bind symbols that are names of constants or global variables. * Bug fix: DEFINE-ALIEN-ROUTINE now declaims the correct FTYPE for @@ -1221,11 +1231,179 @@ changes in sbcl-0.7.7 relative to sbcl-0.7.6: LOGAND and stack-allocated arguments. (thanks to Raymond Toy) * Bug fix: We no longer segfault on passing a non-FILE-STREAM stream to a functions expecting a PATHNAME-DESIGNATOR. + * Bug fix: DEFGENERIC now enforces the ANSI restrictions on its + lambda lists. (thanks to Alexey Dejneka) + * Bug fix: changed encoding of PCL's internal MAKE-INSTANCE + functions so that EXPORTing the name of the class doesn't cause + MAKE-INSTANCE functions from earlier DEFCLASSes to get lost (thanks + to Antonio Martinez for reporting this) + * Bug 192 fixed: The internal primitive DATA-VECTOR-REF can now be + constant-folded without failing an assertion. (thanks to Einar + Floystad Dorum for reporting this) + * Bugs 123 and 165 fixed: array specializations on as-yet-undefined + types are now dealt with more correctly by the compiler. * Minor incompatible change: COMPILE-FILE-PATHNAME now merges its OUTPUT-FILE argument with its INPUT-FILE argument, resulting in behaviour analogous to RENAME-FILE. This puts its behaviour more in line with ANSI's wording on COMPILE-FILE-PATHNAME. (thanks to Marco Antinotti) + * The fasl file version number has changed again. (because of the + 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: + * 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. + * 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; + * 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) + * 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) planned incompatible changes in 0.7.x: * When the profiling interface settles down, maybe in 0.7.x, maybe