Changes between Version 10 and Version 11 of CallingConventionsOverview

Show
Ignore:
Timestamp:
10/04/09 00:37:01 (5 years ago)
Author:
allison
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CallingConventionsOverview

    v10 v11  
    100100- ~~NCI hasn't been fully updated on caller and receiver side to use the new argument passing style.~~ 
    101101 
    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) 
    103103 
    104104- 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. 
     
    106106- 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) 
    107107 
    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) 
    109109 
    110110- GC attempting to mark a bad variable (t/op/box.t) 
     
    114114- Insufficient checking on missing named arguments (t/op/cc_state.t) 
    115115 
     116- Insufficient checking on too many arguments passed (t/pmc/exporter.t) 
     117 
    116118- Some tests need to be updated to match the current error messages (t/op/calling.t, t/op/cc_params.t) 
    117119 
    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)