X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=98e599164730218800a96f1881eed87b29f93746;hb=6f20436c86e66946ae1d2d3f4aef409c9845536b;hp=bb57798c14735150da4b17a11b76a5feed2d3534;hpb=96de323a7da5d9f72473b48625dcb6d084ec0a3b;p=sbcl.git diff --git a/NEWS b/NEWS index bb57798..98e5991 100644 --- a/NEWS +++ b/NEWS @@ -1611,17 +1611,21 @@ changes in sbcl-0.7.14 relative to sbcl-0.7.13: ** 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. +changes in sbcl-0.8alpha.0 relative to sbcl-0.7.14 + * experimental native threads support (on x86 Linux >=2.4 only). + 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. + * fix for longstanding nonANSIism: 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 + * 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 @@ -1632,55 +1636,212 @@ changes in sbcl-0.8.0 relative to sbcl-0.7.14 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.) + 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 + 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. + * 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 + * sb-aclrepl module improvements: an integrated inspector, added + repl features, and a bug fix to :trace command. + * Known functions, which cannot be open coded by the backend, are + considered to be able to check types of their arguments. (fixing + a bug report 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 + 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. - * sb-aclrepl module improvements: an integrated inspector, added - repl features, and a bug fix to :trace command. + * 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. + * 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. + * The compiler issues a full WARNING for calls to undefined functions + with names from the CL package. + * MAP-INTO for a vector destination is open coded. (reported by + Brian Downing on c.l.l) + * bug fix: the long form of DEFINE-METHOD-COMBINATION now accepts a + documentation string. * 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 + 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; + condition. ** DEFCLASS of forward-referenced classes with another forward-referenced class in the superclasses list no longer - causes an error; + 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. + ** RESTART-CASE 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. + ** SLOT-MAKUNBOUND returns the instance acted upon, not NIL. + ** Side-effectful :DEFAULT-INITARGS have their side-effects + propagated even in the ctor optimized implementation of + MAKE-INSTANCE. + ** :ALLOW-OTHER-KEYS NIL is now accepted in an initarg list. + +changes in sbcl-0.8.0 relative to sbcl-0.8alpha.0 + * SBCL now builds using CLISP (version of late April 2003 from CVS) as + cross-compilation host. As a consequence, we can now bootstrap our + way up to SBCL starting with a bare gcc toolchain and human-readable + source code (first the source to CLISP, then the source to SBCL). + * A contributed module containing a partial implementation of the + simple-streams interface has been included. (thanks to Rudi + Schlatte) + * A contributed module implementing the RFC1321 Message Digest + Algorithm, known as MD5, has been included. + * minor incompatible change: The :NEGATIVE-ZERO-IS-NOT-ZERO feature + no longer has any effect, as the code controlled by this feature + has been deleted. (As far as we know, no-one has ever built using + this feature, and its semantics were confused in any case). + * minor incompatible change: As a consequence of making SLOT-EXISTS-P + work on conditions (as required by the ANSI specification), + SLOT-VALUE, (SETF SLOT-VALUE) and SLOT-BOUNDP likewise have the + expected behaviour on conditions. Users should note, however, + that such behaviour is not required by the ANSI specification, + and so use of this behaviour may render their code unportable. + * fixed some bugs revealed by Paul Dietz' test suite: + ** the GENERIC-FUNCTION type is no longer disjoint from FUNCTION + types. + ** &ENVIRONMENT parameter in macro lambda list is bound first. + ** SXHASH on condition objects no longer returns NIL. + ** :ALLOCATION :CLASS slots are better treated; their values are + updated on class redefinition, and initforms inherited from + superclasses are applied. + ** REMOVE-METHOD returns its generic function argument even when + no method was removed. + ** SHARED-INITIALIZE now initializes the values of the requested + slots, including those with :ALLOCATION :CLASS. + ** ALLOCATE-INSTANCE now works on structure classes defined via + DEFSTRUCT (and not just by those from DEFCLASS :METACLASS + STRUCTURE-CLASS). + ** SLOT-EXISTS-P now works on conditions, as well as structures + and CLOS instances. + ** MAKE-LOAD-FORM now has the required methods on + STRUCTURE-OBJECT, CONDITION and STANDARD-OBJECT. + ** MAKE-LOAD-FORM-SAVING-SLOTS no longer returns a special + keyword, and now implements the SLOT-NAMES argument. + ** methods with &OPTIONAL arguments no longer allow too many + arguments to be passed in the call without error. + ** DEFGENERIC now checks that the :ARGUMENT-PRECEDENCE-ORDER + option is consistent with the required arguments of the generic + function lambda list. + * bug fix: REQUIRE accepts a string designator. (Thanks to + Antonio Martinez.) + * bug fix: SB-MOP:DIRECT-SLOT-DEFINITION-CLASS and + SB-MOP:EFFECTIVE-SLOT-DEFINITION-CLASS now have the + specified-by-AMOP lambda list of (CLASS &REST INITARGS). + * bug fix: The compiler now checks for duplicated variables in macro + lambda lists. + * bug fix: SETQ on globals returns the correct value. + * fixed bug 47.d: (DEFGENERIC IF (X)) now signals a PROGRAM-ERROR, + not a COMPILER-ERROR (followed by some other strange error on + choosing the CONTINUE restart). + * bug fix: make.sh and friends are now more consistent in the way that + they look for GNU "make". + +changes in sbcl-0.8.1 relative to sbcl-0.8.0: + * minor incompatible change: some nonsensical specialized lambda + lists (used in DEFMETHOD) which were previously ignored now signal + errors. + * minor incompatible change: the system is now aware of the types of + variables in the COMMON-LISP package, and will signal errors for + most violations of these type constraints (where previously they + were silently accepted). + * minor incompatible change: COMPILE-FILE now uses the freedom + afforded (ANSI 3.2.2.3) to use derived function types for + functions defined in the same file. This also permits the system + to warn on static type mismatches and function redefinition. + * changes in type checking closed the following bugs: + ** type checking of unused values (192b, 194d, 203); + ** template selection based on unsafe type assertions (192c, 236); + ** type checking in branches (194bc). + * VALUES declaration is disabled. + * a short form of VALUES type specifier has ANSI meaning. + * fixed bug in DEFSTRUCT: once again, naming structure slots with + keywords or constants is permissible. + * STREAM-READ-SEQUENCE and STREAM-WRITE-SEQUENCE now have methods + defined on the relevant FUNDAMENTAL-BINARY-{INPUT,OUTPUT}-STREAM + classes. (thanks to Antonio Martinez) + * improved ANSIness in DESCRIBE: The DESCRIBE function no longer + outputs FRESH-LINE or TERPRI, and no longer converts its stream + argument to a pretty-print stream. Instead, it leaves any such + operations to DESCRIBE-OBJECT methods. + * bug fix: APROPOS now respects the EXTERNAL-ONLY flag. (reported + by Teemu Kalvas) + * bug fix: NIL is now a valid destructuring argument in DEFMACRO + lambda lists. (thanks to David Lichteblau) + * bug fix: defining a generic function with a :METHOD-CLASS being a + subclass of STANDARD-METHOD no longer causes stack exhaustion. + (thanks to Gerd Moellmann) + * increased compilation speed of long MULTIPLE-VALUES-BIND. + * a contributed module implementing COMPILER-LET and MACROEXPAND-ALL + has been included. + * DEFCONSTANT now throws a condition of type + SB-EXT:DEFCONSTANT-UNEQL if it is being asked to redefine a + constant to a non-EQL value; CONTINUE and ABORT restarts + respectively change and preserve the value. + * fixed bug 63: the code walker, part of the implementation of CLOS, + is better at handling symbol macros. + * bug fix: there is no longer a type named LENGTH. (reported by + Raymond Toy) + * fixed some bugs revealed by Paul Dietz' test suite: + ** NIL is now allowed as a structure slot name. + ** arbitrary numbers, not just reals, are allowed in certain + circumstances in LOOP for-as-arithmetic clauses. + ** multiple class redefinitions before slot access no longer + causes a type error. + ** (SETF FIND-CLASS) now accepts NIL as an argument to remove the + association between the name and a class. + ** generic functions with non-standard method-combination and over + six methods all of which return constants no longer return NIL + after the first few invocations. (thanks to Gerd Moellmann) + ** CALL-NEXT-METHOD with no arguments now passes the original + values of the arguments, even in the presence of assignment. + ** functions [N]SUBST*, LAST, NRECONC, [N]SUBLIS may return any + object. + ** DISASSEMBLE works with closures and funcallable instances. + ** ADD-METHOD now returns the generic function, not the new + method. + ** FIND-METHOD signals an error if the lengths of the specializers + is incompatible with the generic function, even if the ERRORP + argument is true. 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 - 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.) + down, 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))