X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=NEWS;h=dfe6b169cc62e7b3466566523560ac13cdd4614d;hb=2b596efa9a6b08a22bbdcdf88198c5d2af1d0335;hp=b6b2ec16a9e31e897e84ac7365cbf0ddb0286356;hpb=22b8c6a91a89d0710db10e88f76ce0f2a245905d;p=sbcl.git diff --git a/NEWS b/NEWS index b6b2ec1..45ccbdf 100644 --- a/NEWS +++ b/NEWS @@ -1502,6 +1502,19 @@ changes in sbcl-0.7.12 relative to sbcl-0.7.11: ** 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) @@ -1535,6 +1548,18 @@ changes in sbcl-0.7.13 relative to sbcl-0.7.12: 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; @@ -1543,15 +1568,469 @@ changes in sbcl-0.7.13 relative to sbcl-0.7.12: 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. -planned incompatible changes in 0.7.x: +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.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 + 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) + * 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 + 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 + 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. + ** 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. (Currently it does not work with high DEBUG level.) + * minor incompatible change: VALUES declaration is disabled. + * When issuing notes, the compiler now signals a condition of type + SB-EXT:COMPILER-NOTE, and provides an associated MUFFLE-WARNING + restart for use in user handlers. It is expected that the + COMPILER-NOTE condition will eventually become a condition + supertype to a hierarchy of note types, which will then be + handleable in a similar fashion. However, at the moment, no such + note subtypes yet exist. (SB-INT:SIMPLE-COMPILER-NOTE exists, + but it's an implementation detail, not a classification for the + purpose above.) + * 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). + * A short form of VALUES type specifier has ANSI meaning (it has + increased the number of situations when SBCL cannot perform type + checking). + * 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) + * fixed bug 246: increased compilation speed of long + MULTIPLE-VALUE-BIND (and likewise of NTH-VALUE with a constant + integer argument) + * 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 now better at handling symbol macros. + * bug fix: There is no longer an internal implementation type named + CL:LENGTH. (reported by Raymond Toy) + * bug fix: In macro-like defining macros/special operators the + implicit block does not enclose the lambda list. + * fixed bugs 10 and 43: Bare VALUES, AND, OR and MEMBER symbols (not + enclosed in parentheses) are not suitable as type specifiers, and + their use properly signals an error now. + * bug fix: An argument count mismatch for a type specifier in code + being compiled no longer causes an unhandled error at compile + time, but signals a compile-time warning. + * fixed simple vector readable printing + * bug fix: DESCRIBE takes more care over whether the class + precedence list slot of a class is bound before accessing it. + (reported by Markus Krummenacker) + * bug fix: FORMATTER can successfully compile pretty-printer format + strings which use variants of the ~* directive inside. + * bug fix: SEARCH now applies its TEST predicate to the elements of + the arguments in the correct order. (thanks to Wolfhard Buss) + * fixed bug 235b: The compiler uses return types of MAPCAR and friends + in type inference. (thanks to Robert E. Brown) + * bug fix: Reading in symbols with an explicit package name of "" + (e.g. '||::FOO) now works correctly. (reported by Henrik Motakef) + * 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 + five 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. + ** TYPE-OF returns recognizeable subtypes of all built-in-types of + which its argument is a member. + ** DEFCLASS only redefines the class named by its class-name + argument if that name is the proper name of the class; + otherwise, it creates a new class. + ** SLOT-UNBOUND now correctly initalizes the CELL-ERROR-NAME slot + of the UNBOUND-SLOT condition to the name of the slot. + ** (SETF (AREF bv 0) ...) did not work for bit vectors. + ** SLOT-UNBOUND and SLOT-MISSING now have their return values + treated by SLOT-BOUNDP, SLOT-VALUE, (SETF SLOT-VALUE) and + SLOT-MAKUNBOUND in the specified fashion. + +changes in sbcl-0.8.2 relative to sbcl-0.8.1: + * fixed bug 148: failure to inline-expand a local function left + garbage, confusing the compiler. + * fixed bugs 3cd: structure slot readers perform type check if the + slot can have an invalid value (i.e. it is either not initialized + or can be written with a less specific slot writer). + * bug fix: the compiler now traps array references to elements off + the end of an array; previously, the bounds checking in some + circumstances could go off-by-one. + * improved MACHINE-VERSION, especially on Linux (thanks to Lars + Brinkhoff) + * type declarations for array element types now obey the description + on the CLHS page "Declaration TYPE", as per discussions on + sbcl-help around 2003-05-08. This means that a declaration + (TYPE (ARRAY FOO) BAR) means that, within the scope of the + declaration, all references to BAR will be asserted or assumed + (with THE, so dependent on compiler policy) to involve objects of + type FOO. Note that no such declaration is implied in + (MAKE-ARRAY .. :ELEMENT-TYPE 'FOO). + * declared types of functions from the "Conditions" + chapter. (reported by Paul Dietz) + * bug fix: CERROR accepts a function as its first argument. + * bug fix: NTH an NTHCDR accept a bignum as index + arguments. (reported by Adam Warner) + * optimization: character compare routines now optimize comparing + against a constant character. (reported by Gilbert Baumann) + * bug fix: (SETF AREF) on byte-sized-element arrays with constant index + argument now works properly on the MIPS platform. + * fixed compiler failure on (TYPEP x '(NOT (MEMBER 0d0))). + * repeated evaluation of the same DEFSTRUCT, a slot of which is + declared to have a functional type, does not cause an error + anymore. + * fixed bug: sometimes MAKE-INSTANCE did not work with classes with + many :DEFAULT-INITARGS. (reported by Istvan Marko) + * fixed bug: if last continuation of a deleted block has a + destination, this destination should be deleted too. (reported by + ohler on #lisp) + * fixed a bug in the bootstrap process: the host compiler's values + of ARRAY-DIMENSION-LIMIT and ARRAY-TOTAL-SIZE-LIMIT no longer leak + into the newly-built SBCL. (reported by Eric Marsden on #lisp, + test case from Patrik Nordebo) + * improved the ability of the disassembler on the PPC platform to + provide helpful disassembly notes. + * SB-MOP:CLASS-PROTOTYPE on built-in-classes returns an instance of + the class in more cases than previously. + * bug fix: FILE-POSITION now understands :START and :END for + STRING-INPUT-STREAMs. (thanks to Nikodemus Siivola) + * bug fix: (SIGNED-BYTE 8) streams no longer return (UNSIGNED-BYTE + 8) data. (thanks to David Lichteblau) + * bug fix: it is possible to add a method to a generic function + without lambda list. + * bug fix: reader failed to signal END-OF-FILE inside an + object representation. (reported by Nikodemus Siivola) + * fixed some bugs revealed by Paul Dietz' test suite: + ** LAST and [N]BUTLAST should accept a bignum. + ** condition slot accessors are methods. + ** (VECTOR NIL) is a subtype of STRING. + +changes in sbcl-0.8.3 relative to sbcl-0.8.2: + * SBCL now builds and runs on MacOS X (version 10.2), or perhaps + more accurately, on the Darwin kernel running on PowerPC hardware. + (thanks to Brian Mastenbrook, Pierre Mai and Patrik Nordebo) + * Compiler code deletion notes now signal a condition of type + SB-EXT:CODE-DELETION-NOTE (a subtype of SB-EXT:COMPILER-NOTE) with + an associated MUFFLE-WARNING restart. + * The compiler now performs limited argument count validation of + constant format strings in FORMAT, and where appropriate in ERROR, + CERROR and WARN. (thanks to Gerd Moellmann) + * New ASDF-INSTALL contrib can be used for automatic download and + installation of third-party Lisp code from CCLAN or other sites + via CLiki. + * Threaded builds (:SB-THREAD) now support SB-THREAD:INTERRUPT-THREAD, + which forces another thread to execute a function supplied by the + caller. + * bug 75 fix: WITH-OUTPUT-TO-STRING (and MAKE-STRING-OUTPUT-STREAM) + now accept and act upon their :ELEMENT-TYPE keyword argument. + (reported by Martin Atzmueller, Edi Weitz) + * bug fix: FILE-POSITION now accepts position designators up to + ARRAY-DIMENSION-LIMIT or the extreme of the off_t range, whichever + is the greater. (thanks to Patrik Nordebo) + * bug fix: MAKE-ARRAY ignored :INITIAL-CONTENTS NIL. (reported by + Kalle Olavi Niemitalo) + * bug fix: the CLASS-PROTOTYPE of the GENERIC-FUNCTION class is now + printable. (reported by Eric Marsden) + * bug fix in sb-posix: mmap() now works on systems with a 64-bit + off_t, including Darwin and FreeBSD. (thanks to Andreas Fuchs) + * x86 bug fix in control stack exhaustion checking: now shows backtrace + * bug fix in WITH-TIMEOUT: now the body can have more than one form. + (thanks to Stig Sandoe) + * bug fix in READ-SEQUENCE: READ-SEQUENCE following PEEK-CHAR or + UNREAD-CHAR now correctly includes the unread character in the + target sequence. (thanks to Gerd Moellmann) + * bug fix in threaded builds: the system can now be suspended and + resumed by shell job control with minimal disruption. + * bug fixes in times and timezones >2038AD + * better handling of "where is GNU make?" problem in build scripts + (thanks to Nikodemus Siivola) + * new optimization: inside a named function any reference to a + function with the same name is considered to be a self-reference; + this behaviour is controlled with SB-C::RECOGNIZE-SELF-CALLS + optimization quality. + * new optimization on x86: logical functions and + now have + optimized (UNSIGNED-BYTE 32) versions, which are automatically + used when the result is truncated to 32 bits. + * VALUES declaration is partially enabled. + * fixes in SB-GROVEL (thanks to Andreas Fuchs) + * fixed some bugs revealed by Paul Dietz' test suite: + ** The system now obeys the constraint imposed by + UPGRADED-ARRAY-ELEMENT-TYPE that the upgraded array element + types form a lattice under type intersection. + ** FFLOOR, FTRUNCATE, FCEILING and FROUND work with integers. + ** ASSOC now ignores NIL elements in an alist. + ** CEILING now gives the right answer with MOST-NEGATIVE-FIXNUM + and (1+ MOST-POSITIVE-FIXNUM) answers. + ** The addition of a method with invalid qualifiers to a generic + function does not cause an error to be signalled immediately; + a warning is signalled, and the error is generated only on + calling the generic function. + * changed .fasl file version number, in part to add type codes for + new array subtypes UNSIGNED-BYTE 7, 15, 29, and 31 mandated by + obscure ANSI requirements + +changes in sbcl-0.8.4 relative to sbcl-0.8.3: + * fixed compiler performance when processing loops with a step >1; + * bug fix: DOCUMENTATION now retrieves generic function + documentation. Also, DOCUMENTATION and (SETF DOCUMENTATION) + support has been systematized, and now supports the methods + specified by ANSI, along with a default method and a method for + slot documentation. (reported by Nathan Froyd) + * bug fix: effective methods associated with a generic function are + no longer cached over a change of that generic function's method + combination. (reported by Andreas Fuchs) + * bug fix: RUN-PROGRAM now does not fail if some element in $PATH + names a non-existent directory. (thanks to Andreas Fuchs) + * optimization: restored some effective method precomputation in + CLOS (turned off by an ANSI fix in sbcl-0.8.3); the amount of + precomputation is now tunable. + * optimization: compiler-internal data structure use has been + reviewed, and changes have been made that should improve the + performance of the compiler by about 20%. + * microoptimization: the compiler is better able to make use of the + x86 LEA instruction for multiplication by constants. + * bug fix: in some situations compiler did not report usage of + generic arithmetic in (SPEED 3) policy. + +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))