gevent 1.5a1 released

126 views
Skip to first unread message

Jason Madden

unread,
May 2, 2019, 12:06:02 PM5/2/19
to gev...@googlegroups.com
gevent 1.5a1 has just been released to PyPI.[1]

Major changes include removal of support for the EOL Python 3.4, and addition of support for PyPy 7. There are also packaging changes, the most notable of which is that binary wheels for Linux are now built and distributed using PEP 571's manylinux2010 tag[2], which allows them to include the (optional) libuv backend. This is a step towards the planned ultimate deprecation and removal of the libev backend in favor of libuv. Other packaging changes are intended to help downstream packagers.

As always, feedback on these and other changes is appreciated[3]. The complete changelog is at http://www.gevent.org/changelog.html#a1-2019-05-02

This version is marked alpha because it is not yet feature complete; however it should generally be as stable and usable as version 1.4.0. I encourage trying 1.5a1 out.

-- Jason

[1] https://pypi.org/project/gevent/1.5a1/
[2] https://www.python.org/dev/peps/pep-0571/
[3] https://github.com/gevent/gevent/issues

Kevin Tewouda

unread,
May 4, 2019, 4:07:37 AM5/4/19
to gev...@googlegroups.com
Hi Jason,
Thank you for all your effort. a question comes to mind: why will libev be withdrawn in favor of libuv? Is it slower or less stable than the latter?

Have a nice day :)

--
You received this message because you are subscribed to the Google Groups "gevent: coroutine-based Python network library" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gevent+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Tewouda T. R. Kevin
Ingénieur informatique options génie logiciel et réseaux informatiques à 3IL
Titulaire d'un diplôme post master en télécoms à Télécoms Paris Tech
Consultant informatique pour le compte d'Alten

Jason Madden

unread,
May 4, 2019, 7:05:45 AM5/4/19
to gev...@googlegroups.com


> On May 4, 2019, at 03:07, Kevin Tewouda <lewo...@gmail.com> wrote:
>
> Thank you for all your effort. a question comes to mind: why will libev be withdrawn in favor of libuv? Is it slower or less stable than the latter?
>

The major differences are outlined at http://www.gevent.org/loop_impls.html. To summarize, in libuv's favor, libuv appears to have broader, more well maintained platform support, a more open development model (including a modern VCS, public CI, and a public issue tracker), a more modern, readable codebase, and the addition of higher-level APIs gevent could use to offload more work down into the C implementation. Not to jump on the bandwagon du jour, but those attributes seem to make it the better bet going forward. Two concerns with libuv are that it caps the resolution of timers across platforms to 1ms, and I'd like to have a better signal handling story on POSIX.

-- Jason

Kevin Tewouda

unread,
May 4, 2019, 9:09:52 AM5/4/19
to gev...@googlegroups.com
Thank you for the explanation! You also mentionned in the documentation that libev-cffi may become the default and replace libev. May be you should remove that note.
Also you mentioned in changelog that Spawning greenlets can be up to 10% faster. Is it the fact that you updated libuv backend? or it is something else?

Best regards.

--
You received this message because you are subscribed to the Google Groups "gevent: coroutine-based Python network library" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gevent+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jason Madden

unread,
May 4, 2019, 9:31:06 AM5/4/19
to gev...@googlegroups.com


> On May 4, 2019, at 08:09, Kevin Tewouda <lewo...@gmail.com> wrote:
>
> Thank you for the explanation! You also mentionned in the documentation that libev-cffi may become the default and replace libev. May be you should remove that note.

That's still true. Because the libev-cffi backend and the libuv-cffi backend are able to share much code, while the libev Cython backend is completely independent, one possible transition plan is to first move to libev-cffi by default. In that way we can help shake out any remaining issues with the CFFI implementations while still relying on libev. After that, we make libuv-cffi the default, thus isolating the changes to one thing at a time (first CFFI vs Cython, and only then libuv vs libev). At that time we would could remove the Cython implementation.

I'm still contemplating making the switch to libev-cffi by default during the 1.5 pre-releases. Feedback is much appreciated!

> Also you mentioned in changelog that Spawning greenlets can be up to 10% faster. Is it the fact that you updated libuv backend? or it is something else?

No, spawning greenlets has nothing to do with the backend in use. The speedups were a result of fixing issue 1363 in PR 1379. I'll clarify that in the change log.

-- Jason

Kevin Tewouda

unread,
May 4, 2019, 11:19:23 AM5/4/19
to gev...@googlegroups.com
OK thanks for the precise explanation and thank you for maintaining this great project. We need this in this asyncio world nowadays. I will try it in my next project.

Best regards

--
You received this message because you are subscribed to the Google Groups "gevent: coroutine-based Python network library" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gevent+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages