Gmane
From: William Harold Newman <william.newman <at> airmail.net>
Subject: SBCL 0.8.0 released
Newsgroups: gmane.lisp.steel-bank.announce
Date: 2003-05-25 17:40:44 GMT (6 years, 5 weeks, 5 days, 17 hours and 21 minutes ago)
SBCL 0.8.0 has been released. Sources and a .tar.bz file of a compiled
executable for x86/linux are available at
 <http://sourceforge.net/project/showfiles.php?group_id=1373&release_id=161530>
Other executables and other packaging formats may appear later.

This version has the features announced earlier in 0.8alpha.0, but
without the "be more careful than usual" caveats from the earlier
announcement, since we've now been testing and playing with it for
some time and it seems as stable as the usual pre-0.8alpha.0 releases.

Besides the aforementioned 0.8alpha.0 features (which I have copied at
the end of this message, in case anyone forgot:-), here are the new
features of 0.8.0, cribbed from the NEWS file in the distribution:

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.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.

Enjoy.

-- 
William Harold Newman <william.newman <at> airmail.net>
"Keep your noses to the grindstone. The greatest joy is the joy of 
duty. Work, work, work." -- Lectroid PA system, _Buckaroo Banzai_
PGP key fingerprint 85 CE 1C BA 79 8D 51 8C  B9 25 FB EE E0 C3 E5 7C

-------------------------------------------------------
This SF.net email is sponsored by: ObjectStore.
If flattening out C++ or Java code to make your application fit in a
relational database is painful, don't do it! Check out ObjectStore.
Now part of Progress Software. http://www.objectstore.net/sourceforge