In pmc_new_noinit, I see a switch() which decides whether or not to do add_pmc_ext. Why not have that information (whether or not an ext is needed) defined in each of the .pmc files, and stuck in the vtable?
That would allow other cache-only pmcs to avoid getting an unnecessary chunk of bytes allocated for them. Also, why does constant_pmc_new_noinit always add an ext? -- $a=24;split//,240513;s/\B/ => /for@@=qw(ac ab bc ba cb ca );{push(@b,$a),($a-=6)^=1 for 2..$a/6x--$|;print "[EMAIL PROTECTED] ]\n";((6<=($a-=6))?$a+=$_[$a%6]-$a%6:($a=pop @b))&&redo;}