In light of the recent discussion on squeak-dev regarding nil keys in Dictionaries, I have removed the anti-fixes related to this (including the #associationsDo: override in WeakKeyIdentityDictionary) from the "System overrides for ma object serialization" package of Magma.
Magma is back to 100% pure*, making no system changes that have not been approved for at least 3.9.
[*] I left the 3.9-approved fixes in, however, for <= 3.8 users.
I have also removed all use of Ma*Dictionary's. They were written to fix the performance bug with #removeKey: for which they are 1000x (or more) faster than their standard counterparts but are a bit slower for other operations. Magma now avoids removeKey: altogether, so going back to the standard Dictionary's you should enjoy a minor performance improvement.
A few more improvements too:
- More robust network error handling for when other end drops unexpectedly. - Tests now only open transcript in conductor image. Besides being faster, Squeak was locking up loading a font or something, no time to debug it. - Fixed possible error when opening partially-written commitPackages file. - Fixed MaCollectionIndex >> #recordSize:. Thanks Brent!
Let me know if any questions or issues.
- Chris
magma@lists.squeakfoundation.org