On Jun 2, 2010, at 3:04 32AM, Levente Uzonyi wrote:

> On Wed, 2 Jun 2010, Henrik Sperre Johansen wrote:
> 
>> On 02.06.2010 00:15, Alexandre Bergel wrote:
>>> Hi!
>>> Apparently in Pharo 1.1, hash values may be greater than 4096. What is the 
>>> range of the hash values?
>>> Cheers,
>>> Alexandre
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>> Hash values could always be greater than 4096 :)
>> Identity hashes can't, but they are scaled in 1.1, to avoid bad clustering
> 
> That's not true. You may be surprised, but the value of #identityHash can be 
> any SmallInteger. Just try this:
> {SmallInteger minVal. SmallInteger maxVal} collect: #identityHash.
Yeah, forgot about that one. 
> 
>> for objects not redefining hash.
>> Basically they're multiplied by 2^18, which gives the largest possible range 
>> while still keeping all small integers.
>> See ProtoObject>>identityHash for details, old identityHash is now 
>> basicIdentityHash.
> 
> This may cause compatibility problems for packages which implement custom 
> hashes or custom hashed collections. I think Magma will be affected by this, 
> though I didn't check the code.
> 
> 
Not sure why it ended up basicIdentity / identity instead of identity / 
scaledIdentity, but that's true.

Cheers,
Henry
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to