Message: 8
Date: Tue, 19 Jan 2010 11:19:06 +0200
From: Yuval <[email protected]>
To: [email protected]
Subject: [Stackless] Should I use stackless
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
>1. The ability to freeze the script on a blocked channel and return to it
>>once data is made available.
I will assume you mean suspend a tasklet as opposed to freeze the script.
> So now for my questions:
>1. Am I missing something? Is there any fundamental reason the concept
>>shouldn't work?
Since you are dealing with networks, I think a big issue will be dealing
with blocking I/O, especially network based I/O. Since stackless tasklets
execute in user space (within the context of an OS thread), the OS does not
know about them. A consequence is if a tasklet makes a system call that blocks,
all the tasklets in the thread are blocked. However there are solutions. You
have a few choices ranging from asyncore, stacklesssocket to Twisted.
> b. Memory usage: Having these multiple frozen scripts assumes that >their
> memory utilisation is not extreme. Is there a large memory overhead >for each
> tasklet? How large is a typical frozen tasklet?
>From what I can tell, overhead for tasklets is very small. One of these
days I want to use guppy/Heapy (if it will work properly with stackless)
to get a better indication.
> c. Should I pickle the tasklet instead of freezing it and then rerun >it.
> Would that be extremely CPU intensive? Would pickling a tasklet be a >great
> memory saver? I should note that I expect most scripts to be pretty >basic.
> They should extend the device functionality but not replace its >core
> functionality.
I don't know what you mean by 'freeze'? The main thing that attracted me
to Stackless was the ability to pickle tasklets. In the world of electronic
orchestration, this is called 'hydration.' In the world of business processes,
it is possible for a programme to wait days if not weeks for a message to
arrive (i.e., back ordering supplies)! If you have a lot of these critters, you
may want to hydrate them. Another nifty possibility is if the load is too great
on a machine, migrating them to another.
>3. The future: What's Stackless development model in relation to the main
>>Python branch.
So far it is tracking Standard Python.
>4. Any ideas on how to sell Stackless Python? I've been told that >scripting
>languages are like a religion, logic does not always enter into >the
>discussion ;-) , but I'm still trying.
Show something that is easy in Stackless but is really difficult in another
language. Although I didn't have a chance to demonstrate it for the Montreal
Python User's group, I have a version of the sieve of Eratosthenes that can be
pickled and restarted.
Cheers,
Andrew
_______________________________________________
Stackless mailing list
[email protected]
http://www.stackless.com/mailman/listinfo/stackless