Arthur Bergman <[EMAIL PROTECTED]> wrote:

> On 2 May 2004, at 11:47, Leopold Toetsch wrote:

>>   Parrot_init_stacktop(Interp*, void*);
>>
>> This function can be used as a replacement for Parrot_init(). I hope
>> that simplifies step 1)

> No, it entirely misses the point, every time I call into parrot the
> place I called parrot_init_stacktop might not, or most likely will not
> be in my current stack.

Can't you call that somewhere in an outer frame? E.g. where you create
the interpreter.

> Is the stacktop per interpreter?

Yes. But DOD/GC with mutiple interpreters/threads isn't really
investigated especially when there are shared PMCs.

> What then would be needed is a set_stacktop(Interp*, void*) function.

You can use above function exactly for this. If the interpreter is
initialized it skips that part and just sets the stack top. But calling
Parrot_init_stack() in the same stack frame, where automatic PMC
variables are located might or might not work, because you don't know
the order of automatic variables in the stack frame.

> Arthur

leo

Reply via email to