[squeak-dev] Re: Burn the Squeak Image! (Why I am running for board)

Eliot Miranda eliot.miranda at gmail.com
Mon Mar 2 19:46:46 UTC 2009


On Sun, Mar 1, 2009 at 6:11 PM, Daniel Ingalls <dan at squeakland.org> wrote:

> Eliot Miranda <eliot.miranda at gmail.com> wrote...
>
> You're absolutely right.  The major image-level change I will require is
> for Behavior to implement identityHash with a primitive that is different
> form that in Object.  Doing this allows me to implement a hidden class table
> in the VM where a class's identity hash is the index into the class table.
>  An instance of a class has the class's class table index (the class's id
> hash) stored in its header, not a direct pointer to the class.  So every
> object has a more compact class reference, say 16, 20 or 24 bits.  Also,
> class references in in-line and method caches are class indices, not direct
> class references, which means less work on GC.  But to ensure a class can be
> entered in the table by the VM at an unused index Behavi ust be a special
> primitive that the VM implements as searching the table for an unused index.
>
>
> Hi, Eliot -
>
> I've been mostly lurking for a while here, but this topic has become more
> interesting with each tidbit.  I just wanted to say that I love the synergy
> between hash and class table rolled into the elimination of compact classes.
>  It's an improvement in every way.  I can't wait to see this all come to
> life.  You go, guy!
>

Thanks, Dan!  The other goodness in this is that the 2-word header layout
can be used in both a 32-bit and a 64-bit VM, which also means that the
inline cacheing code that e.g. involves embedding a class index in a
register load instruction is the same in both 32 and 64 bits, and hence is a
leg up for a fast 64-bit VM.


>
>
> - Dan
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20090302/83264565/attachment.htm


More information about the Squeak-dev mailing list