[Pharo-project] Behaviour>>hash is missing!

Adrian Lienhard adi at netstyle.ch
Wed Jun 11 12:03:39 EDT 2008


IIRC Marcus introduced Behavior>>hash in 3.9 and later realized that  
this is not a good idea. The reason is that names of behaviors are not  
constant because when a class is deleted its name is changed to  
AnAbsolete..., which makes the name not suitable for hashing.

Looking through ScriptLoader, #update10020 is where Behavior>>hash is  
removed again. Unfortunately the changes log is a bit unspecific as it  
mentions only: "changes from Reflectivity"...

Cheers,
Adrian

On Jun 10, 2008, at 22:54 , Oscar Nierstrasz wrote:

>
> What was his fix?
>
> How can I tell what was changed?
>
> Is Behaviour>>hash missing in your image too?  I don't trust  
> anything anymore.
>
> - on
>
> On Jun 10, 2008, at 10:13 PM, Stéphane Ducasse wrote:
>
>> Marcus should have a look since this is fix he reverted.
>>
>> Stef
>>
>> On Jun 10, 2008, at 10:04 PM, Oscar Nierstrasz wrote:
>>
>>>
>>> These tests are fine in Squeak 3.9 too.
>>>
>>> Further investigation reveals that Behaviour>>hash is missing in  
>>> Pharo!
>>>
>>> So hash reverts to Object>>hash, which sends Object>>identityHash.
>>>
>>> In Pharo:
>>>
>>> Array hash --> 2455
>>> Object identityHash --> 2274
>>>
>>> In Squeak:
>>>
>>> Array hash --> 259007228
>>> Object identityHash --> 2274
>>>
>>> Looks like someone removed
>>>
>>> Behaviour>>hash
>>> 	^ self name hash
>>>
>>> - on
>>>
>>> On Jun 10, 2008, at 9:43 PM, Stéphane Ducasse wrote:
>>>
>>>> Excellent!
>>>> may be this is the hash of class that changed. Marcus  
>>>> retrochanged the hash behavior that we harvested in 3.9.
>>>> And may be in 3.10 they changed class hash too.
>>>>
>>>> Now I do not know if in 3.9 these tests were broken.
>>>>
>>>> Stef
>>>>
>>>> On Jun 10, 2008, at 9:32 PM, Oscar Nierstrasz wrote:
>>>>
>>>>>
>>>>> OK, I investigated more deeply.
>>>>>
>>>>> It appears that SequenceableCollection>>hash behaves differently  
>>>>> in Pharo and Squeak 3.10.
>>>>>
>>>>> Squeak:
>>>>>
>>>>> #(1) hash --> 22516953
>>>>>
>>>>> Pharo:
>>>>>
>>>>> #(1) hash --> 61541560
>>>>>
>>>>> Since DateAndTime>>hash is ultimately implemented in terms of  
>>>>> Array>>hash (inherited from SequenceableCollection), this test  
>>>>> fails.
>>>>>
>>>>> Not yet sure why these two behave differently ...
>>>>>
>>>>> Already the first line (self species hash) is different:
>>>>>
>>>>> Squeak:
>>>>>
>>>>> Array hash --> 259007228
>>>>>
>>>>> Pharo:
>>>>>
>>>>> Array hash --> 2455
>>>>>
>>>>> - on
>>>>>
>>>>> On Jun 10, 2008, at 6:34 PM, Stéphane Ducasse wrote:
>>>>>
>>>>>> We checked with lukas what is strange is that the same tests  
>>>>>> are green in 3.10.
>>>>>>
>>>>>> Stef
>>>>>>
>>>>>> On Jun 10, 2008, at 3:48 PM, Oscar Nierstrasz wrote:
>>>>>>
>>>>>>>
>>>>>>> I have posted some patches to the inbox to make the Kernel  
>>>>>>> Number tests run, and in the Issues page I propose to delete a  
>>>>>>> bunch of nonsensical testHash tests.  With these changes the  
>>>>>>> Kernel tests should all be green.
>>>>>>>
>>>>>>> - on
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pharo-project mailing list
>>>>>>> Pharo-project at lists.gforge.inria.fr
>>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Pharo-project mailing list
>>>>>> Pharo-project at lists.gforge.inria.fr
>>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Pharo-project mailing list
>>>>> Pharo-project at lists.gforge.inria.fr
>>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo- 
>>>>> project
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> Pharo-project at lists.gforge.inria.fr
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>>
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project at lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project at lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project at lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project





More information about the Pharo-dev mailing list