X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=90b4e1de93834ed20457c2b915fb7921d5e23527;hb=2ef330d818799fe54587bdcb4c626b397ca15266;hp=93dbf0b71eae9cdc8fb26e37124df1a2d1a1216a;hpb=840832c6ca7fae0af981d721bdbb38e567d575cf;p=sbcl.git diff --git a/NEWS b/NEWS index 93dbf0b..90b4e1d 100644 --- a/NEWS +++ b/NEWS @@ -1611,45 +1611,180 @@ 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 removed. 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, +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. - * 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 + * 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) + * 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) + * 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. + ** 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. -planned incompatible changes in 0.7.x: +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 for GNU "make". + +changes in sbcl-0.8.1 relative to sbcl-0.8.0: + * 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. + +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))