You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This adds GC descriptors for most of the C code we have checked in, like
builtins and RTS. Mallocs have been turned into
GC_MALLOC_EXPLICITLY_TYPED with a corresponding GC descriptor stored in
the method table of the associated class. The GC descriptor is in turn
based on a GC bitmap, which is of varying length and thus not suitable
for placing directly in the method table. There are instead separate
global variables, one per class. We initialize these structures a bit
differently, so where there are static initializations the bitmap is
currently initialized to 0, which is usually wrong as it indicates that
the GC should not scan the object. For classes initialized with a method
table, as the current code generated by actonc, we currently set it to
0xFF, as to indicate all bits should be scanned.
The goal right now is just to add in the GC descriptors and start using
them for allocations without breaking anything. We will start fiddling
with the bits later on to speed things up.
0 commit comments