Okay, now that the dust from YAPC has settled and the holidays and such are done, it's time to get to some of the outstanding bits of Parrot. I'm going to get the extension mechanism designed over the next few days, but until then... We need a multimethod dispatch for vtable calls. Right now we're working on a "left side wins" scheme and, while we're going to keep that (sort of) we really need a way to choose the method to call based on the types on both sides of binary operators. (Unary operators, luckily, are easier) Basically what we need is a lookup matrix for each vtable method (add, subtract, multiply, whatever) that we can index by left and right types to get the actual method to call. The current int/num/string/same scheme can stay, as they're multimethod already, and handy shortcuts. The methods that take a generic unknown PMC are the ones that need to do the multimethod lookup. We can do this with the current vtable scheme as it is, since we already have a slot to put this in, and I think we're going to have languages that still do a left-side-win scheme. Yes, this means we're going to have to do matricies (at least 2D matricies), class dependencies (so derived classes can inherit from parent classes so as not to leave gaps), and method registration at PMC load time. I'd hoped to avoid this, but... I'll get more details together in a bit. -- Dan --------------------------------------"it's like this"------------------- Dan Sugalski even samurai dan@sidhe.org have teddy bears and even teddy bears get drunkThread Next