[squeak-dev] 30 bit unboxed floats

Eliot Miranda eliot.miranda at gmail.com
Tue Oct 19 17:54:28 UTC 2010


On Mon, Oct 18, 2010 at 10:06 PM, Andres Valloud <
avalloud at smalltalk.comcastbiz.net> wrote:

> 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't that imply that the pointer reversal
> algorithm is more memory intensive than a stack approach?


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't be using pointer reversal
in my new GC.

best
Eliot


> On 10/18/10 14:55 , Eliot Miranda wrote:
>
>>
>>
>> On Mon, Oct 18, 2010 at 2:50 PM, Andres Valloud
>> <avalloud at smalltalk.comcastbiz.net
>> <mailto:avalloud at smalltalk.comcastbiz.net>> wrote:
>>
>>    On 10/18/10 10:31 , Jecel Assumpcao Jr. wrote:
>>
>>        We have had several discussions about the tags in Squeak.
>>        xxxxxx1 is a
>>        SmallInteger and xxxxxx00 is an object pointer, but xxxxxx10 is not
>>        generally used.
>>
>>
>>    How does the mark and sweep GC handle mark stack overflows?  Is
>>    there a bit in the object header for that?
>>
>>
>> The Squeak GC uses a pointer-reversal algorithm for marking and so is
>> immune to mark stack overflow.
>>
>> cheers,
>> Eliot
>>
>>
>>    Andres.
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20101019/e00a0449/attachment.htm


More information about the Squeak-dev mailing list