libera/#clasp - IRC Chatlog
Search
14:15:15
drmeister
I pared it down and organized the GCRoots structure when I implemented the snapshot save/load.
14:16:20
drmeister
Our precise GC now uses a 64 bit word bit mask to indicate what words in the object are tagged pointers that need to be fixed.
14:17:42
drmeister
I didn't add support for an extra word - so a GC managed object must fit all of its tagged pointers within the first 64 words from the start of the object.
14:18:58
drmeister
That applies only to the initial fixed fields of an object. Vectors can have any number of GC managed pointers because they are described in a comprehensive way.
14:19:48
drmeister
The only object that comes near this 64 word limit for fixed fields is the Lisp_O object and I moved all (I think) of the tagged pointers into the GCRoots struct for housekeeping reasons.
14:20:53
drmeister
The Lisp_O class contains a GCRoots struct but only the flattened layout of the Lisp_O class matters to the GC because all it sees is a linear block of words.