Changes between Version 8 and Version 9 of CallingConventionsTasklist
- Timestamp:
- 10/05/09 13:07:56 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CallingConventionsTasklist
v8 v9 19 19 * Change the default vtable function generator for Object PMC to generate 'Parrot_pcc_invoke_sub_from_c_args' calls instead of 'Parrot_runops_fromc_args*' calls. 20 20 21 == API Cleanups == 22 23 * Change 'signature' in ‘Parrot_pcc_invoke_from_sig_object’ to a Parrot STRING, and change all relevant functions to accept a Parrot STRING instead of a C string. 24 25 * Modify Parrot_build_sig_object_from_varargs to check if an invocant is present and if "Pi" doesn't already exist at the beginning of the string. 26 21 27 == Invoke Refactor == 22 28 23 * 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).29 * Make VTABLE_invoke is consistent between different sub-like PMCs (Sub, NCI, etc). See #1094 24 30 25 * VTABLE_invoke can't really be overridden from PIR, because it requires direct access to low-level interpreter data structures. See #103 31 * Allow VTABLE_invoke to be properly overridden from PIR. See #103 32 33 * Allow Sub, Continuation, etc. to be properly subclassed from PIR 26 34 27 35 == Lookahead Refactor == … … 45 53 * Stop marshalling and demarshalling between C calling conventions and Parrot Calling Conventions (especially in hot paths, such as MMD and vtables) 46 54 47 * Change 'signature' in ‘Parrot_pcc_invoke_from_sig_object’ to a Parrot STRING, and change all relevant functions to accept a Parrot STRING instead of a C string.48 49 * Modify Parrot_build_sig_object_from_varargs to check if an invocant is present and if "Pi" doesn't already exist at the beginning of the string.50 51 55 * ~~Refactor Integer PMC's overflow mechanism to do a VTABLE call rather than directly performing an MMD call (to allow for vtable overrides).~~ See #60