On Monday, 23 February 2015 at 21:11:23 UTC, Sativa wrote:
1. Scan the heap in the BG on another thread/cpu for
compactification.
You need to a precise GC to do this, because you need to know
what is a pointer. Otherwise if you have two variables, say a
size_t and a pointer that contain the same raw value, on
compacting you could overwrite the size_t despite it just being a
number and not a pointer.
Also you need to ban certain pointer shenanigans (like xor fun
stuff), though the current GC doesn't work when those are in use
anyway, so I guess it's not too bad.