semantics of #clone?

Lex Spoon lex at cc.gatech.edu
Mon Jun 23 23:16:53 UTC 2003


Yoshiki.Ohshima at acm.org wrote:
>   Josh,
> 
> > What are the semantics of #clone?  Object>>clone has no method
> > comment.  How is it different from the intended meaning of
> > #shallowCopy?
> 
>   I guess some other people have better ansser, but for me, #clone is
> ensured to be more primitive and faster.  Since it doesn't nil-out or
> zero-out the newly created object, it is faster for objects like
> Bitmap.  In the other words, #clone is thin layer on the primitive,
> while #shallowCopy has more flexibility to do something different.
> 
> # I somehow am feeling that #clone is added later, in 2.x days.
> 

I have thought of it as slightly more primitive, too.  A shallow copy of
an OrderedCollection, for example, might copy slightly more deeply than
a #clone would (hmm, and that's what it does).

Right now, Squeak's clone does do as much as nil out the variables --
it's in fact the same primitive as the default shallowCopy.  This seems
like a good idea for Squeak, where safety is a higher priority than
speed.

Lex



More information about the Squeak-dev mailing list