a wrinkle in on-demand behavior transfer

tim Rowledge tim at sumeru.stanford.edu
Sun Jul 4 00:08:00 UTC 2004


I'm absolutely sure this is a problem we discussed early on (early last 
year probably) and I thought we had worked out a solution.  If you 
haven't already, try searching any emails you have saved on the matter 
though I think it was mostly done on skwakking fridays.

You need some flag in a method-like dictionary to say that the message 
name has been completely resolved down to the class of the receiver. The 
bad bit is that means having almost a C++ vtable for each class. Or you 
could invert it and have a table for each known selector that lists the 
classes for which it has been resolved. A small optimisation would be to 
look up the class chain to where it has been resolved and then ask the 
server image if there is any overrider below that. Set the flags of the 
'lower' classes as appropriate. It's an expensive problem though since 
every message that needs to go to a superclass will ahve to check the 
overrides flag.

Yuck.

tim




More information about the Squeak-dev mailing list