[Stackless] Pickling example using Sieve of Eratosthenes

Andrew Dalke dalke at dalkescientific.com
Sun Nov 1 23:11:02 CET 2009


On Oct 31, 2009, at 4:27 AM, Andrew Francis wrote:
> I would appreciate comments before putting it in the Stackless  
> repository (however I do that).

As style comment only, the ()s are not usually written in 'while' and  
'if' terms. That is, lines like

    while(True):
       if (flag):

are typically written

     while True:
         if flag:


I believe you need to make
          fd = open('sieve.dat','w')
be "wb" so that it can work on Windows. I have not tested this.


I don't know if you have pedagogical reasons, but I prefer to write

def filter(prime, listen, send):
     while (True):
        i = listen.receive()
        if (i % prime):
           send.send(i)

as

def filter(prime, listen, send):
     for i in listen:
        if i % prime:
           send.send(i)



and

def counter(c):
     i = 2
     while (True):
         c.send(i)
         i += 1

as

import itertools
def counter(c):
     for i in itertools.count(2):
         c.send(i)

or even

import itertools
def counter(c):
     c.send_sequence(itertools.count(2))



I am having trouble making your demo work (after loading the image it  
still starts from the beginning), but I suspect that might be to my  
now years out of date Stackless.

Cheers,
				Andrew
				dalke at dalkescientific.com






More information about the Stackless mailing list