1) Stop abusing current GC by allocating structures there that GC knows nothing about, i.e. there is never a path from GC roots to any variables of that type and so gengtype does not produce markers it.
That's good.
BTW, it does not deal with types that in some instances have variables allocated in proper GC way (with a path from GC root) and in some instances not. Fixing these is going to be hard.
Do you have some examples?
This is a prerequisite for my future GC plans of advanced GC implementation that will need to know type of object given its address. Also it has a nice side effect of enforcing that GC is used only with types that it knows something about (see 1) above).
Makes a lot of sense.
I'd love to see this merged to trunk in near future too but I expect that right now it would be seen as an arbitrary and annoying change by developers, especially since nothing in GC implementation right now makes use of it.
Actually, now is a perfect time to do it (more precisely, after LTO is merged and before people start hacking on branches for 4.6). The only really active branch now is trans-mem.
Paolo