0.9.15.17:
Implement the :FUNCTION initarg for method initialization
... half of the battle here was altering the propagation of
information about methods around the system. Prior
to this checkin, information was kept in a (non-weak)
hash table holding plists for method functions and
method fast functions. Instead, we associate the
plist with the method itself.
... implement method-qualifiers as a proper slot reader, rather
than through the plist;
... method-function-get-DIE-DIE-DIE
... constant-method-call and constant-fast-method-call
structures for the special case of constant-value
(e.g. predicate) generic functions
... remove :METHOD-SPEC initarg, since it's useless
... rely more on interning instead of METHOD-FUNCTION-PV-TABLE
... remove dead code (e.g. METHOD-FUNCTION-CLOSURE-GENERATOR,
MAKE-INTERNAL-READER-METHOD-FUNCTION)
... define a %METHOD-FUNCTION funcallable structure, to bind
function and fast-function closely together.
... remove the :FAST-FUNCTION initarg. Now, if the system wants
a fast-function, it creates a %method-function structure
with the fast-function in the fast-function slot (and
an ordinary method-function as the
funcallable-instance-function)
... some test cases. (This fixes bug #361 among others, and we
have no current failures against the Closer
mop-feature-tests)
16 files changed: