I think PMC method implementations should be easier to read (and write) than they currently are. PMC methods as they are currently written are almost compilable with a C compiler, modulo some magic words like "SELF", and that makes them highly redundant. Even a little simple filtering should let us kill all those blank lines and pod text up against the left margin. And there's a lot of cross-file redundancy we can kill with some vtable knowledge. Where now we have:
/* =item CReturns a C PMC. =cut */ static PMC* undef(Interp* interpreter) { return pmc_new(interpreter, enum_class_PerlUndef); }
Look at all the redundancy there. And consider all the vtable methods that have multiple implementations across many PMCs. Making programmers type the same thing over and over is just mean; it all the fun out of the coding. Something like this would be a lot better:
=method undef =returns a CPMC. { return pmc_new(interpreter, enum_class_PerlUndef); }
Everything else that's omitted here is, or should be, available elsewhere ... every implementation of the given vtable method must have the same signature, so why make every implementor spell it out?
If we want people to help us finish the PMCs, why not make their job a little more pleasant?