Update of /cvsroot/sbcl/sbcl
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv26821
22.214.171.124: thread and interrupt safe CLOS cache
* New cache implementation. While the patch appears to modify
src/pcl/cache.lisp, it is really a wholesale reimplementation.
-- Use compare-and-swap to provide atomicity where necessary.
-- Layouts are write-once, but cached values can be replaced
-- Expanding the cache (or dropping invalidated and incomplete
entries) copies the cache.
-- Use ..EMPTY.. as a sentinel value to denote unused cache line
-- Cache index zero is no longer special.
-- Maximum cache size is limited to avoid ridiculously huge caches.
-- API changes in the cache code: MAKE-CACHE replaces GET-CACHE.
PROBE-CACHE now returns a primary indicating a hit or a miss,
and returns the probed value as the second return value.
* Move remaining non-cache related code from cache.lisp.
* Delete unused closure-based dispatch code (src/pcl/dlisp2.lisp). If
we want to support a compilerless build at some future date this
code can be always resurrected from the CVS -- or better yet, can
* Delete MAKE-FINAL-ONE-INDEX-ACCESSOR-DFUN, inlining it to the
call-sites for easier understanding. (Yes, there is such a thing as
too much abstraction.)
RCS file: /cvsroot/sbcl/sbcl/NEWS,v
retrieving revision 1.1203
retrieving revision 1.1204
diff -u -d -r1.1203 -r1.1204
--- NEWS 28 May 2007 14:07:03 -0000 1.1203
+++ NEWS 28 May 2007 18:52:26 -0000 1.1204
@@ -2,6 +2,9 @@
changes in sbcl-1.0.7 relative to sbcl-1.0.6:
* enhancement: name of a socket-stream is now "a socket" instead of
"a constant string".
+ * bug fix: the cache used by the CLOS to store precomputed effective
+ methods, slot offsets, and constant return values is now thread and
+ interrupt safe.
changes in sbcl-1.0.6 relative to sbcl-1.0.5:
* new contrib: sb-cover, an experimental code coverage tool, is included
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.3426
retrieving revision 1.3427
diff -u -d -r1.3426 -r1.3427
--- version.lisp-expr 28 May 2007 15:16:23 -0000 1.3426
+++ version.lisp-expr 28 May 2007 18:52:26 -0000 1.3427
@@ -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".)