0.9.14.21:
authorChristophe Rhodes <csr21@cam.ac.uk>
Mon, 17 Jul 2006 12:28:13 +0000 (12:28 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Mon, 17 Jul 2006 12:28:13 +0000 (12:28 +0000)
Allow "anonymous" (in the sense of AMOP pp.67-69) classes
... names not necessarily symbols.

This entails a great big rearrangement of class finalization and
various associated activities; (setf class-name) and (setf
find-class) (and their sb-kernel:classoid equivalents) are now
slightly less tangled, but the coupling is still non-intuitive:
classoids need proper names earlier than classes, as they are
used in the compiler transform for TYPEP / DECLARE TYPE, so the
ideal of strictly parallel CLASSOID / CLASS is not present, and
left for future work.

Add tests, both of the new functionality and also for various
things that broke along the way, detected by gcl/ansi-tests and
from emergent properties of our own test suite.

NEWS
version.lisp-expr

diff --git a/NEWS b/NEWS
index 7019aba..69d797b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,11 +6,19 @@ changes in sbcl-0.9.15 relative to sbcl-0.9.14:
     (cons symbol) is, in the default pprint-dispatch-table, now
     sensitive to whether the symbol satisfies FBOUNDP.  (thanks to
     Marcus Pearce)
+  * minor incompatible change: SB-MOP:FINALIZE-INHERITANCE is now
+    called later in a class's lifetime, possibly as late as when the
+    first instance of the class is created.  Previously,
+    SB-MOP:FINALIZE-INHERITANCE was called by the system as soon as a
+    class became finalizeable.
   * fixed bug: FILE-POSITION sometimes returned inconsistent results
     for multibyte external-format streams.  (thanks to "vbzoli")
   * fixed bug: CHANGE-CLASS would fail to preserve the values of slots
     with :ALLOCATION :CLASS inherited from superclasses of the
     original class.
+  * fixed bug: anonymous classes can now be created using the :NAME
+    initarg and MAKE-INSTANCE / REINITIALIZE-INSTANCE, as specified by
+    AMOP.  (reported by Leonid Slobodov on comp.lang.lisp)
 
 changes in sbcl-0.9.14 relative to sbcl-0.9.13:
   * feature: thread support on Solaris/x86, and experimental thread support
index 4e884d1..5f90cb6 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.14.20"
+"0.9.14.21"