Michal Wallace writes:
> On Mon, 12 Jan 2004, Luke Palmer wrote:
> 
> > Michal Wallace writes:
> > > On Mon, 12 Jan 2004, Luke Palmer wrote:
> > >
> > > > I have somewhat a predicament.  I want to create a continuation, and
> > > > have that continuation stored in the register stack that it closes
> > > > over (this is how I'm implementing a loop with continuations).
> > >
> > > Hmm. That sounds like Coroutine.
> >
> > Uh, how so?  Are we mixing up Continuation/Coroutine vocabulary again?
> 
> :)
> 
> Well... A Coroutine is a pausable, resumable continuation, right?
> Or basically a closure with a continuation inside it. 

Both of those sentences seem wildly redundant to me.  I think we might
be stuck on vocabulary.  We're surely both understanding the same thing
in different ways.

A continuation is one snapshot -- it never changes, it never runs.  To
invoke the continuation is to take you back to that snapshot and start
running from there.  To invoke it a second time is exactly like invoking
it the first time.

A coroutine is like a variable that holds continuations, and updates
itself whenever it "yields".  I guess that's the best way I can put it
with my affliction against coming up with good similes.

I think this is what you were saying... maybe.

But it's easy to implement a loop using a single continuation.  Like
this:

        newsub $P0, .Continuation, again
    again:
        # ... loop body
        invoke $P0

That's not *exactly* what I was doing.   All I was doing was
implementing a loop that called subs repeatedly with a "backtrack"
continuation, so they could jump out at any point in their execution.
It seemed odd that there was no way to keep the continuation I was
giving everyone around without using a lexical pad.

It's working now (there are some weird things going on though which I'm
trying to track down), and I don't really mind the lexical pad.

Luke

> I was just guessing how you might be implementing the loop. It sounds
> like a recursive tail call, but that struck me as a job for goto
> instead of a continuation. So I thought maybe you needed the
> continuation to save for later, and that made me think of a Coroutine.
> 
> That's what was running through my head anyway. As for
> why I mentioned it based on all those assumptions... uhh,
> beats me. My real point was just the part about the
> calling conventions the thing you're calling in P0. :)
> 
> Sincerely,
> 
> Michal J Wallace
> Sabren Enterprises, Inc.
> -------------------------------------
> contact: [EMAIL PROTECTED]
> hosting: http://www.cornerhost.com/
> my site: http://www.withoutane.com/
> --------------------------------------
> 

Reply via email to