Re: runops_args vs NCI

2004-12-18 Thread Sam Ruby
Leopold Toetsch wrote: Sam Ruby wrote: However, VTABLE_invoke on NCI methods is where the "real work" is done (including reading from and writing to registers), and a null dest is returned. One more remark: This is classes/nci.pmc:invoke void* invoke (void * next) { Parrot_csub_t func

Re: runops_args vs NCI

2004-12-18 Thread Leopold Toetsch
Sam Ruby wrote: However, VTABLE_invoke on NCI methods is where the "real work" is done (including reading from and writing to registers), and a null dest is returned. One more remark: This is classes/nci.pmc:invoke void* invoke (void * next) { Parrot_csub_t func = (Parrot_csub_t)D2FPT

Re: runops_args vs NCI

2004-12-17 Thread Leopold Toetsch
Sam Ruby wrote: I've made a clone of these functions, and made the relevant fixes to my copy. As you said, that's your time. You can clone half of Parrot core for experiments. Hopefully someday this will get refactored back into Parrot. The code for running PASM/PIR code is fine. The second time

Re: runops_args vs NCI

2004-12-17 Thread Sam Ruby
Leopold Toetsch wrote: Sam Ruby wrote: But I need to do more than that. I need to do what Parrot_run_meth_fromc_args is attempting to do (i.e., create a return continuation and do argument or returnvalue passing.), but correctly. 1) runops_fromc and friends are running *opcodes*, nothing else 2)

Re: runops_args vs NCI

2004-12-17 Thread Leopold Toetsch
Sam Ruby wrote: I have a number of cases (filter, map, reduce), where I am passed an arbirary sub and need to call it. I should not have to know how the sub is implemented. I'd a look at map and friends now. You are running code that has a signature of "PP". You'd need additionally: if (func

Re: runops_args vs NCI

2004-12-17 Thread Leopold Toetsch
Sam Ruby wrote: But I need to do more than that. I need to do what Parrot_run_meth_fromc_args is attempting to do (i.e., create a return continuation and do argument or returnvalue passing.), but correctly. 1) runops_fromc and friends are running *opcodes*, nothing else 2) the functions are work

Re: runops_args vs NCI

2004-12-17 Thread Sam Ruby
Leopold Toetsch wrote: Sam Ruby wrote: Leopold Toetsch wrote: Sam Ruby wrote: However, VTABLE_invoke on NCI methods is where the "real work" is done (including reading from and writing to registers), and a null dest is returned. Ouch. Sorry, probably cut'n'paste code, relicts or whatever. "runop

Re: runops_args vs NCI

2004-12-17 Thread Leopold Toetsch
Sam Ruby wrote: Leopold Toetsch wrote: Sam Ruby wrote: However, VTABLE_invoke on NCI methods is where the "real work" is done (including reading from and writing to registers), and a null dest is returned. Ouch. Sorry, probably cut'n'paste code, relicts or whatever. "runops_*" isn't supposed to

Re: runops_args vs NCI

2004-12-17 Thread Sam Ruby
Leopold Toetsch wrote: Sam Ruby wrote: However, VTABLE_invoke on NCI methods is where the "real work" is done (including reading from and writing to registers), and a null dest is returned. Ouch. Sorry, probably cut'n'paste code, relicts or whatever. "runops_*" isn't supposed to be called for NC

Re: runops_args vs NCI

2004-12-17 Thread Leopold Toetsch
Sam Ruby wrote: However, VTABLE_invoke on NCI methods is where the "real work" is done (including reading from and writing to registers), and a null dest is returned. Ouch. Sorry, probably cut'n'paste code, relicts or whatever. "runops_*" isn't supposed to be called for NCI methods. It's for run