[Stackless] Some open Stackless-related programming tasks

Richard Tew richard.m.tew at gmail.com
Sun Aug 22 11:27:45 CEST 2010


While I remember, here's a list of programming related tasks, which
someone who wants to get more in-depth with Stackless might try.

Arguments to stackless.run (easy): Currently, someone customises the
behaviour of the scheduler, by passing a variety of keyword arguments
to this function.  However, you can also cause the scheduler to run in
limited bursts by using channels or calling run on specific tasklets.
It would be nice to be able to set some of those customised behaviours
without having to call this function, so that those other bursts of
scheduler running can also engage in those behaviour.  One small C
programming level project might be to investigate which run flags are
suitable for use outside of run() and expose an API through which they
can be set directly.

Bug fixing stacklesssocket (easy):  As my previous email stated, my
focus in getting the module to be testable with the Python standard
library unit tests, was TCP.  Because of this, there are two UDP unit
tests which fail.  One small Python project which would give the
chance to get famliar with how this module works, and even how UDP
sockets work to some degree, would be to look into these two failures
and to prepare a patch to fix them.

Investigating tasklet threads support (hard):  I referenced that this
needs some work in the stacklesssocket related post earlier today, and
went into further detail in a reply to a response to that post.  One
larger and more complex C programming level project might be to
investigate how this works, whether it is possible to make it more
consistent or change it to work in a more useful way.  Then to provide
a patch that implements an agreed upon solution.  Anyone who wants to
learn more about this area may want to just look into the low level
mechanics and then participate discussing a solution, for someone else
(perhaps Kristjan Valur or I) to write the patch.  The research and
discussion is the barrier to it getting done in any case.

Porting Stackless example code to Python 3.x (easy to hard):  The
Stackless examples project is primary oriented about code for Python
2.x.  There are some modules like stacklesssocket, that provide an
alternate Python 3.x version, but even so that code is probably old
and unmaintained.  It would be good to get updated Python 3.x versions
of the scripts written, to put alongside the Python 2.x versions.
e.g. 'stacklesssocket.py' & 'stacklesssocket3.py'.  The hard part of
this task is in relation to stacklesssocket which deals with Python
version dependent implementation details, and may require extensive
rewrites to get working with Python 3.x.  However, even in this case,
there is a 'stacklesssocket30.py' which may have already done most of
the work.


More information about the Stackless mailing list