jjore
Similarly, we have a Circus Open Mic in Seattle (https://www.facebook.com/events/533760116677373/) where ground rules are that admission is free and open to the public but it's generally a supportive and in-community audience. We've had comedians, magicians, aerialists, acrobats, jugglers, extremely weird people, clowns, and strip history lessons.
I present both of these as ideas for ways to develop and grow without being subject to eternal Google search indexing and YouTubing by random civilians. I think both of these seem to come down to controlling the venue and rules. If you experiment in a bar or club, you're in the wild.
We do these in theatres, black boxes, and dance/performance spaces. This allows us to control the door.
Both problems are hard and the current state of affairs is apparently some random amount of the time we'll get memory corruption bugs.
This certainly isn't an awesome solution but couldn't the GC backtrace(3) the current process and look at %eax at all C stack frames to additionally include that value in the "pointers currently plausibly in flight" list?
A plausible rewrite of that function in an XS for ruby would leave the function declaration and wrapper code up to your equivalent of xsubpp to execute your DSL and transform the wrapped code to fully functional C. If you build a C using extension from Perl, you'll find an XS file like http://cpansearch.perl.org/src/SIMON/Devel-Pointer-1.00/Poin... which during the `perl Makefile.PL && make` step is transformed via `xsubpp Pointer.xs > Pointer.c` and then compiled as normal C.