Hi all--
Just a quick note about a fun hack. In my quest to remove all references to the system dictionary (after making each class responsible for its own name[1]), I remembered that many of the method dictionary values in the minimal memory are nil, due to the inert-method-discarding garbage collector[2]. That would make searching for references a bit tricky, since nil doesn't understand hasLiteral: and other messages that CompiledMethod implements for the benefit of the development tools.
I changed Behavior>>whichSelectorsReferTo:special:byte: et al in the minimal memory so that when they encounter a nil where a method used to be, they use a proxy on the actual method back in the master memory. Now "references" works again on the minimal memory, complete with browsing source, without having to swap any methods back in.
If you haven't been following these progress reports, then the above may make absolutely no sense, but I think there are at least a few of you out there. ;) The larger point is that I'm getting close to deleting SystemDictionary.
thanks,
-C
[1]
http://lists.squeakfoundation.org/pipermail/spoon/2006-July/000124.html
[2]
http://lists.squeakfoundation.org/pipermail/spoon/2006-April/000107.html
spoon@lists.squeakfoundation.org