[SPAM] Re: [Newbies] Computational complexity of become: and becomeForward:

Mateusz Grotek unoduetre at poczta.onet.pl
Thu Sep 27 16:20:47 UTC 2012


Levente Uzonyi pisze:
> I forgot to mention that in Smalltalks which have an object table, the
> cost of these methods is O(1). Igor had a proposal to add support for
> O(1) cost versions of these methods by using relay objects, but it
> doesn't work well with compact classes and it would use up the last free
> bit in the object header. I think the conclusion was that only the new
> object format will support it.
> In some edge cases [1] you can use #copyFrom: instead of
> #becomeForward:. The former has O(1) runtime cost.
> 
> 
> Levente
> 
> [1] The argument must have the same class and the same number of slots
> as the receiver. If there are objects which point to the argument
> already, then those will keep pointing the same object - which will be
> different than the receiver, so changes done to the argument after
> #copyFrom: won't affect the receiver and vica versa.
> 

Thank you very much for a very comprehensive answer!


More information about the Beginners mailing list