Asscociation equality (was: Re: When are 2 CompiledMethods = [incl: Float>>nan])

Klaus D. Witzel klaus.witzel at cobss.com
Tue Sep 11 07:40:17 UTC 2007


Hi Andreas,

the addition of Association>>#hash seems to date back to 3.7; haven't  
found it in 3.6.

If you have a maschine with some spare time (I put my Notebook's CPU in  
slow motion mode), you might want to look at

  MessageTally spyOn: [Unicode compileAllFrom: Unicode]

The example was choosen because there Association>>#hash in call site  
Dictionary>>#scanFor: bites the CPU and so MessageTally has something to  
report about. But #bindingOf: (=> #associationAt:) seems to be fast enough  
to *not* appear in that report (may vary per CPU).

The above is just about the #hash part, will instrument my Goya VM and  
search for effective call sites of Association>>#= some time during the  
week.

(cc'ed Marcus)

/Klaus

On Tue, 11 Sep 2007 07:36:56 +0200, Andreas wrote:

> Klaus D. Witzel wrote:
>> on Sun, 09 Sep 2007 11:26:58 +0200, you wrote:
>>> Revert Association>>= to what it used to be and everything will be  
>>> fine (Association>>= is really, really badly broken; it causes  
>>> problems all over the places and this is one of them).
>>  That's a very, very good one, thanks for reminding us of that open  
>> issue.
>>  Since the compiler machinery (BytecodeGenerator) already uses  
>> #literalEqual: and I want Decompiler to use the same comparision for  
>> literals, it'll be easy to put #literalEqual: into Association without  
>> touching its current #= implementation. In a later step it's perhaps  
>> possible to really, really revert #= in Association.
>
> I only wish I knew *why* this got changed in the first place. Both,  
> #hash and #= have Marcus' initials on it - can someone perhaps ask him  
> why that change was needed or desirable? I'm afraid there may be some  
> non-obvious users of that change but since I can't track down exactly  
> where this happened I really don't know where to even start looking.
>
> Cheers,
>    - Andreas
>
>





More information about the Squeak-dev mailing list