1. s2nek
  2. gevent


gevent / changelog.rst


Version 0.12.2

  • Fixed http server to put the listening socket into a non-blocking mode. Contributed by Ralf Schmitt.

Version 0.12.1

  • Removed a symlink from the distribution (that causes pip to fail). Thanks to Brad Clements for reporting it.
  • setup.py: automatically create symlink from build/lib.../gevent/core.so to gevent/core.so.
  • :mod:`gevent.socket`: Improved compatibility with stdlib's socket:

Version 0.12.0

Version 0.11.2

Version 0.11.1

  • Fixed bug in :func:`select.select` function. Passing non-empty list of write descriptors used to cause this function to fail.
  • Changed setup.py to go ahead with the compilation even if the actual version of libevent cannot be determined (version 1.x.x is assumed in that case).

Contributed by Ludvig Ericson:

  • Fixed :mod:`wsgi`'s start_response to recognize exc_info argument.
  • Fixed setup.py to look for libevent.dylib rather than .so on Darwin platforms.

Version 0.11.0

Version 0.10.0

The following items were added to the gevent top level package:

The following items were marked as deprecated:

Internally, gevent.greenlet was split into a number of modules:

Thanks to Jason Toffaletti for reporting the installation issue and providing a test case for WSGI double content-length header bug.

Version 0.9.3

  • Fixed all known bugs in the :mod:`gevent.queue` module and made it 2.4-compatible. :class:`LifoQueue` and :class:`PriorityQueue` are implemented as well. :mod:`gevent.queue` will deprecate both coros.Queue and coros.Channel.
  • Fixed :class:`Timeout` to raise itself by default. TimeoutError is gone. Silent timeout is now created by passing False instead of None.
  • Fixed bug in :func:`gevent.select.select` where it could silent the wrong timeout.
  • :func:`spawn` and :func:`spawn_later` now avoid creating a closure and this decreases spawning time by 50%.
  • kill's and killall's wait argument was renamed to block. The polling is now implemented by greenlet.join and greenlet.joinall functions and it become more responsive, with gradual increase of sleep time.
  • Renamed proc.RunningProcSet to proc.ProcSet.
  • Added :func:`shutdown` function, which blocks until libevent has finished dispatching the events.
  • The return value of event_add and event_del in core.pyx are now checked properly and :exc:`IOError` is raised if they have failed.
  • Fixed backdoor.py, accidentally broken in the previous release.

Version 0.9.2

Version 0.9.1

  • Fixed compilation with libevent-1.3 (Thanks to Litao Wei for reporting the problem.)
  • Fixed :class:`Hub` to recover silently after event_dispatch() failures (I've seen this happen after fork even though event_reinit() is called as necessary). The end result is that :func:`fork` now works more reliably, as detected by test_socketserver.py - it used to fail occasionally, now it does not.
  • Reorganized the package, most of the stuff from gevent/__init__.py was moved to gevent/greenlet.py. gevent/__init__.py imports some of it back but not everything.
  • Renamed gevent.timeout to :class:`gevent.Timeout`. The old name is available as an alias.
  • Fixed a few bugs in :class:`queue.Queue`. Added test_queue.py from standard tests to check how good is :class:`queue.Queue` a replacement for a standard :mod:`Queue` (not good at all, timeouts in :meth:`queue.Queue.put` don't work yet)
  • :mod:`monkey` now patches ssl module when on 2.6 (very limited support).
  • Improved compatibility with Python 2.6 and Python 2.4.
  • Greenlet installed from PyPI (without py.magic prefix) is properly recognized now.
  • core.pyx was accidentally left out of the source package, it's included now.
  • :class:`GreenSocket <socket.socket>` now wraps a socket object from _socket module rather than from :mod:`socket`.

Version 0.9.0

Started as eventlet 0.8.11 fork, with the intention to support only libevent as a backend. Compared to eventlet, this version has a much simpler API and implementation and a few severe bugs fixed, namely

There's a test in my repo of eventlet that reproduces both of them: http://bitbucket.org/denis/eventlet/src/tip/greentest/test__socket.py

Besides having less bugs and less code to care about the goals of the fork are:

  • piggy-back on libevent as much as possible (use its http and dns code)
  • use the interfaces and conventions from the standard Python library where possible