On Jun 2, 2004, at 1:58 AM, Martin v. Löwis wrote:
Bob Ippolito wrote:
Well the tasklet/channel model of Stackless is a single threaded version of CSP, which has at least one Java implementation: http://wotug.kent.ac.uk/parallel/languages/java/jcsp/
However, JCSP uses java.lang.Threads to implement concurrency. So they are completely unlike Stackless' tasklets in their implementation strategy.
So what, if the API is the same?
That, of course, doesn't cover every single function that the Stackless API currently exposes, but tasklets/channels are the raison d'etre.
That sounds strange. I would have expected that the reason for Stackless Python is to have no stack, not to have tasklets.
If you only wanted tasklets, you could implement them on top of threads, without any need for extensions.
You're kidding, right?
Using the stack or not is an implementation detail, what matters is having more control over the flow of your programs in a reasonably efficient manner. It just so happens that the recursive evaluation in CPython uses the stack in such a way that makes these kind of constructs impossible, so it needed to be changed for Stackless.