armload of DEFINE-HASH-CACHE changes
authorNikodemus Siivola <nikodemus@sb-studio.net>
Tue, 7 Jun 2011 14:08:00 +0000 (17:08 +0300)
committerNikodemus Siivola <nikodemus@sb-studio.net>
Tue, 7 Jun 2011 20:18:57 +0000 (23:18 +0300)
commit4084b6b95c1d5e0a45e073a9b875d8471efd8505
tree7ea0c73b968b1b806e04749c445506bea6570dad
parent9ca5f2d431133c37793fff74e1ecbd229574222d
armload of DEFINE-HASH-CACHE changes

 * To clear a cache, drop the entire vector instead of filling it with
   NILs: thread safe, less work, and doesn't add dirty pages to old
   generations.

   Entering a value after the cache has been dropped allocates a new
   one.

   Caches are now initialized with 0 instead of NIL -- faster to
   allocate.

 * Use DEFGLOBAL instead of DEFVAR.

 * SAVE-LISP-AND-DIE drops all caches.

 * UNSAFE-CLEAR-ROOTS drops caches depending on the depth of the
   collection: nursery collection keeps all caches, gen 1 collection
   drops the CTYPE-OF cache, gen 2 and deeper collections drop all
   caches.
package-data-list.lisp-expr
src/code/early-extensions.lisp
src/code/early-type.lisp
src/code/gc.lisp
src/code/save.lisp
src/code/target-type.lisp