Spoon progress 22 August 2006: searching swapped-out methods for literals

Craig Latta craig at netjam.org
Wed Aug 23 01:45:27 UTC 2006

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.







Craig Latta

More information about the Spoon mailing list