[self-interest] Does Self have become:
Brian Rice
water at tunes.org
Tue Jun 22 05:43:13 UTC 2004
However, that solution masks the fact that the _AddSlots: call may
require the automatic memory allocator to re-allocate the object and
perform pointer forwarding (through tables, or whatever).
At least in Squeak, the implementation I'm most familiar with,
become:/becomeForward: are just re-using that machinery; perhaps
wrongly, since calls to those force GC's, but that seems to be a Squeak
quirk rather than a general logical condition. I don't mind exposing
that functionality, being an open-implementation proponent, at least at
a meta-level.
In any case, this kind of idiom is certainly needed, it's just a
question of whether to expose VM functionality or re-create it via
combining other primitives in a library method.
On Jun 21, 2004, at 5:55 PM, Jecel Assumpcao Jr wrote:
> On Monday 21 June 2004 21:31, Michael Latta wrote:
>> The subject says it all. Does Self have the equivalent of "become:"?
>
> No, but it doesn't really need it. Note that there are two different
> flavors of #become: in the Smalltalk world - the swapping version and
> the forwarding version (if that is the right term).
>
> The equivalent of the non-swapping version can easily (but not
> efficiently) done as
>
> a _RemoveAllSlots.
> a _AddSlots: b.
>
> The swapping version is just a little more complicated.
--
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/
More information about the Self-interest
mailing list