[Stackless] Stackless Python 2.1 plans

Christian Tismer tismer at tismer.com
Wed Feb 21 17:39:52 CET 2001

Here a short summary what I am working on.
Please give me feedback if you have different priorities
or other proposals.

Stackless Kernel maintenance:
Actually, I'm trying to make alll the changes for Python 2.1a2 .
There is quite a lot, since we now have nested scopes and
weak references in Python.

Design change for frames?
For some time I thought it would make sense to add
garbage collection to frames, in order to get less cycles
with coroutine and other applications. Actually I dropped
this in favor of weak references, see below.

After the 2.1 port, I think to add weak references. For those
who know the sources this isn't new: Already in pre-2.0 Stackless
there was some initial coding for weak references, but not finished.
With support from Standard Python, this might have become dispensable.

Continuation objects will get an option to create a weak reference.
As the effect, continuation variables which refer to the current
frame do not create cycles.
It isn't still clear to me where exactly to put the weakness.
I think it would be most efficient to do this with the "node"
object. All continuation frames have references to the "current"
frame via this node object. Some of these may be weak references,
in a sense that the "should not keep the frame chain alive".
An example application is monitoring microthreads or coroutines
by taking continuation snapshots without prevending their destruction.

The concept isn't complete clear to me yet, and I need some input.

Coroutines, Microthreads
After the port, Coroutines and Microthreads will get more direct
support from C code, independently from continuationmodule.
I will try to follow Guido's outline of coroutines as much as
possible. It can be found in "coro.py" in the win32 installation
of Stackless. 

Comments are most welcome - chris

Christian Tismer             :^)   <mailto:tismer at tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Kaunstr. 26                  :    *Starship* http://starship.python.net
14163 Berlin                 :     PGP key -> http://wwwkeys.pgp.net
PGP Fingerprint       E182 71C7 1A9D 66E9 9D15  D3CC D4D7 93E2 1FAE F6DF
     where do you want to jump today?   http://www.stackless.com
Stackless mailing list
Stackless at starship.python.net

More information about the Stackless mailing list