[Python-Dev] 'stackless' python?
Christian Tismer
tismer at appliedbiometrics.com
Tue May 18 17:31:11 CEST 1999
Tim Peters wrote:
>
> [Christian Tismer]
> > ...
> > Yup. With a little counting, it was easy to survive:
> >
> > def main():
> > global a
> > a=2
> > thing (5)
> > a=a-1
> > if a:
> > saved.throw (0)
>
> Did "a" really need to be global here? I hope you see the same behavior
> without the "global a"; e.g., this Scheme:
(Hüstel) Actually, I inserted the "global" later. It worked as well
with a local variable, but I didn't understand it. Still don't :-)
> Or does brute-force frame-copying cause the continuation to set "a" back to
> 2 each time?
No, it doesn't. Behavior is exactly the same with or without
global. I'm not sure wether this is a bug or a feature.
I *think* 'a' as a local has a slot in the frame, so it's
actually a different 'a' living in both copies. But this
would not have worked.
Can it be that before a function call, the interpreter
turns its locals into a dict, using fast_to_locals?
That would explain it.
This is not what I think it should be! Locals need to be
copied.
> > and needs a much better interface.
>
> Ya, like screw 'em and use threads <wink>.
Never liked threads. These fibers are so neat since
they don't need threads, no locking, and they are
available on systems without threads.
> > But finally I'm quite happy that it worked so smoothly
> > after just a couple of hours (well, about six :)
>
> Yup! Playing with Python internals is a treat.
>
> to-be-continued-ly y'rs - tim
throw(42) - chris
--
Christian Tismer :^) <mailto:tismer at appliedbiometrics.com>
Applied Biometrics GmbH : Have a break! Take a ride on Python's
Kaiserin-Augusta-Allee 101 : *Starship* http://starship.python.net
10553 Berlin : PGP key -> http://wwwkeys.pgp.net
PGP Fingerprint E182 71C7 1A9D 66E9 9D15 D3CC D4D7 93E2 1FAE F6DF
we're tired of banana software - shipped green, ripens at home
More information about the Python-Dev
mailing list