On Wed, Feb 17, 2010 at 2:39 PM, Peter Lobsinger <[email protected]> wrote:
> On Wed, Feb 17, 2010 at 12:22 PM, Andrew Whitworth
> <[email protected]> wrote:
>> On Wed, Feb 17, 2010 at 11:22 AM, Peter Lobsinger <[email protected]> wrote:
>>> As an aside, methods on C-based PMCs use NCI thunks, so unless you can
>>> shoehorn an API into vtables, you're no further ahead by trying to use
>>> PMCs in the current system.
>>
>> Is that still the case? I thought that the PCC refactors changed that.
>> At the very least argument handling is done differently, so it should
>> be possible to avoid NCI thunks (or, most of them) when calling
>> C-based methods.
>
> Seems you're right. pmc2c generates the pcc boilerplate and doesn't
> delegate to nci. I was confused by references to pmc methods in
> config/gen/call_list/* and the fact that pmc2c calls these functions
> "Parrot_${pmc_name}_nci_${method_name}".

Turns out even this isn't strictly true. pmc2c generates pcc
boilerplate for regular methods, but delegates to NCI for multis. I
don't know why. This should probably be changed at some point to be
consistent one way or the other (I'm biased towards delegating to NCI
for obvious reasons).
_______________________________________________
http://lists.parrot.org/mailman/listinfo/parrot-dev

Reply via email to