1.0.29.54.rc2: two more CTOR optimization issues
authorNikodemus Siivola <nikodemus@random-state.net>
Wed, 1 Jul 2009 15:13:09 +0000 (15:13 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Wed, 1 Jul 2009 15:13:09 +0000 (15:13 +0000)
commitc4a60e6a7fd0381f97a88e28b3778d4352ec4259
treef34caf055924589f1275bc06d40572ce65902611
parentc3a003ecf3dbccf5a583a8dfef11d24ef730f22b
1.0.29.54.rc2: two more CTOR optimization issues

* Invalid calls of the form (MAKE-INSTANCE ''QUUX) or similar reported
  hard to understand errors instead of using the NO-APPLICABLE-METHOD
  machinery. (reported by Gabor Melis)

* Runtime generation of new CTORs for the inline cache was not thread
  safe: grab *WORLD-LOCK* to ansure that (1) all CTORs end up in
  *ALL-CTORS* (2) we don't construct a CTOR with the same name twice.
  Also initialize the new CTOR with the initial constructor before
  setting its FDEFINITION: this is strictly speaking not needed given
  the lock, but more clearly correct. No test-case, as I was unable to
  actually provoke problem in real code.
NEWS
src/pcl/ctor.lisp
tests/ctor.impure.lisp
version.lisp-expr