Re: towards a new call scheme

2004-09-26 Thread Leopold Toetsch
Jeff Clites [EMAIL PROTECTED] wrote: return_cc == alias for call_cc_indexed 0 tailcall == alias for call_cc_indexed 1 call_cc_indexed 2 == invoke the continuation from 2 frames back, as though it had been passed down Yep. I can imagine that that's avaiable as: $P0 =

Re: towards a new call scheme

2004-09-25 Thread Jeff Clites
On Sep 24, 2004, at 1:13 AM, Leopold Toetsch wrote: Piers Cawley [EMAIL PROTECTED] wrote: I could be wrong here, but it seems to me that having a special 'tailinvoke' operator which simply reuses the current return continuation instead of creating a new one would make for rather faster tail calls

Re: towards a new call scheme

2004-09-24 Thread Piers Cawley
Leopold Toetsch [EMAIL PROTECTED] writes: Dan Sugalski wrote: At 4:15 PM +0200 9/23/04, Leopold Toetsch wrote: get_cc(OUT Px) # 1) get current continuation, i.e. the return cont. In a rare, possibly unique burts of opcode parsimoniousness... perhaps this would be a good thing for the

Re: towards a new call scheme

2004-09-24 Thread Leopold Toetsch
Piers Cawley [EMAIL PROTECTED] wrote: I could be wrong here, but it seems to me that having a special 'tailinvoke' operator which simply reuses the current return continuation instead of creating a new one would make for rather faster tail calls than fetching the current continuation out of

towards a new call scheme

2004-09-23 Thread Leopold Toetsch
I've started tweaking internals to get a faster calling scheme in place. Part 1 (in CVS) moved the subroutine's address into the parrot_sub_t structure. Accessing such Sub-internals via get_pointer set_pointer is working still safely. Anyway, next will be to hide the return continuation in

Re: towards a new call scheme

2004-09-23 Thread Dan Sugalski
At 4:15 PM +0200 9/23/04, Leopold Toetsch wrote: I've started tweaking internals to get a faster calling scheme in place. Part 1 (in CVS) moved the subroutine's address into the parrot_sub_t structure. Accessing such Sub-internals via get_pointer set_pointer is working still safely. Anyway,

Re: towards a new call scheme

2004-09-23 Thread Luke Palmer
Dan Sugalski writes: At 4:15 PM +0200 9/23/04, Leopold Toetsch wrote: return_cc() # 2) return via current continuation 1) is only needed for special porposes, like passing the continuation on to a different place. The normal way to return from a sub will be 2) If that's in,

Re: towards a new call scheme

2004-09-23 Thread Dan Sugalski
At 11:23 AM -0600 9/23/04, Luke Palmer wrote: Dan Sugalski writes: At 4:15 PM +0200 9/23/04, Leopold Toetsch wrote: return_cc() # 2) return via current continuation 1) is only needed for special porposes, like passing the continuation on to a different place. The normal way to return

Re: towards a new call scheme

2004-09-23 Thread Leopold Toetsch
Dan Sugalski wrote: At 4:15 PM +0200 9/23/04, Leopold Toetsch wrote: get_cc(OUT Px) # 1) get current continuation, i.e. the return cont. In a rare, possibly unique burts of opcode parsimoniousness... perhaps this would be a good thing for the interpinfo op. That's fine too. return_cc()