* 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
* 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
- 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
- update to 0.4.1:
* fix segfaults when using gcc 4.8 on amd64/x86 unix
* try to disable certain gcc 4.8 optimizations that make greenlet
crash
* Fix greenlet on aarch64 with gcc 4.8
* workaround segfault on SunOS/sun4v
* Add support for Aarch64
* Add support for x32 psABI on x86_64
* Changed memory constraints for assembly macro for PPC Linux
platforms.
- remove python-greenlet-aarch64-support.diff
OBS-URL: https://build.opensuse.org/request/show/178868
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=10
+ Greenlet has an instance dictionary now, which means it can be
used for implementing greenlet local storage, etc. However, this
might introduce incompatibility if subclasses have __dict__ in their
__slots__. Classes like that will fail, because greenlet already
has __dict__ out of the box.
+ Greenlet no longer leaks memory after thread termination, as long as
terminated thread has no running greenlets left at the time.
+ Add support for debian sparc and openbsd5-sparc64
+ Add support for ppc64 linux
+ Don't allow greenlets to be copied with copy.copy/deepcopy
+ Fix arm32/thumb support
+ Restore greenlet's parent after kill
+ Add experimental greenlet tracing
- Changes from version 0.3.4:
+ Use plain distutils for install command, this fixes installation of
the greenlet.h header.
+ Enhanced arm32 support
+ Fix support for Linux/S390 zSeries
+ Workaround compiler bug on RHEL 3 / CentOS 3
- Changes from version 0.3.3:
+ Use sphinx to build documentation and publish it on greenlet.rtfd.org
+ Prevent segfaults on openbsd 4/i386
+ Workaround gcc-4.0 not allowing to clobber rbx
+ Enhance test infrastructure
+ Fix possible compilation problems when including greenlet.h in C++ mode
+ Make the greenlet module work on x64 windows
+ Add a test for greenlet C++ exceptions
+ Fix compilation on Solaris with SunStudio
- Changes from version 0.3.2:
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=5