Allen_Wirfs-Brock at Instantiations.com
Fri Oct 16 20:45:23 UTC 1998
At 12:59 PM 10/16/98 -0700, Dan Ingalls wrote:
>Pat Caudill <patc at teleport.com> wrote...
>>Instance variable accesses would also have to do the indirection check.
>>The Tektronix Smalltalk (OOPSLA '86 paper) did use indirect ions for some
>>becomed objects. It actually used about 6 heuristics to keep from
>>swapping pointers in all of memory (become the hard way). If the objects
>>were the same size the contents were swapped for instance.
>This needs to be reconciled with the particular garbage collection schem
in use. If one of the objects was old, then stores into it must be
detected, and if its data gets moved out of the old object region this may
not be easy.
Actually, the remembered sets used by a multi-generational GC can be very
useful in optimizing become or other pointer scans. Specifics depend upon
the actual remembered set design (referencing object remembered, target
object remembered, etc.) but they can tell you such things as whether a
particular object is referenced from a given memory space or a specific set
of objects that may need to be scanned for pointers. In the case of the
Tektronix collector the remembered set recorded which objects contained
references to a specific generation. If the oop of an object in generation
n was changed via become then the remembered set for generation n
identified the higher generation objects that might contain references to
the object. Only those specific objects need to be scanned.
More information about the Squeak-dev