0.8alpha.0.20:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 1f67cf1..acf60de 100644 (file)
--- 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:
     ** 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 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)
@@ -1521,7 +1534,7 @@ changes in sbcl-0.7.13 relative to sbcl-0.7.12:
   * 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
   * 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)
+    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
   * 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
@@ -1529,14 +1542,190 @@ changes in sbcl-0.7.13 relative to sbcl-0.7.12:
     (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.
     (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);
   * 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.
 
 
-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.
+  * 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).
+  * 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).
+  * compiler checks for duplicated variables in macro lambda lists.
+  * 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.
+
+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
   * (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