Stackless Python is offering projects for the Google Summer of Code in 2009 under the Python Software Foundation umbrella.
- Asynchronous IO support
Languages: C or C++ (framework implementation), Python (unit tests, examples).
One of the problems with using a microthreading framework, such as Stackless Python, is that asynchronous IO needs to be used so that the scheduling of microthreads can proceed while the IO happens in the background. Microthreads waiting on IO to complete are blocked until that happens.
This project would require the writing of a Stackless-based framework to wrap and manage the use of asynchronous IO. This framework should be cross platform. It would wrap IO in such a way that the IO can continue to be used as it would normally within Python, for instance as the ''socket'' module.
CCP Games has already written an IO framework for Microsoft Windows that wraps socket IO. It may be that this can be released as open source, and that a student would take it and make it cross platform, potentially extending it to support file IO as well. There is also the possibility where this framework cannot be released for various reasons and a different scope would have to be agreed to.
- Debugging support
Languages: C (Stackless debugging support examination / possibly also modification), Python (unit tests, debugger support).
Debugging in Stackless Python has a different paradigm. Code runs within the tasklets which Stackless provides.
This task would involve implementing support for Stackless as naturally as possible within the standard library debugging functionality. It would also involve extending external debugging solutions to support Stackless as well.
Languages: C, Python, reStructuredText.
Stackless has no formal documentation. This project would entail fully documenting both the Python and C APIs, and supplementing the documentation with scads of examples.
Documentation would be implemented using Sphinx, the system used to document Python itself, and would extend the Stackless version of that Python documentation.