[Stackless] More on a Stackless Select

Andrew Francis andrewfr_ice at yahoo.com
Sat Apr 17 18:05:47 CEST 2010

Hi Christian:

--- On Fri, 4/16/10, Christian Tismer <tismer at stackless.com> wrote:

> From: Christian Tismer <tismer at stackless.com>
> Subject: Re: [Stackless] More on a Stackless Select
> To: "Andrew Francis" <andrewfr_ice at yahoo.com>
> Cc: "The Stackless Python Mailing List" <stackless at stackless.com>
> Date: Friday, April 16, 2010, 8:55 PM

> If you are using real channels to implement channel sets,
> and you are not going to change the C code, then you definately
> need one tasklet per channel, that blocks on it until there is
> activity.Then the tasklet cleans up what is needed to clean up, and
> sends or receives on the channel where the target tasklet is
> waiting on.

Yes Christian you are definitely right. Hence my initial post about being
optimistic. A little bit of channel C code would be required to get a select to work. This is what I have gathered from prototying with stackless.py. I work with Stephan Diehl's stackless.py because it most 
closely approximates the stackless module (it has many problems but 
I admire Stephan's code and I appreciate his help). 

However my goals are: short term: figure out the minimum amount
of C changes required to support a select like mechanism as either a
C extension, or a Python module; long term: how best to implement
a select like mechanism. Again, I am happy to do the ground work
for exploration.

In the process, this exercise is forcing me to look at actual Stackless
Python C code. And if I have time, I will make changes to a private
version of Stackless to see if my hunches are right and I will put in
out so people can improve it or can it.

Your new psyco module provides for a neat experiment. If I can figure out the minimum set of hooks - we can see how well psyco speeds up a Python based select. This should be fun. 

> Priorities? Forget it. 

Yes you are right.

Slightly off topic. I had been reading go-lang nuts. There was topic
on join calculus, a fancy term for implementing joins. I ought to throw
in my two cents on the topic. I believe by having a select as a class
rather than a language feature, I feel makes implementing different 
types of joins much easier in Stackless than Go. 

Off topic. What is it like in Iceland with that big volcanic eruption? :-)



More information about the Stackless mailing list