Stackless 3.0 alpha 1 at blinding speed

Courageous jkraska at san.rr.com
Mon Apr 21 18:04:11 CEST 2003


>> actually the meat of what it is. In unix, theoretically one could
>> set up the heavy weight equivalent of a continuation by the use of
>> setjmp and
>
>Really?  I thought longjmp could only go back up the call stack,...

One *can* on some systems, although this isn't portable, and not
supported on many, and guaranteed on none. Hence in the part you
deleted: "although certain patterns of setjmp/longjmp aren't
always safe." :)

>       1. execution context is preserved
>       2. You can transfer control up, down, or between call stacks.

That's correct.

>Also, "stacklessness" is really an implementation detail AFAICT - it
>just says that all execution context is stored in
>dynamically-allocated structures instead of using local variables on
>the 'C' stack (via a recursive-calling implementation).
>
>Have I misunderstood this whole thing?

Nope. You've gotten it. "Stacklessness" as part of an implementation
detail essentially advertises certain probable features of the continuation
environment, but nothing more than whatever you decide is implied. :)

C//





More information about the Python-list mailing list