<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com">eliot.miranda@gmail.com</a>&gt; wrote...<br><br><blockquote type="cite">You're absolutely right. &nbsp;The major image-level change I will require is for Behavior to implement identityHash with a primitive that is different form that in Object. &nbsp;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. &nbsp;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. &nbsp;So every object has a more compact class reference, say 16, 20 or 24 bits. &nbsp;Also, class references in in-line and method caches are class indices, not direct class references, which means less work on GC. &nbsp;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.<br></blockquote><br>Hi, Eliot -<br><br>I've been mostly lurking for a while here, but this topic has become more interesting with each tidbit. &nbsp;I just wanted to say that I love the synergy between hash and class table rolled into the elimination of compact classes. &nbsp;It's an improvement in every way. &nbsp;I can't wait to see this all come to life. &nbsp;You go, guy!<br><br><span class="Apple-tab-span" style="white-space: pre; ">        </span>- Dan<br></body></html>