> The part that affects us is that we can't tell at > compiletime whether > assignment is rebinding or is a get/set, because we > could have code > like: > > kitchentemp = new('kitchenroom'); > bedroomtemp = new('bedroom'); > bedroomtemp = kitchentemp; > > > which is typeless, and yet should still respect the > fact that the > objects bound to the name intercept assignment > (basically overloading > it) rather than having the compiler or runtime doing > the rebinding > for you. > > Since, of course, we're dealing with basically > typeless languages we > have to do all the checking at runtime (lucky us) > which is why the > PMCs have generic get and set methods so they can > decide whether > we're doing rebinding or something more funky.
Humm. Are you saying that whether 'set' does binding or 'morphing' on a PMC will not be known at compile time at the PASM level? So we don't know exactly what set Px, Py will do? > (Whether this affects languages where = is an > explicit binding rather than assignment is up > in the air, but neither python nor ruby is truly > that way, though they're close. But we can fake > it so that things do what they ought when they > ought) Maybe there should be 3 'set' ops: 'assign' which changes the object, 'bind' which replaces it, and 'set' which does whatever the heck the object wants it to do... It'd be good for compilers that like to know what's going on. __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com