Eliot Miranda <eliot.miranda(a)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
> Behaviour>>identityHash must 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!
- Dan