Regards.
The codestring-pmc branch now has a CodeString.pmc that is little more than
a String with some extra methods; need_ext, PMC_data, custom mark have all
been removed... But we're left with the same GC-based segfault we had.
I'm at a loss on how to debug this sort of thing.
If we don't have a programmatic way to check that we're doing our GC
properly, we at least need a plan for a human to go through the code and
make sure we're following all the proper steps. (If you do *foo*, be sure to
*bar* because method *baz* could GC your PMC).
I hear that chromatic had a patch that would verbosely report on all object
creation/destruction. This might be a good thing to have in core so we could
enable it when trying to track down these bugs; perhaps a --gc-debug on
steroids.
... Speaking of --gc-debug, it has no effect on the bug in this branch. Does
this mean it's deficient?
Basically, I'm stuck on this until the GC bug can be resolved (even if it's
a GC bug my code is merely exposing rather than causing); partcl also has a
GC bug that is blocking development there. (I can turn off GC, but that
makes running the test suite extremely slow.)
I think we need to improve our toolset (or at least knowledge base) for
properly implementing GC, and for being able to figure out when we've done
it wrong.
