> Most objects in Parrot will be dealt with by > reference, which is to say > that the PMC that a name is bound to is not an > object, but rather a > reference PMC that points to the object PMC. An > assign, in that case, just > copies the value in the source reference (which is > the pointer to the > referred to object) into the destination reference, > so it all works out > OK.
Ah. I see. I was confused because my language uses the registers themselves as variables, instead of storing variables in the registers. This would explain a lot of the 'set-vs-assign' confusion, too. Where I do a 'set', everyone else does 'assign'. Not that I don't think that my way of thinking about these things makes more sense in the general case ;-), but... that explains a lot. I expect IMCCs "=" to do a 'set', but everyone else expects it to 'assign'. But last I checked it sometimes did one and sometimes another :-P From what you wrote earlier, it seems like IMCC's "=" operator should always do 'assign'. (see my rants here: http://groups.google.com/groups?selm=20030822181316.4849.qmail%40web41413.mail.yahoo.com , and here: http://groups.google.com/groups?selm=20030814083616.27613.qmail%40web41415.mail.yahoo.com , if you're interested in my idea of how registers and values should be thought about) > I think I need to put together something > more detailed on how this works, though. That would be nice. Maybe while writing it you'll see the light and introduce a ":=" operator for IMCC ;-) __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com