Quoting Joern Rennecke <joern.renne...@embecosm.com>:

P.S.:
If we need more than one operation, or mark-things-live when copying
during normal operation causes too much overhead, we could select
operations
to be performed by the copy constructor by adjusting some global state
(need not literally be a global variable - it might be a static member
variable in some class).

This can also make the mark-operation cheaper, as we could make it
just do the marking.

And, to tackle GC roots, we could have another templated class to wrap
pointers to GC-able pointers that, in addition, has a constructor that
registers the address the pointer is going to be stored in. if the
previous contents are zero.
We'll have to have a check to avoid creating duplicates if a GC root is
initialized more than once.

Thus, we can get completely get rid of gengtype - the special GC semantics
will be expressed in C++ by the types used.
The gengtype code might get re-used for a final time to help find and rewrite
all the GTY constructs we got in our current code base.

Reply via email to