At 04:35 PM 8/31/2001 -0500, Me wrote:
>Dan, I don't immediately see how per object/class dispatch
>control helps to make multimethods pluggable.

There's going to be a "method call" entry in the variable's vtable. You 
want a different method call method, you change the entry. Probably by 
changing the class shared vtable.

Globally overriding the "leftmost depth-first" (or breadth-first dispatch, 
or dispatch with automatic redispatch) dispatch method's certainly 
possible, and I know Damian'd like to do it, but I don't like the thought 
of throwing in another level of indirection on a method call. Yeah, I know, 
it's only a single extra pointer deref, and compared to the rest of the 
code it's not much of a performance loss, but we have a lot of places where 
it's "Just one more level of indirection" and those little pieces will 
ultimately add up.

Not to say we won't, but I make it a point to question these decisions. 
That way folks take the performance implications into account. I don't mind 
*doing* them, mind, but I want people to think about the costs when 
deciding the value of the feature.

                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to