<div dir="auto">I had another thought. If we want, I believe we can make the stable name mechanism considerably more compact by giving up on a flat array representation for the stable name table. The flat representation means that enlarging the table moves all its entries. Suppose we instead choose some shallow tree representation that can grow without moving (an array of arrays comes to mind, where each array is null or twice the size of the last; index calculations should be pretty simple). I believe we can then play some nice tricks:<div dir="auto"><br></div><div dir="auto">1. Lay out each entry in the stable name table like a heap object.</div><div dir="auto">2. Make each StableName# a pointer directly to its stable name table entry.</div><div dir="auto"><br></div><div dir="auto">So instead of a stable name object and a stable name table entry that points to it, we'd just have the stable name entry. I believe we could run the free list through the "heap object" headers.</div></div>