chiark / gitweb /
src/method-{proto,impl}.lisp: Introduce `effective-method-live-p' protocol.
Previously, the `compute-method-entry-functions' method defined on
`simple-effective-method' would bail out early if there were no primary
methods. This is unsatisfactory: subclasses of `simple-effective-
method' might want to introduce more complicated method combination
machinery.
Make this a proper part of the protocol: introduce `effective-method-
live-p', which gets to decide whether to make method-entry functions or
just leave the vtable pointers null. Now `simple-effective-method' can
decide, in the same way, to suppress the method entries based on the
existence of primary methods, but subclasses can apply more (or less)
subtle policy.