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
