X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=386e5dfedfa5a741c691fb3cb71e2465e8ea4909;hb=6a756846fe0fe89835ec5eb68327b612c93f82c4;hp=6496715600925f58d0f0d595eebe1093cd696d45;hpb=caf8bb05a82659e688c125b418783bc8a3bd2be8;p=sbcl.git diff --git a/NEWS b/NEWS index 6496715..386e5df 100644 --- a/NEWS +++ b/NEWS @@ -1436,11 +1436,11 @@ changes in sbcl-0.7.11 relative to sbcl-0.7.10: 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 + * 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. + * 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. @@ -1450,9 +1450,17 @@ changes in sbcl-0.7.11 relative to sbcl-0.7.10: * 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 + * The compiler is now able to derive types more accurately from the COERCE and COMPILE functions. - * fixed some more bugs revealed by Paul Dietz' test suite: + * 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); @@ -1461,6 +1469,9 @@ changes in sbcl-0.7.11 relative to sbcl-0.7.10: 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; @@ -1468,17 +1479,229 @@ changes in sbcl-0.7.11 relative to sbcl-0.7.10: of the slot symbol, rather than using the current package ((:CONC-NAME "") continues to intern the slot's name in the current package); - ** LOOP with a typed iteration variable over a hashtable now - signals a type error iff it should; * 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. - * 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 + +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 a bug related to CONCATENATED-STREAMs: PEEK-CHAR will no + longer signal an error on unreading a character following EOF on + the previous constituent stream. (thanks to Tony Martinez) + * 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; + ** the type system is now cleverer about the interaction between + INTEGER and RATIO types: while bugs still remain, many more + cases are accurately computed; + ** in TYPECASE, OTHERWISE now only introduces an otherwise-clause + if it is in the last clause; + ** CONSTANTLY now correctly returns a side-effect-free function in + all cases; + ** DECLARE is no longer treated as a special-operator; in + particular, SPECIAL-OPERATOR-P no longer returns T for DECLARE; + * incremented fasl file version number due to the change in the + DEFSTRUCT-SLOT-DESCRIPTION structure. + +changes in sbcl-0.7.14 relative to sbcl-0.7.13: + * a better implementation of SXHASH on (simple) bit vectors, + measured both in execution speed and in distribution of results + over the positive fixnums, has been installed. Likewise, a better + implementation of EQUAL for simple bit vectors is now available. + * fixed CEILING optimization for a divisor of form 2^k. + * fixed bug 240 (emitting extra style warnings "using the lexical + binding of the symbol *XXX*" for &OPTIONAL arguments). (reported + by Antonio Martinez) + * fixed SXHASH, giving different results for NIL depending on type + declarations (SYMBOL or LIST). (thanks to Gerd Moellmann) + * fixed bug in DEFPARAMETER and DEFVAR: they could assign a lexical + variable. (found by Rolf Wester) + * SBCL does not ignore type declarations for special + variables. (reported by rif on c.l.l 2003-03-05) + * some bug fixes in contrib/sb-aclrepl/ + * fixed some bugs revealed by Paul Dietz' test suite: + ** a bug in the CONS type specifier, whereby the CAR and CDR + types got intertwined, has been fixed; + ** the type system is now able to reason about the interaction + between INTEGER and RATIO types more completely; + ** APPEND, [N]REVERSE and NRECONC check that those their + arguments, which must be proper lists, are really so; + ** An array specialized to be unable to hold elements has been + implemented, as required -- yes, really -- by ANSI; + ** GETF and GET-PROPERTIES throw a TYPE-ERROR, not a SIMPLE-ERROR, + on malformed property lists; + +changes in sbcl-0.8.0 relative to sbcl-0.7.14 + * The old distinction between CL:CLASS objects and SB-PCL:CLASS + objects has been eliminated. The return value from CL:FIND-CLASS + is now a CLOS class, and likewise that of CL:CLASS-OF; + CL:BUILT-IN-CLASS, CL:STRUCTURE-CLASS and CL:STANDARD-CLASS name + CLOS classes. + * An interface to the MetaObject Protocol, as described in Kiczales, + des Rivieres and Bobrow's "The Art of the Metaobject Protocol", + MIT Press, 1991, is available from the SB-MOP package. + * incompatible change: the SB-PCL package should now be considered a + private implementation detail, and no longer a semi-private MOP + interface. + * minor incompatible change: due to rearrangement for threads, the + control stack and binding stack are now allocated at arbitrary + addresses instead of being hardcoded per-port. Users affected by + this probably have to be doing advanced things with shared + libraries, and will know who they are. + * minor incompatible change: Previously, all --eval forms used were + processed with READ before any of them were processed with EVAL. + Now each --eval form is processed with both READ and EVAL before + the next --eval form is processed. (Thus package operations like + sbcl --eval "(defpackage :foo)" --eval "(print 'foo::bar)" now work + as the user might reasonably expect.) + * minor incompatible change: *STANDARD-INPUT* is now only an + INPUT-STREAM, not a BIDIRECTIONAL-STREAM. (thanks to Antonio + Martinez) + * minor incompatible change: Y-OR-N-P is now character-oriented, not + line oriented. Also, YES-OR-NO-P now works without errors. + (thanks to Antonio Martinez) + * known functions, which cannot be open coded by backend, are + considered to be able to check types of their arguments. + (reported by Nathan J. Froyd) + * fixed a bug in computing method discriminating functions: it is + now possible to define methods specialized on classes which have + forward-referenced superclasses. (thanks to Gerd Moellmann) + * fixed evaluation order in optional entries. (reported by Gilbert + Baumann) + * SB-MOP:ENSURE-CLASS-USING-CLASS now takes its arguments in the + specified-by-AMOP order of (CLASS NAME &REST ARGS &KEY). + * SB-MOP:COMPUTE-EFFECTIVE-SLOT-DEFINITION now takes the + required-by-AMOP NAME argument, as well as CLASS and + DIRECT-SLOT-DEFINITIONS. (thanks to Kevin Rosenberg) + * fixed bug 20: DEFMETHOD can define methods using names that are + not the proper names of classes to designate class specializers. + * bug fix: INTERACTIVE-STREAM-P now works on streams associated with + Unix file descriptors, instead of blowing up. (thanks to Antonio + Martinez) + * Experimental native threads support, on x86 Linux. This is not + compiled in by default: you need to add :SB-THREAD to the target + features. See the "Beyond ANSI" chapter of the manual for + details. + * Garbage collection refactoring: user-visible change is that a + call to the GC function during WITHOUT-GCING will not do garbage + collection until the end of the WITHOUT-GCING. If you were doing + this you were probably losing anyway. + * sb-aclrepl module improvements: an integrated inspector, added + repl features, and a bug fix to :trace command. + * fixed bug in MEMBER type: (MEMBER 0.0) is not the same as + (SINGLE-FLOAT 0.0 0.0), because of the existence of -0.0 which is + TYPEP the latter but not the former. + * compiler issues a full WARNING on calling of an undefined function + with a name from the CL package. + * MAP-INTO for a vector destination is open coded. (reported by + Brian Downing on c.l.l) + * fixed some bugs revealed by Paul Dietz' test suite: + ** COPY-ALIST now signals an error if its argument is a dotted + list; + ** condition slots are now accessed more correctly in the presence + of multiple initargs for a given slot; + ** the USE-VALUE, CONTINUE and STORE-VALUE functions now correctly + exclude restarts of the same name associated with a different + condition; + ** DEFCLASS of forward-referenced classes with another + forward-referenced class in the superclasses list no longer + causes an error; + ** condition slots are now initialized once each, not multiple + times; (thanks to Gerd Moellmann) + ** CONVERT-MORE-CALL failed on a lambda list (&KEY); (thanks to + Gerd Moellmann) + ** &WHOLE and &REST arguments in macro lambda lists are patterns; + ** NSET-EXCLUSIVE-OR does not return extra elements when its + arguments contain duplicated elements; + ** RESTART-CASE understands local macros; + ** ... and associates exactly its own restarts with a condition; + ** ENDP in safe mode checks its argument to be of type LIST; + ** COPY-SYMBOL in a threaded build no longer fails when the symbol + in question is unbound; + ** optimized MAKE-INSTANCE functions no longer cause internal + assertion failures in the presence of duplicate initargs; -planned incompatible changes in 0.7.x: +planned incompatible changes in 0.8.x: * (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