[Openmcl-devel] GF invocation protocol
gb at clozure.com
Tue Sep 11 18:18:48 UTC 2007
On Tue, 11 Sep 2007, Slava Akhmechet wrote:
> What is the status of generic function invocation protocol on OpenMCL?
> The documentation says compute-discriminating-function,
> compute-applicable-methods, and
> compute-applicable-methods-using-classes are not implemented.
That's still true; I think that some other things from that
section of the MOP spec (MAKE-METHOD-LAMBDA ?) are also missing.
> Are there plans to support this part of MOP?
It hasn't been a high priority. I'd like to see it happen, if only
because it sounds better to say "OpenMCL supports the MOP" than it
does to say "OpenMCL supports a large subset of the MOP", but that
hasn't been a compelling argument thus far.
I think that it's fair to say:
1) Some people need the MOP's GF invocation protocol.
2) A lot of people don't.
That tends to be sort of circular (there isn't much apparent demand,
because people who need this functionality see that it isn't there.)
> If not, does OpenMCL expose alternative API that would let me hook
> into generic function invocation and modify its behavior?
Not really. The way that GF dispatch works in OpenMCL depends on
some low-level gunk (method functions receive extra invisible/magic
arguments, generic functions rarely use lists to represent the set
of arguments that they receive, etc.) This low-level gunk isn't
extensible or very close to what the MOP specifies, but - all other
things being equal and in isolation - tends to be faster than doing
things in a MOP-compliant way would be. If overhead's introduced
here, it has to be removed from some other aspects of GF dispatch
(or GF dispatch would slow down in all cases.)
> Slava Akhmechet.
More information about the Openmcl-devel