<br><br><div class="gmail_quote">On Mon, Oct 18, 2010 at 10:06 PM, Andres Valloud <span dir="ltr">&lt;<a href="mailto:avalloud@smalltalk.comcastbiz.net">avalloud@smalltalk.comcastbiz.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I looked into this and from my quick impression, all pointers in reachable object bodies will be written to twice by the algorithm. However, a stack approach would only write such pointers once (copying them from the object into the mark stack).  Doesn&#39;t that imply that the pointer reversal algorithm is more memory intensive than a stack approach?</blockquote>
<div><br></div><div>Not necessarily more memory intensive, since it has better locality than a mark stack, but it is slower and harder to debug when it blows up in the middle since the reversed chain of pointers to the current point effectively corrupt the heap.  For these two reasons I won&#39;t be using pointer reversal in my new GC.</div>
<div><br></div><div>best</div><div>Eliot</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On 10/18/10 14:55 , Eliot Miranda wrote:<br>

</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
<br>
<br>
On Mon, Oct 18, 2010 at 2:50 PM, Andres Valloud<br>
&lt;<a href="mailto:avalloud@smalltalk.comcastbiz.net" target="_blank">avalloud@smalltalk.comcastbiz.net</a><br></div><div><div></div><div class="h5">
&lt;mailto:<a href="mailto:avalloud@smalltalk.comcastbiz.net" target="_blank">avalloud@smalltalk.comcastbiz.net</a>&gt;&gt; wrote:<br>
<br>
    On 10/18/10 10:31 , Jecel Assumpcao Jr. wrote:<br>
<br>
        We have had several discussions about the tags in Squeak.<br>
        xxxxxx1 is a<br>
        SmallInteger and xxxxxx00 is an object pointer, but xxxxxx10 is not<br>
        generally used.<br>
<br>
<br>
    How does the mark and sweep GC handle mark stack overflows?  Is<br>
    there a bit in the object header for that?<br>
<br>
<br>
The Squeak GC uses a pointer-reversal algorithm for marking and so is<br>
immune to mark stack overflow.<br>
<br>
cheers,<br>
Eliot<br>
<br>
<br>
    Andres.<br>
<br>
<br>
</div></div></blockquote>
<br>
</blockquote></div><br>