[RFC] removing library NCI signatures from core

Peter Lobsinger plobsing at gmail.com
Wed Feb 17 19:39:22 UTC 2010

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

What this means (or should mean) then, is that PMC methods should be
more restricted in signature type to avoid complete duplication (or
worse: incorrect duplication) of functionality. We don't want to
maintain 3 C<=>PCC mappings in parallel (we already have nativecall
and nci.pmc). We aren't even managing 2 well (nci.pmc is out of sync
and we don't have tests to complain at us about it).

More information about the parrot-dev mailing list