Hi,

I was working on starting to move class functionality into v-table methods, as discussed on list recently. However, I hit an interesting issue - you cannot have a METHOD or PCCMETHOD with the same name as a vtable method. We need to be able to do that to implement the interface specified in PDD15, though.

As of r17967, instead of turning any non-vtable method to:

Parrot_CLASSNAME_METHODNAME

Which could conflict with the vtable method, pmc2c now generates:

Parrot_CLASSNAME_nci_METHODNAME

I had to fix a couple of bits of code that directly called such methods, but some of them had "this is evil and needs fixing" comments above them anyway. (Since calling a method directly like this ignores inheritance, it's generally the wrong thing to do.) The Complex PMC was the only PMC that needed changing to get Parrot building again after the change. Therefore I expect the impact of this change will be small.

Anyway, hope this is agreeable, and please do report any issues.

Thanks,

Jonathan

Reply via email to