As of r20160, Tcl was generating a lot of assertion errors, ala:

src/inter_call.c:228: failed assertion `sig_pmc->vtable->base_type == enum_class_FixedIntegerArray'

Turns out, this is directly attributable to runtime/hacks.pir - my attempt to store the results of compilation of tcl to pir as a frozen PMC. While this worked when it was checked in, at some point trying to read in, thaw, and invoke that PMC started generating these assertion errors (which are a result of something getting garbage collected that oughtn't.). Hopefully knowing which area of partcl was causing this will help track down the GC bug.

Given that this was purely a hack on my part to try to get a speedup during development, I'm going to comment this out of partcl for now. Anyone trying to track this down just needs to swap out runtime/ builtin/source.pir with the version from r20160, and run their copy of parrot twice. (once to generate the frozen PMC, once to invoke it.).

I think this might point to a bug that needs to be resolved... and it was a big enough speedup that I'd like to re-enable until our compiler is blazingly fast, even if it is a dirty hack.

In a related note, I've also disabled the default -G running on the test suite. This seems to expose a host of *new* GC failures. Help! =-)

Reply via email to