[Python-Dev] Ann: Stackless Limbo Dancing Works Fine!

Christian Tismer tismer@tismer.com
Sat, 18 May 2002 03:30:41 +0200

Stackless Python At It's Best, Ever.

18-May-02: Limbo Dancing works fine! Yet some more thinking for weeks, 
and a few days of implementation. Now, the first implementation of 
channels is available. It isn't complete, but works just fine. The 
stackless module now supports to create channels by function channel(). 
A channel has the methods send() and receive(). Try it yourself! You 
might either want to build your own Stackless, checking out the module 
stackless from :pserver:anonymous@tismer.com:/home/cvs , or, for Windows 
users, just take the pre-built binary, extract it into some directory, 
and start Python or PythonWin fom there. I will for sure build an 
installer again, after I have got some feedback.

This implementation tries to follow the concepts of the OCCAM/ALEF/LIMBO 
languages by supporting the channel concept as the central 
communication/blocking/control feature. Tasks do not communicate 
directly, but through channels.

You might have guessed it: Stackless will try to implement/support 
Hoare's CSP, finally. But before, I have to understand more of it. This 
will happen in the next few weeks.

This release is an alpha release. There are most probably a lot of 
omissions. Some are obvious:

- There isn't yet a scheduler, like there was one for the uthread 
module. This is trivial to implement and will be added in almost no time.

- There isn't yet an ALT/PRI ALT construct like in OCCAM/ALEF/LIMBO. 
This is most sophisticated and very hard to implement correctly! I will 
try to find out how to do this the best way, during my stay at IronPort, 
from May 18th to May 29. If somebody from the US would like to contact 
me by phone, please use the opportunity and call me via IronPort. I am 
employed by this company.

- You shouldn't use channels from the interpreter prompt, but in 
scripts, only. The machinery doesn't check for changed interactive 
sessions yet and will most likely crash, soon. Despite of that, it seems 
to work nicely with PythonWin and extensions.
Christian Tismer             :^)   <mailto:tismer@tismer.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  pager +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/