[Vm-dev] Re: Question about GC
Mariano Martinez Peck
marianopeck at gmail.com
Fri Apr 2 11:35:19 UTC 2010
Ok....now I found something very hacky :)
Reading a Squeak blue book, it says "Squeak simply forces de system to
believe that the old/new boundary is at the bottom of the old region. Thus,
the entire image is now considered to be new objects, and all objects will
be fully traced."
On Fri, Apr 2, 2010 at 1:22 PM, Mariano Martinez Peck <marianopeck at gmail.com
> Hi. I have been trying to understand a little how the Squeak GC works, and
> there is something very basic I don't understand. GC is supposed to start
> from the rootTable and mark all the objects that are reachable. This
> objects, includes those which are in the "old space". I mean, the old
> objects too.
> The problem is that I don't find where in the code is that. If i look to
> ObjectMemory >> markAndTrace: oop I see:
> (self oop: oop isGreaterThanOrEqualTo: youngStart)
> ifTrue: [ header := header bitOr: MarkBit ]. "mark only if young"
> So...it is only marked if young.
> Then, in ObjectMemory >> startObj I see
> (self oop: oop isLessThan: youngStartLocal)
> ifTrue: ["old object; skip it"
> field := oop.
> ^ Upward].
> So....where are the old objects being marked ?
> Thanks in advance.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Vm-dev