Asscociation equality (was: Re: When are 2 CompiledMethods =
Klaus D. Witzel
klaus.witzel at cobss.com
Tue Sep 11 07:40:17 UTC 2007
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
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
>> 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.
> - Andreas
More information about the Squeak-dev