bug found

Stephen Weeks MLton@sourcelight.com
Tue, 27 Nov 2001 10:52:51 -0800


> What is the mark bit used for?  Is this only for MLton.size?  Or is
> it so that you can tell if something is forwarded?

It is only used for MLton.size right now.  I think it might have been
used for serialization at some point, but I'm not sure.

I believe we could swap the mark bit (30) with tag bits 29 and 28 and
then use bit 29 for array lengths as well.  The only code that needs
to distinguish between an array length and an object header is the
toData function that is used while walking through the to-space
queue.  That would get us lengths < 1G.

If you want to give it a try Henry, go for it.