Changes between Version 3 and Version 4 of CallingConventionsTasklist
- Timestamp:
- 02/02/09 19:30:42 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CallingConventionsTasklist
v3 v4 13 13 * Converge on one calling convention for all invocation. Different entry points for calling from PIR, C, or CallSignature PMC. Different exit points, depending on whether the call is a Sub (Closure, Contintuation, etc) or a CFunction. But same code pattern, and same core routines for all. 14 14 15 * 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 16 the environment, but NCI requires the arguments to be passed *before* the call to VTABLE_invoke). 15 * 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). 17 16 18 * Also, VTABLE_invoke can't really be overridden from PIR, because it requires direct access to low-level interpreter data structures.17 * VTABLE_invoke can't really be overridden from PIR, because it requires direct access to low-level interpreter data structures. See #103 19 18 20 19 * Standardize on PCC-style signature description strings throughout the system (instead of different signature description strings for NCI, PCC, and regular subs).