Yehuda Katz wrote: > Some options to get around this problem could be: > > * Not compacting any memory from the parent (i.e. keep the GC of shared > objects non-compacting, with an external mark bit) > * With a generational GC, promote shared objects to the mature space, > and have a non-compacting mature space. > > I recognize that it would be more complex than either of the two options > alone. Perhaps compaction could be an option that you could turn on > (which, initially, would make it non COW-friendly)? I'm curious how compaction could even be added while keeping extension support compatible. There's numerous places where you get access to "real" pointers to memory, and all that code would break with a compacting GC. That said, I'd love to see them break if it improves the C impl's memory model. - Charlie