[Python-ideas] [Python-Dev] PyParallel: alternate async I/O and GIL removal

Trent Nelson trent at snakebite.org
Sun Nov 17 03:24:56 CET 2013


On Sat, Nov 16, 2013 at 05:39:13PM -0800, Guido van Rossum wrote:
>    Trent, I watched your video and read your slides. (Does the word
>    "motormouth" mean anything to you? :-)

    Side-effect of both a) not having time to rehearse, and b) trying
    to compress 153 slides into 45 minutes :-)

>    Finally, I'm not sure why you are so confrontational about the way Twisted
>    and Tulip do things. We are doing things the only way they *can* be done
>    without overhauling the entire CPython implementation (which you have
>    proven will take several major release cycles, probably until 4.0). It's
>    fine that you are looking further forward than most of us. I don't think
>    it makes sense that you are blaming the rest of us for writing libraries
>    that can be used today.

    I watched the video today; there's a point where I say something
    along the lines of "that's not how you should do IOCP; they're
    doing it wrong".  That definitely came out wrong -- when limited
    to a single-threaded execution model, which today's Python is, then
    calling GetQueuedCompletionStatus() in a single-threaded event loop
    is really the only option you have.

    (I think I also say "that's just as bad as select()"; I didn't mean
     that either -- it's definitely better than select() when you're
     limited to the single-threaded execution model.  What I was trying
     to convey was that doing it like that wasn't really how IOCP was
     designed to be used -- which is why I dig into the intrinsic link
     between IOCP, async I/O and threading for so many slides.)

    And in hindsight, perhaps I need to put more emphasis on the fact
    that it *is* very experimental work with a long-term view, versus
    Tulip/asyncio, which was intended for *now*.  So although Tulip and
    PyParallel spawned from the same discussions and are attempting to
    attack the same problem -- it's really not fair for me to discredit
    Tulip/Twisted in favor of PyParallel because they're on completely
    different playing fields with vastly different implementation time
    frames (I'm thinking 5+ years before this work lands in a mainstream
    Python release -- if it ever does.  And if not, hey, it can live on
    as another interpreter, just like Stackless et al).

>    Clearly your work isn't ready for python-dev -- it is just too
>    speculative. I've moved python-dev to BCC and added python-ideas.
> 
>    It possibly doesn't even belong on python-ideas -- if you are serious
>    about wanting to change Linux or other *NIX variants, you'll have to go
>    find a venue where people who do forward-looking kernel work hang out.

    Yeah this e-mail was more of a final follow up to e-mails I sent to
    python-ideas last year re: the whole "alternate async approach"
    thread.  (I would have replied to that thread directly, had I kept it
    in my inbox.)



        Trent.


More information about the Python-ideas mailing list