[RFC] removing library NCI signatures from core

Peter Lobsinger plobsing at gmail.com
Mon Feb 22 22:38:27 UTC 2010

On Wed, Feb 17, 2010 at 2:39 PM, Peter Lobsinger <plobsing at gmail.com> wrote:
> On Wed, Feb 17, 2010 at 12:22 PM, Andrew Whitworth
> <wknight8111 at gmail.com> wrote:
>> On Wed, Feb 17, 2010 at 11:22 AM, Peter Lobsinger <plobsing at gmail.com> 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).

More information about the parrot-dev mailing list