From: Roger Hale <[EMAIL PROTECTED]> Date: Mon, 11 Apr 2005 09:30:32 -0400
Bob Rogers wrote: > From: Roger Hale <[EMAIL PROTECTED]> > Date: Thu, 07 Apr 2005 04:23:41 -0400 > > Leopold Toetsch wrote: > > Roger Hale <[EMAIL PROTECTED]> wrote: > > > >>Leopold Toetsch wrote: > >> > >>>As @ARGS (or @IN_ARGS, @OUT_ARGS) is being stored in the context, and > >>>that context is defacto the continuation, yes - a tail-call would > >>>inherit this information. > > > >>But as each tail-call supplies a new @ARGS, how can this be the case? > > > > We would have two parts in the context: @IN_ARGS, @OUT_ARGS. The > > C<tailcall> opcode can preserve that part with the return context. > > It seems to me that both @IN_ARGS and @OUT_ARGS get used for other > things (the tail-calls' arguments) in a chain of tail-calls. > > The definition of a tail call is that it returns its callee's results > back to its caller unmodified. Agreed, but... > So if @OUT_ARGS is used for other > things, then it's not a tail call. I don't understand. @OUT_ARGS aren't the arguments returned (to my understanding), they're the arguments to the next function in sequence. My mistake; I had thought "@OUT_ARGS" meant "results". I see I didn't read Leo's original proposal carefully enough, and you were just following his terminology; my apologies. I agree that information about return context can't live in @ARGS (in or out) directly. > . . . but the continuation (I propose) does; and this continues to be > good for whoever wants to know: the return object holds the return > context. > > No? > > regards, > Roger > > I believe so, but I think this is what Leo meant by "... that context is > defacto the continuation." There doesn't need to be a separate "return > object" because it would be one-to-one with the continuation. Sorry, by "return object" I was only meaning the continuation; you are quite right. Just using a different term for parallelism with "return context", but I see it only introduced confusion. So it sounds like we are all saying the same thing now? -- Bob