The short answer is, PyPy has its own implementation of greenlets, https://bitbucket.org/pypy/pypy/src/default/lib_pypy/greenlet.py , this is built on top of a module called _continuation, http://doc.pypy.org/en/latest/stackless.html contains some of the details of how it works.
Alex On Sun, Sep 15, 2013 at 2:43 PM, Joshua Harlow <harlo...@yahoo-inc.com>wrote: > Cool, > > Are there any technical docs for how eventlet/greenlet work in PyPy, > > From my knowledge of greenlet its doing some pretty low level stuff that > would seem hard to mirror in PyPy. > > https://github.com/python-greenlet/greenlet/blob/master/greenlet.c#L9 > > And the very platform specific stack switching functions @ > https://github.com/python-greenlet/greenlet/tree/master/platform > > It would seem like greenlet is pretty tightly coupled to the cpython and > its functionality. I'd like to know how it can operate in pypy without > major modifications, maybe u know of such a documentation that explains > this. I'd be interested in reading that at least (maybe others would like > to also). > > :-) > > -Josh > ------------------------------ > *From:* Alex Gaynor [alex.gay...@gmail.com] > *Sent:* Tuesday, September 10, 2013 8:18 AM > *To:* OpenStack Development Mailing List > *Subject:* Re: [openstack-dev] OpenStack + PyPy: Status and goals > > Hi Roman, > > Yes eventlet works well on PyPy, both Marconi and Swift use it. > > Alex > > > On Mon, Sep 9, 2013 at 10:15 PM, Roman Podolyaka > <rpodoly...@mirantis.com>wrote: > >> Hi Alex, >> >> That's really cool! I believe, performance is not the only benefit we >> can get from running OpenStack projects on PyPy. We can also improve the >> overall "correctness" of our code (as PyPy behaves differently with >> non-closed files, etc), just like compiling of your C/C++ app using >> different compilers can show hidden errors. >> >> And what about eventlet? Does it work well on PyPy? (as it is used in >> Nova, Neutron, etc) >> >> Thanks, >> Roman >> >> >> On Tue, Sep 10, 2013 at 12:28 AM, Alex Gaynor <alex.gay...@gmail.com>wrote: >> >>> Hi all, >>> >>> Many of you have probably seen me send review requests in the last few >>> weeks >>> about adding PyPy support to various OpenStack projects. A few people >>> were >>> confused by these, so I wanted to fill everyone in on what I'm up to :) >>> >>> First, for those who aren't familiar with what PyPy is: PyPy is an >>> implementation of the Python language which includes a high performance >>> tracing >>> just-in-time compiler and which is faster than CPython (the reference, >>> and most >>> widely deployed, implementation) on almost all workloads. >>> >>> The current status is: >>> >>> Two major projects work, both Marconi and Swift, Marconi is gating >>> against PyPy >>> already, Swift isn't yet since I needed to fix a few small PyPy bugs and >>> those >>> aren't in a release yet, expect it soon :) >>> >>> In terms of results, I've observed 30% performance improvements on GET >>> workloads for Swift under PyPy vs. CPython (other workloads haven't been >>> benchmarked tet). I believe the Marconi folks have also observed some >>> performance wins, but I'll let them speak to that, I don't have the full >>> details. >>> >>> Many python-clients projects are also working out of the box and >>> gating: >>> including novaclient, swiftclient, marconiclient, ceilometerclient, >>> heatclient, >>> and ironicclient! >>> >>> There's a few outstanding reviews to add PyPy gating for cinderclient, >>> troveclient, and glanceclient. >>> >>> In terms of future direction: >>> >>> I'm going to continue to work on getting more projects running and >>> gating >>> against PyPy. >>> >>> Right now I'm focusing a lot of my attention on improving Swift >>> performance, >>> particularly under PyPy, but also under CPython. >>> >>> I'm hoping some day PyPy will be the default way to deploy OpenStack! >>> >>> >>> If you're interested in getting your project running on PyPy, or >>> looking at >>> performance under it, please let me know, I'm always interested in >>> helping! >>> >>> Thanks, >>> Alex >>> >>> -- >>> "I disapprove of what you say, but I will defend to the death your right >>> to say it." -- Evelyn Beatrice Hall (summarizing Voltaire) >>> "The people's good is the highest law." -- Cicero >>> GPG Key fingerprint: 125F 5C67 DFE9 4084 >>> >>> _______________________________________________ >>> OpenStack-dev mailing list >>> OpenStack-dev@lists.openstack.org >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >>> >>> >> >> _______________________________________________ >> OpenStack-dev mailing list >> OpenStack-dev@lists.openstack.org >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev >> >> > > > -- > "I disapprove of what you say, but I will defend to the death your right > to say it." -- Evelyn Beatrice Hall (summarizing Voltaire) > "The people's good is the highest law." -- Cicero > GPG Key fingerprint: 125F 5C67 DFE9 4084 > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > > -- "I disapprove of what you say, but I will defend to the death your right to say it." -- Evelyn Beatrice Hall (summarizing Voltaire) "The people's good is the highest law." -- Cicero GPG Key fingerprint: 125F 5C67 DFE9 4084
_______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev