General purpose delegation has to be so general-purpose that it's hard
to see that *any* (virtual) hardware support is feasible.

As you pointed out, the scary delegation capabilities of Class::Delegation
would seem to defy low-level support, because they require too many 
high-level decisions to be made before a method can be delegated.

It's probably enough to be able to rejig the dispatch table at run-time,
so as to install a method implementation that retargets a method invocation
to a different method of a different invocant. That is, the low-level
equivalent of:

        MyClass.dispatch_table{some_method} =
                sub { shift.{attr}.other_method(@_) }

About the only other support that would be useful would be a third dispatch 
phase (between named method look-up and AUTOLOAD/AUTOVIVIFY/AUTOWHATEVER)
specifically for delegation checks.

But that isn't a (virtual) hardware issue as far as I can tell.

Damian

Reply via email to