Melvin Smith <[EMAIL PROTECTED]> writes:
> At 06:37 PM 1/7/2004 -0700, Luke Palmer wrote:
>>Leopold Toetsch writes:
>> > Jeff Clites <[EMAIL PROTECTED]> wrote:
>> > > On Jan 7, 2004, at 1:46 AM, Leopold Toetsch wrote:
>> > >> That part is already answered: create a buffer_like structure.
>> > >> *But* again register backing stacks are *not* in the interpreter
>> > >> context.
>> >
>> > > I don't understand what you are getting at. They are not physically
>> > > part of Parrot_Interp.ctx, but it holds pointers to them, right?
>> >
>> > No, they were in the context but aren't any more.
>> >
>> > > ... So,
>> > > they need to be copied when the context is being duplicated. Is that
>> > > your point, or are you trying to say that they are not _logically_ part
>> > > of the context, or are not supposed to be?
>> >
>> > Exactly the latter:
>> > That was AFAIK a design decision, when Dan did introduce CPS. At this
>> > time register backing stacks went out of the continuation or whatelse
>> > context - IIRC did Dan commit that to CVS himself.
>>
>>In which case I feel obliged to contest that decision.  The register
>>backing stacks are as much a part of the current state as the program
>>counter is.
>
> I tend to agree, but maybe Dan can explain. I looked back at the
> CVS history and when I put continuations in, I did originally have
> register stacks in the Parrot_Context (although they weren't yet
> garbage collected). Dan since reverted that and put them back to
> the top level interpreter object.

I also agree. Continuations that don't save the register stacks are
about as much use as a chocolate teapot. Maybe it was supposed to be a
temporary reversion until GC got sorted.

Reply via email to