[Stackless] Stackless Digest, Vol 123, Issue 9
Andrew Francis
andrewfr_ice at yahoo.com
Mon Apr 14 20:22:30 CEST 2014
Hi Folks:
Some thoughts:
In playing with stackless.py, I liked the original version more than the current version.
In the original stackless.py, one had the choice of low-level concurrency, either greenlets if working with CPython, PyPy's coroutine library.
The latest version of stackless.py removed greenlet support. This is a pity. I liked the layering, separating high level API from low level concurrency. I grew up reading Andrew Tannenbaum and Douglas Comer.
I originally directly hacked on stackless.py. Now I realise this was a really bad idea. One reason I haven't put join and select stuff in github is that I am trying to refactor the code so I can get it running on C based Stackless Python, CPython with greenlets, and PyPy. I have started. I have to revisit my notes to give specifics but I found that it helps if the scheduler stuff has more API functions. So one can even experiment with, say a channel re-implementation with Stackless Python (as opposed to with stackless.py).
example:
selectStackless.py, code should look something like
# import underlying functionality
import stackless
# however we export selectStackless.py functionality
__all__ = 'run getcurrent getmain schedule tasklet channel select'.split()
# we re-implement channel
class channel(object):
.
.
# and select
def select(.....):
layer 3 - select, join, channel-reimplementations, whatever else
layer 2 - channels
layer 1 - Tasklets, scheduler, atomic
layer 0 - tealets, greenlets
As for PyPy continuations. I think the current problem is with pickling. When I have time, I'll look for the reference in the PyPy mailing list.
Cheers,
Andrew
Message: 1
Date: Sun, 13 Apr 2014 12:07:37 -0400
From: Alain Poirier <alain.poirier at net-ng.com>
To: stackless at stackless.com
Subject: [Stackless] Sprinting at PyCon
Message-ID: <5AC6D14B-8E76-488A-B07A-52A6008199A0 at net-ng.com>
Content-Type: text/plain; charset=windows-1252
Hi all,
I would like to discuss how it'd be possible or not for Stackless to follow the
same path than PyPy:
- A simpler Stackless core, with only the 'tealet' / '_continuation' stack
switch, writing in C. Exposing the same API than PyPy.
IIRC, Krisjan already has such a Stackless version.
- All the high level features of Stackless like Tasklets and Channels moved to
the 'stackless.py' pure Python module.
- An emulation of the greenlets API, in a 'greenlet.py' pure Python module.
- Bonus point if these 'stackless.py' and 'greenlet.py? modeules are shared /
co-developed with the PyPy project :)
I see several advantages then:
- Greenlets and Stackless features being Python modules, easier experimentations
are possible. For example writing other scheduling policy or higher concurrency
primitives such like Andrew's select/join.
- With a 'greenlet.py' compatible module, lots of softwares like ?gevent? could
work without any modification.
- Works on 'greenlet.py' and 'stackless.py' can profit both to Python Stackless
and PyPy.
Just my 2 cents,
Alain
------------------------------
Message: 2
Date: Mon, 14 Apr 2014 09:48:56 +0200
From: Anselm Kruis <a.kruis at science-computing.de>
To: stackless at stackless.com
Subject: Re: [Stackless] Sprinting at PyCon
Message-ID: <534B92E8.5090102 at science-computing.de>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Hi Alain,
another unique feature of Stackless is pickling/unpickling of tasklets
and many other python types. This feature is essential for many
applications and probably needs some additional C-code besides 'tealet'
/ '_continuation'. That said I like your proposal, but I doubt that we
have enough man power to implement it.
Cheers
Anselm
Am 13.04.2014 18:07, schrieb Alain Poirier:
> Hi all,
>
> I would like to discuss how it'd be possible or not for Stackless to follow the
> same path than PyPy:
>
> - A simpler Stackless core, with only the 'tealet' / '_continuation' stack
> switch, writing in C. Exposing the same API than PyPy.
> IIRC, Krisjan already has such a Stackless version.
>
> - All the high level features of Stackless like Tasklets and Channels moved to
> the 'stackless.py' pure Python module.
>
> - An emulation of the greenlets API, in a 'greenlet.py' pure Python module.
>
> - Bonus point if these 'stackless.py' and 'greenlet.py? modeules are shared /
> co-developed with the PyPy project :)
>
> I see several advantages then:
>
> - Greenlets and Stackless features being Python modules, easier experimentations
> are possible. For example writing other scheduling policy or higher concurrency
> primitives such like Andrew's select/join.
>
> - With a 'greenlet.py' compatible module, lots of softwares like ?gevent? could
> work without any modification.
>
> - Works on 'greenlet.py' and 'stackless.py' can profit both to Python Stackless
> and PyPy.
>
> Just my 2 cents,
> Alain
>
>
> _______________________________________________
> Stackless mailing list
> Stackless at stackless.com
> http://www.stackless.com/mailman/listinfo/stackless
>
--
Dipl. Phys. Anselm Kruis science + computing ag
Senior Solution Architect Ingolst?dter Str. 22
email A.Kruis at science-computing.de 80807 M?nchen, Germany
phone +49 89 356386 874 fax 737 www.science-computing.de
--
Vorstandsvorsitzender/Chairman of the board of management:
Gerd-Lothar Leonhart
Vorstand/Board of Management:
Dr. Bernd Finkbeiner, Michael Heinrichs,
Dr. Arno Steitz, Dr. Ingrid Zech
Vorsitzender des Aufsichtsrats/
Chairman of the Supervisory Board:
Philippe Miltin
Sitz/Registered Office: Tuebingen
Registergericht/Registration Court: Stuttgart
Registernummer/Commercial Register No.: HRB 382196
------------------------------
_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless
End of Stackless Digest, Vol 123, Issue 9
*****************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.stackless.com/pipermail/stackless/attachments/20140414/07762323/attachment-0001.html>
More information about the Stackless
mailing list