1.0.29.41: inline CTOR caches for MAKE-INSTANCE
authorNikodemus Siivola <nikodemus@random-state.net>
Thu, 25 Jun 2009 14:55:41 +0000 (14:55 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Thu, 25 Jun 2009 14:55:41 +0000 (14:55 +0000)
commit95d19447c10434753c2168ac943152fd5e3ded3d
treea7356d3188e2b1ce283ea0669126d376b61d6763
parentc6e249ac371fae7bf2d04defa9433720108376e4
1.0.29.41: inline CTOR caches for MAKE-INSTANCE

* If MAKE-INSTANCE has constant keywords but a variable first argument,
  build an inline cache of CTORs.

  ** Initially a sorted list, switching to a max 256 entry table if
     the list grows too large.

  ** Rename CTOR-NAME to CTOR-NAME-OR-CLASS, and allow building CTORs
     for class arguments as wel. Similarly, CTOR function names
     can contain class objects as well.

  ** Factor out RANDOMLY-PUNTING-LAMBDA from cache.lisp, since CTOR
     cache wants it too.

  ** STD-INSTANCE-P and FSC-INSTANCE-P become functions with compiler
     macros -- they are now used in compiler-support.lisp, which
     is built before low.lisp, so using macros is out.

* Also enable the existing CTOR optimization for constant class objects
  as class arguments.

* Tests.
NEWS
contrib/sb-queue/test-queue.lisp
src/pcl/cache.lisp
src/pcl/compiler-support.lisp
src/pcl/ctor.lisp
src/pcl/low.lisp
src/pcl/print-object.lisp
tests/ctor.impure.lisp
version.lisp-expr