Greenlet

Latest version: v3.0.3

Safety actively analyzes 630169 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 9

2.0.0a2

====================

- Fix a crash on older versions of the Windows C runtime when an
unhandled C++ exception was thrown inside a greenlet by another
native extension. This is a bug in that extension, and the
interpreter will still abort, but at least it does so deliberately.
Thanks to Kirill Smelkov. See `PR 286
<https://github.com/python-greenlet/greenlet/pull/286>`_.
- Musllinux wheels for aarch64 are now built, tested, and uploaded to
PyPI. Thanks to Alexander Piskun.
- This version of greenlet is known to compile and pass tests on
CPython 3.11.0a6. Earlier 3.11 releases will not work; later
releases may or may not work. See `PR 294
<https://github.com/python-greenlet/greenlet/pull/294>`_. Special
thanks to Victor Stinner, Brandt Bucher and the CPython developers.

2.0.0a1

====================

Platforms
---------

- Add experimental, untested support for 64-bit Windows on ARM using
MSVC. See `PR 271 <https://github.com/python-greenlet/greenlet/pull/271>`_.

- Drop support for very old versions of GCC and MSVC.

- Compilation now requires a compiler that either supports C++11 or
has some other intrinsic way to create thread local variables; for
older GCC, clang and SunStudio we use ``__thread``, while for older
MSVC we use ``__declspec(thread)``.

- Wheels compatible with the musllinux specification are built,
tested, and uploaded to PyPI for x86_64. (This was retroactively
done for version 1.1.2 as well.)

- This version of greenlet is known to compile and pass tests on
CPython 3.11.0a4. Earlier or later 3.11 releases may or may not
work. See `PR 280
<https://github.com/python-greenlet/greenlet/pull/280>`_. Special
thanks to Brandt Bucher and the CPython developers.

Fixes
~~~~~

- Fix several leaks that could occur when using greenlets from
multiple threads. For example, it is no longer necessary to call
``getcurrent()`` before exiting a thread to allow its main greenlet
to be cleaned up. See `issue 252 <https://github.com/python-greenlet/greenlet/issues/251>`_.

- Fix the C API ``PyGreenlet_Throw`` to perform the same error
checking that the Python API ``greenlet.throw()`` does. Previously,
it did no error checking.

- Fix C++ exception handling on 32-bit Windows. This might have
ramifications if you embed Python in your application and also use
SEH on 32-bit windows, or if you embed Python in a C++ application.
Please contact the maintainers if you have problems in this area.

In general, C++ exception handling is expected to be better on most
platforms. This work is ongoing.

Changes
~~~~~~~

- The repr of some greenlets has changed. In particular, if the
greenlet object was running in a thread that has exited, the repr
now indicates that. *NOTE:* The repr of a greenlet is not part of
the API and should not be relied upon by production code. It is
likely to differ in other implementations such as PyPy.

- Main greenlets from threads that have exited are now marked as dead.

1.1.3.post0

========================

- Add musllinux (Alpine) binary wheels.

.. important:: This preliminary support for Python 3.11 leaks memory.
Please upgrade to greenlet 2 if you're using Python 3.11.

1.1.3

==================

- Add support for Python 3.11. Please note that Windows binary wheels
are not available at this time.

.. important:: This preliminary support for Python 3.11 leaks memory.
Please upgrade to greenlet 2 if you're using Python 3.11.

1.1.2

==================

- Fix a potential crash due to a reference counting error when Python
subclasses of ``greenlet.greenlet`` were deallocated. The crash
became more common on Python 3.10; on earlier versions, silent
memory corruption could result. See `issue 245
<https://github.com/python-greenlet/greenlet/issues/245>`_. Patch by
fygao-wish.
- Fix a leak of a list object when the last reference to a greenlet
was deleted from some other thread than the one to which it
belonged. For this to work correctly, you must call a greenlet API
like ``getcurrent()`` before the thread owning the greenlet exits:
this is a long-standing limitation that can also lead to the leak of
a thread's main greenlet if not called; we hope to lift this
limitation. Note that in some cases this may also fix leaks of
greenlet objects themselves. See `issue 251
<https://github.com/python-greenlet/greenlet/issues/251>`_.
- Python 3.10: Tracing or profiling into a spawned greenlet didn't
work as expected. See `issue 256
<https://github.com/python-greenlet/greenlet/issues/256>`_, reported
by Joe Rickerby.

1.1.1

==================

- Provide Windows binary wheels for Python 3.10 (64-bit only).

- Update Python 3.10 wheels to be built against 3.10rc1, where
applicable.

Page 4 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.