[perl #58414] [TODO] review calling conventions

Will Coleda via RT parrotbug-followup at parrotcode.org
Wed Oct 28 13:53:27 UTC 2009


On Wed Oct 28 06:23:29 2009, Whiteknight wrote:
> Following the pcc_reapply branch, the central calling mechanisms have
> been completely reviewed, redesigned, and reimplemented. I'm closing
> this ticket. For other issues:
> 
> > - VTABLE_invoke is inconsistent between different sub-like PMCs. For
> > most subs it simply sets up the environment for invocation, and 
selects
> > the first opcode instruction of the sub as the next 'opcode_t *' for
> > 'runops'. For NCI subs it actually invokes the function pointer. The
> > disjoint means that NCI subs can't be invoked from C argument lists 
the
> > same way as all the other subs (because the regular C argument list
> > passing can only happen *after* VTABLE_invoke has been called to set 
up
> > the environment, but NCI requires the arguments to be passed 
*before*
> > the call to VTABLE_invoke).
> 
> This issue is being followed on the Calling conventions tasklist on
> Trac: https://trac.parrot.org/parrot/wiki/CallingConventionsTasklist
> 
> > - Also, VTABLE_invoke can't really be overridden from PIR, because 
it
> > requires direct access to low-level interpreter data structures.
> 
> See Trac ticket https://trac.parrot.org/parrot/ticket/103
> 
> > - Standardize on PCC-style signature description strings throughout 
the
> > system (instead of different signature description strings for NCI, 
PCC,
> > and regular subs).
> 
> Issue listed on the calling conventions tasklist wiki page
> 
> > - Refactor to remove code duplication between the various dispatch
> systems.
> 
> Done.
> 
> > - Optimize PCC dispatch (refactor to slim down the code).
> 
> In process
> 
> > - Enable dispatching by CallSignature PMC everywhere.
> 
> Done.
> 

CC'ing list with final resolution comment.

-- 
Will "Coke" Coleda


More information about the parrot-dev mailing list