* Fix crashes on 32-bit PPC Linux. Note that there is no CI for this,
and support is best effort; there may be other issues lurking.
* Remove unnecessary logging sometimes during interpreter shutdown.
* Fix some crashes on 32-bit PPC MacOS. This is a very old platform,
and is only known to be tested on beta versions of an operating
system that was never released, using the GCC 14 only provided by
MacPorts; it may or may not work on the final MacOS X release that
supported 32-bit PowerPC. It has the known issue of leaking memory
when greenlets are used in multiple threads. Help debugging this
would be appreciated.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=87
* Fix an intermittent error during process termination on some
platforms (GCC/Linux/libstdc++).
* Fix some potential bugs (assertion failures and memory leaks) in
previously-untested error handling code. In some cases, this means
that the process will execute a controlled ``abort()`` after severe
trouble when previously the process might have continued for some
time with a corrupt state. It is unlikely those errors occurred in
practice.
* Fix some assertion errors and potential bugs with re-entrant
switches.
* Fix a potential crash when certain compilers compile greenlet with
high levels of optimization. The symptom would be that switching to
a greenlet for the first time immediately crashes.
* Fix a potential crash when the callable object passed to the
greenlet constructor (or set as the ``greenlet.run`` attribute) has
a destructor attached to it that switches. Typically, triggering
this issue would require an unlikely subclass of
``greenlet.greenlet``.
* Python 3.11+: Fix rare switching errors that could occur when a
garbage collection was triggered during the middle of a switch, and
Python-level code in ``__del__`` or weakref callbacks switched to a
different greenlet and ultimately switched back to the original
greenlet. This often manifested as a ``SystemError``: "switch
returned NULL without an exception set."
* Python 3.12: Fix walking the frame stack of suspended greenlets.
Previously accessing ``glet.gr_frame.f_back`` would crash due to
`changes in CPython's undocumented internal frame handling
* Make the platform-specific low-level C/assembly snippets stop using
the ``register`` storage class. Newer versions of standards remove
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=70
- update to 2.0.2:
* Fix calling ``greenlet.settrace()`` with the same tracer
object that was currently active.
* Various compilation and standards conformance fixes.
* Python 3.11: Fix a memory leak. See issue 328 and gevent issue 1924.
- 2.0.0.post0 (2022-11-03)
* Add Programming Language :: Python :: 3.11 to the PyPI classifier
metadata.
- 2.0.0rc5 (2022-10-31)
* Linux: Fix another group of rare crashes that could occur when shutting
down an interpeter running multiple threads. See issue 325.
- 2.0.0rc4 (2022-10-30)
* Linux: Fix a rare crash that could occur when shutting down an interpreter
running multiple threads, when some of those threads are in greenlets
making calls to functions that release the GIL.
- 2.0.0rc1 (2022-10-27)
* Deal gracefully with greenlet switches that occur while deferred
deallocation of objects is happening using CPython's "trash can"
mechanism. Previously, if a large nested container held items that
switched greenlets during delayed deallocation, and that second greenlet
also invoked the trash can, CPython's internal state could become corrupt.
This was visible as an assertion error in debug builds. Now, the relevant
internal state is saved and restored during greenlet switches. See also
gevent issue 1909.
* Rename the C API function PyGreenlet_GET_PARENT to PyGreenlet_GetParent
for consistency. The old name remains available as a deprecated alias.
- 2.0.0a1 (2022-01-20)
* 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
OBS-URL: https://build.opensuse.org/request/show/1084762
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=42
* Fix calling ``greenlet.settrace()`` with the same tracer
object that was currently active.
* Various compilation and standards conformance fixes.
* Python 3.11: Fix a memory leak. See issue 328 and gevent issue 1924.
- 2.0.0.post0 (2022-11-03)
* Add Programming Language :: Python :: 3.11 to the PyPI classifier
metadata.
- 2.0.0rc5 (2022-10-31)
* Linux: Fix another group of rare crashes that could occur when shutting
down an interpeter running multiple threads. See issue 325.
- 2.0.0rc4 (2022-10-30)
* Linux: Fix a rare crash that could occur when shutting down an interpreter
running multiple threads, when some of those threads are in greenlets
making calls to functions that release the GIL.
- 2.0.0rc1 (2022-10-27)
* Deal gracefully with greenlet switches that occur while deferred
deallocation of objects is happening using CPython's "trash can"
mechanism. Previously, if a large nested container held items that
switched greenlets during delayed deallocation, and that second greenlet
also invoked the trash can, CPython's internal state could become corrupt.
This was visible as an assertion error in debug builds. Now, the relevant
internal state is saved and restored during greenlet switches. See also
gevent issue 1909.
* Rename the C API function PyGreenlet_GET_PARENT to PyGreenlet_GetParent
for consistency. The old name remains available as a deprecated alias.
- 2.0.0a1 (2022-01-20)
* 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
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=68
* Python 3.11: Fix a memory leak. See issue 328 and gevent issue 1924.
- 2.0.0.post0 (2022-11-03)
* Add Programming Language :: Python :: 3.11 to the PyPI classifier
metadata.
- 2.0.0 (2022-10-31)
* Nothing changed yet.
- 2.0.0rc5 (2022-10-31)
* Linux: Fix another group of rare crashes that could occur when shutting
down an interpeter running multiple threads. See issue 325.
- 2.0.0rc4 (2022-10-30)
* Linux: Fix a rare crash that could occur when shutting down an interpreter
running multiple threads, when some of those threads are in greenlets
making calls to functions that release the GIL.
- 2.0.0rc3 (2022-10-29)
* Python 2: Fix a crash that could occur when raising an old-style instance
object.
- 2.0.0rc2 (2022-10-28)
* Workaround a CPython 3.8 bug that could cause the interpreter to crash
during an early phase of shutdown with the message "Fatal Python error:
Python memory allocator called without holding the GI." This only impacted
CPython 3.8a3 through CPython 3.9a5; the fix is only applied to CPython
3.8 releases (please don't use an early alpha release of CPython 3.9).
- 2.0.0rc1 (2022-10-27)
* Deal gracefully with greenlet switches that occur while deferred
deallocation of objects is happening using CPython's "trash can"
mechanism. Previously, if a large nested container held items that
switched greenlets during delayed deallocation, and that second greenlet
also invoked the trash can, CPython's internal state could become corrupt.
This was visible as an assertion error in debug builds. Now, the relevant
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=62
- update to 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.
- 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
- Python 3.10: Tracing or profiling into a spawned greenlet didn't
work as expected. See `issue 256
OBS-URL: https://build.opensuse.org/request/show/925731
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=38
- 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.
- 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
- Python 3.10: Tracing or profiling into a spawned greenlet didn't
work as expected. See `issue 256
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=59
* Add support for Python 3.10. Pre-built binary wheels for 3.10 are
not currently available for all platforms. The greenlet ABI is
different on Python 3.10 from all previous versions, but as 3.10 was
never supported before, and the ABI has not changed on other Python
versions, this is not considered a reason to change greenlet's major
version.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=56