0.pre8.103:
[sbcl.git] / NEWS
diff --git a/NEWS b/NEWS
index 6496715..386e5df 100644 (file)
--- 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