Semantics of Set>>new in Squeak 3.9 -- To initialize or not to
initialize?
stéphane ducasse
ducasse at iam.unibe.ch
Tue Apr 4 20:48:58 UTC 2006
It would be nice to get some benchmarks (running to bed now)....
Stef
On 4 avr. 06, at 22:28, nicolas cellier wrote:
>
> OK, i put the proposed init: change in http://bugs.impara.de/
> view.php?id=3426
>
> BTW, Stef is right, Array (and eventual subclasses) won't call
> initialize (for
> speed as stated in comment).
>
> If we want to factor implementation of new: , we can simply test
> for the
> behavior being indexable or not and send one of the two initialize
> path:
>
> Behavior>>new: n
> ^self isVariable
> ifTrue: [(self basicNew: n) initialize]
> ifFalse: [self basicNew initialize: n]
>
> This would help deleting almost any other implementation of new:
> but would
> cost one test at each creation. I let this responsibility to gurus.
>
> Nicolas
>
> Le Mardi 04 Avril 2006 22:03, nicolas cellier a écrit :
>> Le Mardi 04 Avril 2006 20:47, John Pierce a écrit :
>>> Hi all,
>>>
>>> etc...
>>
>> Well, a lot of indexable-like classes do implement #initialize: ,
>> and a few
>> implement #init: (Set and some subclasses of it, and also
>> SharedQueue).
>>
>> Sure, it would be more uniform and highly desirable to rename
>> #init: into
>> #initialize: , but that said, we can say that the initialization
>> function
>> does exist in Set (and thus Dictionary).
>>
>> etc...
>>
>> We just should rename this init: method...
>>
>> Nicolas
>
>
>
More information about the Squeak-dev
mailing list
|