Changes between Version 10 and Version 11 of CallingConventionsOverview
- Timestamp:
- 10/04/09 00:37:01 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CallingConventionsOverview
v10 v11 100 100 - ~~NCI hasn't been fully updated on caller and receiver side to use the new argument passing style.~~ 101 101 102 - Return argument processing (Parrot_pcc_fill_returns_from_op and Parrot_pcc_fill_returns_from_c_args) doesn't currently support :named, :slurpy, :flatten, etc. (t/compilers/imcc/syn/tail.t)102 - Return argument processing (Parrot_pcc_fill_returns_from_op and Parrot_pcc_fill_returns_from_c_args) doesn't currently support :named, :slurpy, :flatten, :optional, :opt_flag etc. (t/compilers/imcc/syn/tail.t, t/pmc/coroutine.t) 103 103 104 104 - Parrot_pcc_fill_params_from_op and Parrot_pcc_fill_params_from_c_args are monolithic functions (basically finite state machines iterating over the arguments), that contain a great deal of nearly repeated code (one or two things different each time). Parrot_pcc_fill_returns_from_op and Parrot_pcc_fill_returns_from_c_args will be just as bad once they support all the options. Not a requirement before the merge, but these should be refactored into smaller subroutines. Needs to be thought through carefully though, it was a similar plan that lead to the current mess. … … 106 106 - Flattening an argument doesn't alter the signature string stored, so multiple dispatch can't handle the resulting string. Need to modify the signature string while building the CallSignature object. (t/pmc/multisub.t and t/pmc/multidispatch.t) 107 107 108 - Edge cases on auto boxing/unboxing argument types, e.g. "Unable to set PMC value, the pointer is not a PMC" (t/oo/methods.t, t/oo/subclass.t )108 - Edge cases on auto boxing/unboxing argument types, e.g. "Unable to set PMC value, the pointer is not a PMC" (t/oo/methods.t, t/oo/subclass.t, t/pmc/hashiteratorkey.t, t/pmc/object-meths.t, t/pmc/resizablestringarray.t, t/pmc/string.t) 109 109 110 110 - GC attempting to mark a bad variable (t/op/box.t) … … 114 114 - Insufficient checking on missing named arguments (t/op/cc_state.t) 115 115 116 - Insufficient checking on too many arguments passed (t/pmc/exporter.t) 117 116 118 - Some tests need to be updated to match the current error messages (t/op/calling.t, t/op/cc_params.t) 117 119 118 - Segfault in set_returns, possibly a null call object? (t/op/gc.t) 120 - Segfault in set_returns, possibly a null call object? (t/op/gc.t, t/pmc/exceptionhandler.t) 121 122 - Probably a problem with argument handling (t/op/lexicals.t, t/pmc/class.t, t/pmc/codestring.t, t/pmc/object-meths.t, t/pmc/sub.t) 123 124 - Two NCI edge cases (t/pmc/nci.t). 125 126 - Likely cases of code still calling into the old functions for invoking from C, instead of the new functions (t/pmc/sub.t, t/pmc/threads.t) 127 128 - Likely bug in Parrot_call_sub reimplementation (t/src/embed.t)