Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gevent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gevent
Commits
790d6e12
Commit
790d6e12
authored
Jan 27, 2018
by
Jason Madden
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Tweak changenote. [skip ci]
parent
fc42ffe5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
70 additions
and
54 deletions
+70
-54
CHANGES.rst
CHANGES.rst
+62
-54
scripts/releases/geventrel.sh
scripts/releases/geventrel.sh
+5
-0
scripts/releases/geventreleases.sh
scripts/releases/geventreleases.sh
+3
-0
No files found.
CHANGES.rst
View file @
790d6e12
...
...
@@ -50,11 +50,11 @@ Platform Support
on POSIX platforms under Python 3.6. Now it also works on Windows under
Python 3.6 (as expected) and is backported to all previous versions.
- Linux CI now tests on PyPy3 3.5-5.
8
.0, updated from PyPy3 3.5-5.7.1.
See :issue:`1001`. PyPy2 has been updated to 5.
8
.0 from 5.7.1,
- Linux CI now tests on PyPy3 3.5-5.
9
.0, updated from PyPy3 3.5-5.7.1.
See :issue:`1001`. PyPy2 has been updated to 5.
9
.0 from 5.7.1,
Python 2.7 has been updated to 2.7.14 from 2.7.13, Python 3.4 is
updated to 3.4.7 from 3.4.5, Python 3.5 is now 3.5.4 from 3.5.3, and
Python 3.6 is now 3.6.
2
from 3.6.0.
Python 3.6 is now 3.6.
4
from 3.6.0.
- Drop support for Python 3.3. The documentation has only claimed
support for 3.4+ since gevent 1.2 was released, and only 3.4+ has
...
...
@@ -68,7 +68,7 @@ Platform Support
earlier (without a modern SSL implementation) has been dropped.
These versions are no longer tested with gevent, but gevent can
still be installed on them. Supporting code will be removed in the
next version of gevent. See :issue:`1073`.
next
major
version of gevent. See :issue:`1073`.
Build Changes
-------------
...
...
@@ -77,26 +77,17 @@ Build Changes
source distribution), ``make`` is no longer required and the
``Makefile`` is not used. Neither is an external ``cython`` command.
Instead, the ``cythonize`` function is used, as recommended by
Cython. See :issue:`1076`.
Cython. (The external commands were never required by source
distributions.) See :issue:`1076`.
- :class:`gevent.local.local` is compiled with Cython on CPython. It
was already 5 to 6 times faster due to the work on :issue:`1020`,
and compiling it with Cython makes it another 5 to 6 times faster,
for a total speed up of about 35 times. It is now in the same
ballpark as the native :class:`threading.local` class. It also uses
one pointer less memory per object, and one pointer less memory per
greenlet. See :pr:`1024`.
- :class:`gevent.local.local` is compiled with Cython on CPython.
- The Cython ares 'channel' class is no longer declared to be publicly
accessible from a named C structure. Doing so caused a conflict with
the c-ares header files.
Other Changes
-------------
- ``Pool.add`` now accepts ``blocking`` and ``timeout`` parameters,
which function similarly to their counterparts in ``Semaphore``.
See :pr:`1032` by Ron Rothman.
Bug Fixes
---------
- If a single greenlet created and destroyed many
:class:`gevent.local.local` objects without ever exiting, there
...
...
@@ -104,25 +95,6 @@ Other Changes
locals after the greenlet exited. Introduce a weak reference to
avoid that. Reported in :issue:`981` by Heungsub Lee.
- Defer adjusting the stdlib's list of active threads until
``threading`` is monkey patched. Previously this was done when
:mod:`gevent.threading` was imported. That module is documented to
be used as a helper for monkey patching, so this should generally
function the same, but some applications ignore the documentation
and directly import that module anyway.
A positive consequence is that ``import gevent.threading, threading;
threading.current_thread()`` will no longer return a DummyThread
before monkey-patching. Another positive consequence is that PyPy
will no longer print a ``KeyError`` on exit if
:mod:`gevent.threading` was imported *without* monkey-patching.
See :issue:`984`.
- Specify the Requires-Python metadata for improved installation
support in certain tools (setuptools v24.2.1 or newer is required).
See :issue:`995`.
- pywsgi also catches and ignores by default
:const:`errno.WSAECONNABORTED` on Windows. Initial patch in
:pr:`999` by Jan van Valburg.
...
...
@@ -142,6 +114,42 @@ Other Changes
universal newline mode on Python 2. This is consistent with what
:class:`.FileObjectThread` does. See :issue:`1039`.
- ``socket.send()`` now catches ``EPROTOTYPE`` on macOS to handle a race
condition during shutdown. Fixed in :pr:`1035` by Jay Oster.
- :func:`gevent.socket.create_connection` now properly cleans up open
sockets if connecting or binding raises a :exc:`BaseException` like
:exc:`KeyboardInterrupt`, :exc:`greenlet.GreenletExit` or
:exc:`gevent.timeout.Timeout`. Reported in :issue:`1044` by
kochelmonster.
Other Changes
-------------
- ``Pool.add`` now accepts ``blocking`` and ``timeout`` parameters,
which function similarly to their counterparts in ``Semaphore``.
See :pr:`1032` by Ron Rothman.
- Defer adjusting the stdlib's list of active threads until
``threading`` is monkey patched. Previously this was done when
:mod:`gevent.threading` was imported. That module is documented to
be used as a helper for monkey patching, so this should generally
function the same, but some applications ignore the documentation
and directly import that module anyway.
A positive consequence is that ``import gevent.threading, threading;
threading.current_thread()`` will no longer return a DummyThread
before monkey-patching. Another positive consequence is that PyPy
will no longer print a ``KeyError`` on exit if
:mod:`gevent.threading` was imported *without* monkey-patching.
See :issue:`984`.
- Specify the Requires-Python metadata for improved installation
support in certain tools (setuptools v24.2.1 or newer is required).
See :issue:`995`.
- Monkey-patching after the :mod:`ssl` module has been imported now
prints a warning because this can produce ``RecursionError``.
...
...
@@ -150,19 +158,18 @@ Other Changes
implementing more of the attribute protocols directly. Please open
an issue if you have any compatibility problems. See :issue:`1020`.
- :class:`gevent.local.local` is compiled with Cython on CPython. It
was already 5 to 6 times faster due to the work on :issue:`1020`,
and compiling it with Cython makes it another 5 to 6 times faster,
for a total speed up of about 35 times. It is now in the same
ballpark as the native :class:`threading.local` class. It also uses
one pointer less memory per object, and one pointer less memory per
greenlet. See :pr:`1024`.
- More safely terminate subprocesses on Windows with
:meth:`gevent.subprocess.Popen.terminate`. Reported in :issue:`1023`
by Giacomo Debidda.
- ``socket.send()`` now catches ``EPROTOTYPE`` on macOS to handle a race
condition during shutdown. Fixed in :pr:`1035` by Jay Oster.
- :func:`gevent.socket.create_connection` now properly cleans up open
sockets if connecting or binding raises a :exc:`BaseException` like
:exc:`KeyboardInterrupt`, :exc:`greenlet.GreenletExit` or
:exc:`gevent.timeout.Timeout`. Reported in :issue:`1044` by
kochelmonster.
- gevent now uses cffi's "extern 'Python'" callbacks. These should be
faster and more stable. This requires at least cffi 1.4.0. See :issue:`1049`.
...
...
@@ -185,6 +192,11 @@ libuv
``GEVENT_CORE_CFFI_ONLY=libuv`` before importing gevent. This
suffers a number of limitations compared to libev, notably:
- libuv support is not available in the manylinux wheels uploaded to
PyPI. The manylinux specification requires glibc 2.5, while libuv
requires glibc 2.12. Install from source to access libuv on Linux
(e.g., pip's ``--no-binary`` option).
- Timers (such as ``gevent.sleep`` and ``gevent.Timeout``) only
support a resolution of 1ms (in practice, it's closer to 1.5ms).
Attempting to use something smaller will automatically increase it
...
...
@@ -213,10 +225,6 @@ libuv
Linux when using ``gevent.select.poll`` or a monkey-patched
``selectors.PollSelector``.
- The implementation uses more reference cycles and weak references
than either of the libev implementations (cython or CFFI), so
pressure on the garbage collector will be higher.
- The build system does not support using a system libuv; the
embedded copy must be used. Using setuptools to compile libuv was
the most portable method found.
...
...
@@ -301,10 +309,10 @@ libev
- Cython is no longer preprocessed. Certain attributes that were
previously only defined in certain compilation modes (notably
LIBEV_EMBED) are now always defined, but will raise
``AttributeError``
or have a negative value when not available. In general these
attributes are not portable and not implemented by libuv or th
e
CFFI backend. See :issue:`1076`.
LIBEV_EMBED) are now always defined, but will raise
``AttributeError`` or have a negative value when not available. In
general these attributes are not portable or documented and ar
e
not implemented by libuv or the
CFFI backend. See :issue:`1076`.
- Certain private helper functions (``gevent_handle_error``, and part of
``gevent_call``) are now implemented in Cython instead of C. This
...
...
scripts/releases/geventrel.sh
View file @
790d6e12
...
...
@@ -37,5 +37,10 @@ cd ./gevent
pip
install
-U
pip
pip
install
-U
setuptools cython greenlet cffi
pip
install
-U
wheel
# We may need different versions of deps depending on the
# version of python; that's captured in this file.
# we still need to upgrade cython first, though
# because we can get kwargs errors otherwise
pip
install
-U
-r
dev-requirements.txt
python ./setup.py sdist bdist_wheel
cp
dist/
*
whl /tmp/gevent/
scripts/releases/geventreleases.sh
View file @
790d6e12
...
...
@@ -19,6 +19,9 @@ mkdir /tmp/gevent/
# 3.6 is a python.org build, builds a 10_6_intel wheel
./geventrel.sh /usr/local/bin/python3.6
# 3.7 is a python.org build, builds a 10_6_intel wheel
./geventrel.sh /usr/local/bin/python3.7
# PyPy 4.0
./geventrel.sh
`
which pypy
`
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment