Mark H Weaver <m...@netris.org> skribis: > Unfortunately, I doubt this will be sufficient for LilyPond. The small > example case in <http://bugs.gnu.org/19883>, which is apparently > representative of how things are typically done in LilyPond, has > structures like this: > > __________ __________ > Objects in | | | | > GC-managed | SMOB 1 | | SMOB 2 | > heap |__________| |__________| > | ^ | ^ > .....................|...|.........................|...|.......... > __v___|___ _________ __v___|___ > Objects in | | | STL | | | > normal heap |C++ object|--->|container|-->|C++ object| > (not scanned |__________| |_________| |__________| > by GC)
Thanks for the picture, that’s very helpful! I still think we should be able to get rid of GC mark procedures in this case, sidestepping the bug you describe. This pattern is very common when writing bindings. I can’t imagine that there's something insurmountable here. Am I missing something? Ludo’.