I think that this is important work. Most of the background discussion took place on the Pharo list, so some may not have seen it. I personally am not qualified to do anything with this, but hopefully others can take a look at it and incorporate it in trunk if appropriate.
Dave
On Mon, Nov 30, 2009 at 06:26:21AM +0100, Levente Uzonyi wrote:
Hi,
I uploaded the second part of Andr?s' hash changes to the inbox. Every package requires a new mcm. The load order is:
Collections-ul.217 "Initialization" Kernel-ul.308 "Object >> #hash" Kernel-ul.309 Kernel-ul.310 Collections-ul.218 "IdentityDictionary" Collections-ul.219 Collections-ul.220 "KeyedIdentitySet" Collections-ul.221 Collections-ul.222 "WeakIdentityKeyDictionary" Collections-ul.223 Collections-ul.224 "IdentitySet" Collections-ul.225 System-ul.185 "SystemDictionary" System-ul.186 System-ul.187 Collections-ul.226 "Cleanup" Collections-ul.227
These packages modify the following:
- Object >> #hash returns an integer between 0 and 1073479680 instead of 0 and 4096, though the range is not continuous
- identity-based collections use the same range extension method as Object >> #hash
- SystemDictionary uses #hash instead of #identityHash
- all preambles and postscripts are removed from Collections, Kernel and System packages
Cheers, Levente