tag name | sbcl_0_8alpha_0 (4853bb8809cb3650454ff7a0ff88d7680fb6c43f) |
tag date | 2003-04-30 15:07:33 +0300 |
tagged by | William Harold Newman <william.newman@airmail.net> |
tagged object | commit 589f841fd4... |
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.