Stackless Python 1.0 + co-module 0.6 this weekend (was: "sins")

Christian Tismer tismer at appliedbiometrics.com
Thu Dec 30 15:05:47 EST 1999


Neel Krishnaswami wrote:
> 
> Dan Schmidt <dfan at harmonixmusic.com> wrote:
> >neelk at brick.cswv.com (Neel Krishnaswami) writes:
> >
> >| The general problem that needs fixing is that Python really needs a
> >| better iteration protocol. (I understand that Guido has worked one
> >| out, but hasn't yet implemented it. You may want to contact him so
> >| that the two of you can use Viper as a test bed for advanced Python
> >| ideas.)
> >
> >Anyone who is interested in better iteration protocols would probably be
> >interested in looking at how Sather does it.  Sather is an Eiffel-like
> >language with a home page at <http://www.icsi.berkeley.edu/~sather/>;
> >it performs iteration with coroutines, basically.
> 
> It *looks* like with Christian Tismer's Stackless Python, it should be
> straightforward to implement Sather-style iterators, since Stackless
> IIRC has first-class continuations. If I have time this weekend I'll
> give it a shot.

I'd be very much interested to see these.
Most probably I will publish SLP 1.0 this weekend (no idea wether
before or after Y2K) together with continuations 0.6 which is
very very stable as far as I can tell.

There will then be some further optimized versions of SLP, and
the co-module will move on with it. The next planned steps
(all before the IPC8 show of course) are:
1) simplify SLP by adding one more callback
2) add some structure to the threadstate structure to support
   microthread switching
3) further simplifications of the co-module
4) frame caching for code objects
5) slight optimizations to the eval loop

This should result in a performance boost which gets SLP
near standard Python, and makes the use of continuations
definately faster than function calls.

The long term direction will be to move away from all too
much compatibility. I will extend the frame interface, bundle
the eval functions into an interpreter object, try caching of
memory de/allocations with frame instances, minimize frame
size, try pickling the execution state, and provide an
API for pluggable interpreters.

My current paper on continuations and Stackless Python can
be previewed at

http://www.tismer.com/research/stackless/spcpaper.htm

-- 
Christian Tismer             :^)   <mailto:tismer at appliedbiometrics.com>
Applied Biometrics GmbH      :     Have a break! Take a ride on Python's
Düppelstr. 31                :    *Starship* http://starship.python.net
12163 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-list mailing list