[Stackless] Implementing CSP

Tom Locke tom at livelogix.com
Tue Jan 6 13:32:48 CET 2004

Hi All,

Back in July, I posted about my interest in moving the CSP
implementation along, and quickly vanished without trace. Well I'm still
interested. In fact, this has pretty much bubbled up to the top of my to
do list. It's looking dangerously likely that I'm going to roll up my
sleeves and get this implemented.

I've just downloaded the latest source from CVS, and am in the process
of getting my head around the overall architecture. This is the first C
level Python hacking of any sort that I've done, so I'm looking at a bit
of a learning curve.

It's also a while since I've been in CSP mode, so I'm blowing the
cobwebs out of that part of my brain too.

Let's see, for full CSP we'll be needing...

Channels, with blocking input and output - check

Timers - check? I've seen some evidence of this but I've not figured it
out yet. Does the current scheduler implement a timer queue? If so, how
does this interact with support for 'user schedulers'?

PAR - I guess this is first on my list.

And of course...

ALT - which is the gnarly bit, but OTOH well understood. Shouldn't be
too hard to borrow from the existing CCSP implementation. 

Then of course there's PRI PAR and PRI ALT, but I'll be giving these a
miss for the time being.

So... some requests for assistance...

First with building, which I haven't had a crack at yet. I've probably
got an old copy of VC6 kicking around, but I'd rather go with cygwin or
mingw. Should a simple "./configure; make" just work?

I'd also *really* appreciate some help with understanding the
architecture. I know that's a hopelessly open ended request, but if
anyone would care to post (or point me to) a short high-level
description, I can drill down with more specific questions if/when I
need to.

Perhaps a very brief glossary of important functions and data types?

I'll be slogging through this the hard way anyway, over the coming week.
At least there's not too much code there - just 14 .c files in
src/Stackless. Anywhere else I should be looking?

Oops - gotta dash - more tomorrow.


Stackless mailing list
Stackless at stackless.com

More information about the Stackless mailing list