1.0.6.33: small CLOS cache improvements
authorNikodemus Siivola <nikodemus@random-state.net>
Fri, 8 Jun 2007 08:37:10 +0000 (08:37 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Fri, 8 Jun 2007 08:37:10 +0000 (08:37 +0000)
commit90c2b0563695904419451b6172efcf9c7008ad8b
tree37e521abb2b08cc67ffd6a542471f001e1538cbf
parentb6ed0e20d468099b62d27095db7d18f76d8886d2
1.0.6.33: small CLOS cache improvements

 * General PCL cleanups:
   -- Get rid of FUNCTION-FUNCALL and FUNCTION-APPLY: instead just
      declare the argument type. ETOOMANYLAYERSOFABSTRACTION.
   -- Implement the unused GET-FUN in terms of GET-FUN1 for clarity.

 * Use a single bitmask instead of multiply and mask to compute the
   cache index (like the original implementation).

 * Slower probe depth limit growth: caches with 1024 lines used to
   have probe depth 16, which is starting to be on the slow side, and
   some fairly common generics like PRINT-OBJECT have caches with
   enough entries that they will be large no matter what. Instead of
   (ceiling (sqrt lines) 2) make it (ceiling (sqrt (sqrt lines))).

 * Better CACHE-HAS-INVALID-ENTRIES-P (does less work, picks up
   incomplete lines.)

 * MAP-ALL-CACHES and CHECK-CACHE-CONSISTENCY for debugging and
   analysis.

 * Typo in the format string in PRINT-OBJECT (CACHE T).

 * A couple of non-CLOS optimization possibilities recorded.
OPTIMIZATIONS
src/pcl/cache.lisp
src/pcl/print-object.lisp
src/runtime/gc-common.c
tests/init.test.sh
version.lisp-expr