Compare commits

...

100 Commits

Author SHA256 Message Date
Ana Guerrero
bf998562ec Accepting request 1204154 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1204154
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=51
2024-09-29 16:09:25 +00:00
Ana Guerrero
30b70de50d Accepting request 1199963 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1199963
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=50
2024-09-12 14:53:56 +00:00
81777f01f4 Accepting request 1199931 from home:glaubitz:branches:devel:languages:python
- Update to 3.1.0
  * Adds support for Python 3.13.
  * Greatly reduce the chances for crashes during interpreter shutdown.
  * Support for the following platforms was contributed by the community.
    Note that they are untested by this project's continuous integration
    services.
    + Hitachi's SuperH CPU
    + NetBSD on PowerPC
    + RISC-V with -fno-omit-frame-pointer
- Drop port-to-python313.patch, merged upstream

OBS-URL: https://build.opensuse.org/request/show/1199931
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=85
2024-09-11 06:17:11 +00:00
Ana Guerrero
25d3f2776e Accepting request 1199669 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1199669
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=49
2024-09-10 19:12:27 +00:00
1196ca397c - Cherry-pick upstream patch to add support for Python 3.13
* port-to-python313.patch

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=83
2024-09-09 10:56:04 +00:00
Ana Guerrero
9fbf3594c4 Accepting request 1138145 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1138145
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=48
2024-01-12 22:44:40 +00:00
f649e6bd60 Accepting request 1138007 from home:bnavigator:branches:devel:languages:python
- Update to 3.0.3
  * Python 3.12: Restore the full ability to walk the stack of a
    suspended greenlet; previously only the innermost frame was
    exposed. See issue 388. Fix by Joshua Oreman in PR 393.
- Disable building the docs: Now requires the furo theme, which is
  not available.

OBS-URL: https://build.opensuse.org/request/show/1138007
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=81
2024-01-11 15:12:32 +00:00
Ana Guerrero
8f9402fcc8 Accepting request 1136486 from devel:languages:python
- require setuptools

OBS-URL: https://build.opensuse.org/request/show/1136486
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=47
2024-01-09 19:48:27 +00:00
66d4b43fa1 - require setuptools
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=79
2024-01-03 10:40:10 +00:00
Ana Guerrero
a5ca70a2ac Accepting request 1133678 from devel:languages:python
- update to 3.0.2:
  * Packaging: Add a minimal ``pyproject.toml`` to sdists.
  * Packaging: Various updates to macOS wheels.
  * Fix a test case on Arm32. Note that this is not a supported
    platform (there is no CI for it) and support is best effort;

OBS-URL: https://build.opensuse.org/request/show/1133678
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=46
2023-12-17 20:29:07 +00:00
08a518ef1d - update to 3.0.2:
* Packaging: Add a minimal ``pyproject.toml`` to sdists.
  * Packaging: Various updates to macOS wheels.
  * Fix a test case on Arm32. Note that this is not a supported
    platform (there is no CI for it) and support is best effort;

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=77
2023-12-17 01:46:08 +00:00
Ana Guerrero
0b57f920b9 Accepting request 1129185 from devel:languages:python
- update to 3.0.1:
  * Fix a potential crash on Python 3.8 at interpreter shutdown
    time.  This was a regression from earlier 3.0.x releases.

OBS-URL: https://build.opensuse.org/request/show/1129185
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=45
2023-11-28 21:18:35 +00:00
4b955fc182 - update to 3.0.1:
* Fix a potential crash on Python 3.8 at interpreter shutdown
    time.  This was a regression from earlier 3.0.x releases.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=75
2023-11-27 15:46:51 +00:00
Ana Guerrero
a3e20d620e Accepting request 1115111 from devel:languages:python
- Update to 3.0.0:
  * No changes from 3.0rc3 aside from the version number.
- Ignore some slow and flaky tests

OBS-URL: https://build.opensuse.org/request/show/1115111
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=44
2023-10-05 18:02:47 +00:00
faff34589b - Ignore some slow and flaky tests
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=73
2023-10-04 07:17:12 +00:00
1667d27fdb - Update to 3.0.0:
* No changes from 3.0rc3 aside from the version number.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=72
2023-10-04 06:45:32 +00:00
Ana Guerrero
bf5000bb93 Accepting request 1113760 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1113760
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=43
2023-09-29 19:13:07 +00:00
682db7c4ad - update to 3.0.0~rc3:
* 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
2023-09-19 22:06:34 +00:00
Dominique Leuenberger
8d32e7b726 Accepting request 1084762 from devel:languages:python
- 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
2023-05-19 09:55:05 +00:00
1211730c98 - 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/package/show/devel:languages:python/python-greenlet?expand=0&rev=68
2023-05-04 14:46:15 +00:00
Dominique Leuenberger
815d2d64b6 Accepting request 1081482 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1081482
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=41
2023-04-22 19:57:35 +00:00
e0dc7350cf Accepting request 1081426 from home:dirkmueller:acdc:as_python3_module
SR for python stack proposal

OBS-URL: https://build.opensuse.org/request/show/1081426
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=66
2023-04-21 13:19:08 +00:00
Dominique Leuenberger
ddf60cf7c2 Accepting request 1056133 from devel:languages:python
- Add sphinx-6.0.0.patch to make it work with new version of Sphinx.

OBS-URL: https://build.opensuse.org/request/show/1056133
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=40
2023-01-10 13:58:51 +00:00
2983b265ea - Add sphinx-6.0.0.patch to make it work with new version of Sphinx.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=64
2023-01-05 07:42:04 +00:00
a811b69253 Accepting request 1056122 from devel:languages:python
Revert to 1.1.3, 2.x break gevent and openstack

OBS-URL: https://build.opensuse.org/request/show/1056122
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=63
2023-01-05 07:22:36 +00:00
7b7c2f8345 - Update to 2.0.1:
* 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
2023-01-04 11:25:57 +00:00
Dominique Leuenberger
475da946ab Accepting request 1003047 from devel:languages:python
- update to 1.1.3:
  * Add support for Python 3.11.

OBS-URL: https://build.opensuse.org/request/show/1003047
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=39
2022-09-15 20:57:30 +00:00
d9107d3581 - update to 1.1.3:
* Add support for Python 3.11.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=60
2022-09-12 20:14:37 +00:00
Dominique Leuenberger
97d77111f4 Accepting request 925731 from devel:languages:python
- 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
2021-10-20 18:23:26 +00:00
0031e4d6b3 - 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/package/show/devel:languages:python/python-greenlet?expand=0&rev=59
2021-10-16 19:08:50 +00:00
Dominique Leuenberger
2e54c2c677 Accepting request 915037 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/915037
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=37
2021-09-03 19:26:02 +00:00
5b350ff128 Accepting request 915023 from home:pgajdos:python
- %check: use %pyunittest rpm macro

OBS-URL: https://build.opensuse.org/request/show/915023
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=58
2021-08-30 12:54:04 +00:00
Dominique Leuenberger
a892773d85 Accepting request 897851 from devel:languages:python
- update to 1.1.0:
  * 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/request/show/897851
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=36
2021-06-11 20:30:19 +00:00
347d7c3a6a - update to 1.1.0:
* 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
2021-06-06 12:38:50 +00:00
Dominique Leuenberger
4161110e81 Accepting request 868479 from devel:languages:python
- update to 1.0.0:
  * Require setuptools to build from source.
  * Stop asking setuptools to build both .tar.gz and .zip
    sdists. PyPI has standardized on .tar.gz for all platforms.
  * Publish the change log to https://greenlet.readthedocs.io

OBS-URL: https://build.opensuse.org/request/show/868479
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=35
2021-02-16 21:33:44 +00:00
acd5034be6 - update to 1.0.0:
* Require setuptools to build from source.
  * Stop asking setuptools to build both .tar.gz and .zip
    sdists. PyPI has standardized on .tar.gz for all platforms.
  * Publish the change log to https://greenlet.readthedocs.io

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=54
2021-02-01 22:26:23 +00:00
Dominique Leuenberger
b621e56a30 Accepting request 838240 from devel:languages:python
- update to 0.4.17:
  - Support for PEP 567 ContextVars

OBS-URL: https://build.opensuse.org/request/show/838240
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=34
2020-10-29 08:46:00 +00:00
236f62427d - update to 0.4.17:
- Support for PEP 567 ContextVars

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=52
2020-09-28 10:56:30 +00:00
Dominique Leuenberger
fdd8e0d9a4 Accepting request 812725 from devel:languages:python
- update to 0.4.16:
  - Support for DEC Alpha architecture
  - Support for Python 3.9
  - Support for Python 3.10a0

OBS-URL: https://build.opensuse.org/request/show/812725
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=33
2020-06-11 12:44:59 +00:00
f027d24c76 - update to 0.4.16:
- Support for DEC Alpha architecture
  - Support for Python 3.9
  - Support for Python 3.10a0

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=50
2020-06-08 19:33:55 +00:00
e19449235b Fix changes
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=49
2018-12-22 13:39:56 +00:00
20e1d883fe - Fix BR to build again
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=48
2018-12-06 16:43:22 +00:00
70d6633dbf Remove superfluous devel dependency for noarch package
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=47
2018-12-04 13:31:12 +00:00
Dominique Leuenberger
a7844d4d6f Accepting request 636119 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/636119
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=32
2018-09-26 14:00:01 +00:00
Tomáš Chvátal
4e11fa10b9 Accepting request 635935 from home:apersaud:branches:devel:languages:python
update to latest version

OBS-URL: https://build.opensuse.org/request/show/635935
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=45
2018-09-17 09:20:20 +00:00
Dominique Leuenberger
d6a7e4e7d6 Accepting request 627924 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/627924
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=31
2018-08-10 07:47:10 +00:00
Todd R
fb67797bc6 Accepting request 627923 from home:TheBlackCat:branches:devel:languages:python
- Update to 0.4.14
  * Support for C-SKY architecture
  * Fixed support for ppc64 ABI
  * Fixed support for Python 3.7
- Remove upstream-included greenlet-ppc64le.patch

OBS-URL: https://build.opensuse.org/request/show/627923
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=43
2018-08-07 15:29:44 +00:00
Dominique Leuenberger
83f2483131 Accepting request 572027 from devel:languages:python
- Add patch to fix build on ppc64le to not clobber r2 register:
  * greenlet-ppc64le.patch

- Version update to 0.4.13:
  * Support for Python 3.7
  * Support for MinGW x64

OBS-URL: https://build.opensuse.org/request/show/572027
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=30
2018-02-02 21:23:26 +00:00
Tomáš Chvátal
5e8d0b2102 - Add patch to fix build on ppc64le to not clobber r2 register:
* greenlet-ppc64le.patch

- Version update to 0.4.13:
  * Support for Python 3.7
  * Support for MinGW x64

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=41
2018-02-02 13:36:13 +00:00
Dominique Leuenberger
1690d85586 Accepting request 489401 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/489401
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=29
2017-04-28 13:02:53 +00:00
Todd R
e9068dfa18 Accepting request 489400 from home:TheBlackCat:branches:devel:languages:python
- Update to 0.4.12
- Implement singlespec version

OBS-URL: https://build.opensuse.org/request/show/489400
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=39
2017-04-19 17:48:17 +00:00
Dominique Leuenberger
51d4b5e111 Accepting request 424619 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/424619
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=28
2016-09-16 09:00:27 +00:00
Denisart Benjamin
69b3b5cebd Accepting request 424544 from home:tbechtold:branches:devel:languages:python
- update to 4.10.0:
  - Added missing files to manifest
  - Added workaround for ppc32 on Linux
  - Start building binary manylinux1 wheels
- Use pypi.io as Source url

OBS-URL: https://build.opensuse.org/request/show/424544
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=37
2016-09-03 18:17:13 +00:00
Dominique Leuenberger
867321b8a2 Accepting request 390472 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/390472
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=27
2016-04-22 14:25:34 +00:00
41ca1378b8 Accepting request 390353 from home:Simmphonie:python
OBS-URL: https://build.opensuse.org/request/show/390353
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=35
2016-04-17 20:13:20 +00:00
Dominique Leuenberger
4b8562b21f Accepting request 313186 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/313186
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=26
2015-06-24 18:50:26 +00:00
3c581346e2 Accepting request 313105 from home:tbechtold:branches:devel:languages:python
- update to 0.4.7:
  - Added a missing workaround for `return 0` on mips
  - Restore compatibility with Python 2.5
  - Fixed stack switching on sparc

OBS-URL: https://build.opensuse.org/request/show/313105
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=33
2015-06-23 06:22:57 +00:00
Stephan Kulow
a18aec18ba Accepting request 305747 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/305747
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=25
2015-05-10 08:46:28 +00:00
Jan Matejek
41ddf6532f Accepting request 305574 from home:benoit_monin:branches:devel:languages:python
- update to version 0.4.6
- add -fno-strict-aliasing to CFLAGS to fix compiler warnings
- remove hidden file .buildinfo from html documentation

OBS-URL: https://build.opensuse.org/request/show/305574
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=31
2015-05-07 11:58:25 +00:00
Dominique Leuenberger
3cb78e603a Accepting request 263762 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/263762
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=24
2014-12-03 21:48:23 +00:00
Denisart Benjamin
efeb6d5178 Accepting request 263166 from Cloud:OpenStack:Master
- Include LICENSE and LICENSE.PSF in package

OBS-URL: https://build.opensuse.org/request/show/263166
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=29
2014-12-02 20:10:12 +00:00
Dominique Leuenberger
a9afed4e90 Accepting request 262192 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/262192
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=23
2014-11-19 19:26:51 +00:00
Todd R
6f1db46cf8 Accepting request 262191 from home:TheBlackCat:branches:devel:languages:python
Update to 0.4.5

OBS-URL: https://build.opensuse.org/request/show/262191
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=27
2014-11-18 14:06:57 +00:00
Stephan Kulow
8726382096 Accepting request 259676 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/259676
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=22
2014-11-05 14:55:03 +00:00
Michal Čihař
86eb86c72c Accepting request 259568 from home:k0da:ppc
- build with -fno-tree-dominator-opts (boo#902146)

OBS-URL: https://build.opensuse.org/request/show/259568
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=25
2014-11-04 16:20:06 +00:00
Stephan Kulow
5a722c2641 Accepting request 249313 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/249313
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=21
2014-09-17 15:25:24 +00:00
Jan Matejek
b23701b912 Accepting request 249025 from Cloud:OpenStack:Master
- update to 0.4.4:
  - Fixed PyGreenlet_SetParent signature, thanks to BoonsNaibot
  - Fixed 64-bit Windows builds depending on wrong runtime dll

OBS-URL: https://build.opensuse.org/request/show/249025
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=23
2014-09-15 14:08:42 +00:00
3cacd665cc Accepting request 244826 from devel:languages:python
1

OBS-URL: https://build.opensuse.org/request/show/244826
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=19
2014-08-16 13:37:55 +00:00
Michal Čihař
d8d1abf2b9 Accepting request 244824 from home:Nijel:branches:devel:languages:python
- Update to version 0.4.3:
  + Better slp_switch performance on SPARC
  + Drop support for Python 2.3
  + Fix trashcan assertions on debug builds of Python
  + Remove deprecated -fno-tree-dominator-opts compiler switch
  + Enable switch code for SunStudio on 32-bit SunOS
  + Support for abc abstract methods in greenlet subclasses
  + Support custom directories for tests
  + Document switch tracing support

OBS-URL: https://build.opensuse.org/request/show/244824
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=21
2014-08-15 12:06:41 +00:00
Stephan Kulow
24a4161f99 Accepting request 214243 from devel:languages:python
- Update to version 0.4.2:
  + Add .travis.yml
  + Fix 'err' may be used uninitialized in this function
  + Check _MSC_VER for msvc specific code
  + Fix slp_switch on SPARC for multi-threaded environments
  + Add support for m68k

OBS-URL: https://build.opensuse.org/request/show/214243
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=18
2014-01-20 06:55:23 +00:00
Sascha Peilicke
6f9c19a92d OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=17 2014-01-17 15:28:39 +00:00
Sascha Peilicke
8d8ac9ca52 - Update to version 0.4.2:
+ Add .travis.yml
  + Fix 'err' may be used uninitialized in this function
  + Check _MSC_VER for msvc specific code
  + Fix slp_switch on SPARC for multi-threaded environments
  + Add support for m68k

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=16
2014-01-17 15:27:30 +00:00
Stephan Kulow
aa7229861a Accepting request 210811 from devel:languages:python
- ppc64le-support.patch: Support powerpc64le-linux (ELFv2 ABI).
  Save/restore vector and floating-point registers as well on ppc. (forwarded request 210802 from k0da)

OBS-URL: https://build.opensuse.org/request/show/210811
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=17
2013-12-15 09:09:25 +00:00
Denisart Benjamin
dc9a391941 Accepting request 210802 from openSUSE:Factory:PowerLE
- ppc64le-support.patch: Support powerpc64le-linux (ELFv2 ABI).
  Save/restore vector and floating-point registers as well on ppc.

OBS-URL: https://build.opensuse.org/request/show/210802
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=15
2013-12-13 15:03:15 +00:00
Tomáš Chvátal
510d4db539 Accepting request 204567 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/204567
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=16
2013-10-25 09:17:17 +00:00
Sascha Peilicke
aef436890b - Require python-setuptools instead of distribute (upstreams merged)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=14
2013-10-24 11:06:16 +00:00
Tomáš Chvátal
843b709da4 Accepting request 186374 from devel:languages:python
- run tests we optflags. Stuff got compiled in %check again. (forwarded request 186373 from k0da)

OBS-URL: https://build.opensuse.org/request/show/186374
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=14
2013-08-13 11:20:41 +00:00
Sascha Peilicke
7004e96ef3 Accepting request 186373 from home:k0da:ppc
- run tests we optflags. Stuff got compiled in %check again.

OBS-URL: https://build.opensuse.org/request/show/186373
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=13
2013-08-08 11:20:41 +00:00
Sascha Peilicke
b5e6010974 - Drop python-greenlet-aarch64-support.diff
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=12
2013-08-06 12:31:32 +00:00
Sascha Peilicke
e39e653574 Accepting request 183765 from Cloud:OpenStack:Master
OBS-URL: https://build.opensuse.org/request/show/183765
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=11
2013-08-05 14:03:54 +00:00
Stephan Kulow
ab50b7e895 Accepting request 178950 from devel:languages:python
- 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 (forwarded request 178868 from dirkmueller)

OBS-URL: https://build.opensuse.org/request/show/178950
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=13
2013-06-18 08:36:21 +00:00
Sascha Peilicke
887d060850 Accepting request 178868 from home:dirkmueller:branches:devel:languages:python
- 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
2013-06-14 10:53:27 +00:00
Stephan Kulow
afaaec4e13 Accepting request 175247 from devel:languages:python
- Add python-greenlet-aarch64-support.diff, for, well, aarch64
  support. (forwarded request 175017 from Andreas_Schwab)

OBS-URL: https://build.opensuse.org/request/show/175247
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=12
2013-05-16 09:26:02 +00:00
Sascha Peilicke
a1e4200c4c Accepting request 175017 from devel:ARM:AArch64:Factory
- Add python-greenlet-aarch64-support.diff, for, well, aarch64
  support.

OBS-URL: https://build.opensuse.org/request/show/175017
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=9
2013-05-13 09:29:45 +00:00
Stephan Kulow
639506ea46 Accepting request 157724 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/157724
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=11
2013-03-08 08:43:20 +00:00
Todd R
03cffffa64 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=8 2013-01-02 18:03:01 +00:00
Todd R
74d4cd0753 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=7 2013-01-02 18:02:11 +00:00
Ismail Dönmez
f03f4f188f Accepting request 146432 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/146432
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=9
2012-12-28 21:47:12 +00:00
Sascha Peilicke
2c4c5acf9d - The devel subpackage contains only headers and thus is noarch
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=6
2012-12-19 15:51:06 +00:00
Stephan Kulow
25f1f81287 Accepting request 142579 from devel:languages:python
- Update to version 0.4.0:
  + 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/request/show/142579
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=8
2012-11-25 12:40:36 +00:00
Sascha Peilicke
f3ee8baec8 - Update to version 0.4.0:
+ 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
2012-11-23 12:29:19 +00:00
Stephan Kulow
0fa06d5c88 Accepting request 127087 from devel:languages:python
- add ppc64 platform support
- fix ppc platform (forwarded request 126971 from k0da)

OBS-URL: https://build.opensuse.org/request/show/127087
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=7
2012-07-04 11:56:26 +00:00
Todd R
dd66a1b06b Accepting request 126971 from home:k0da:ppc
- add ppc64 platform support
- fix ppc platform

OBS-URL: https://build.opensuse.org/request/show/126971
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=4
2012-07-04 10:28:05 +00:00
Stephan Kulow
34604376fc Accepting request 98600 from devel:languages:python
- Add upstream commits 25bf29f4d3b7 and 2d5b17472757 (bnc#738431) 
- Implement %check (forwarded request 98402 from namtrac)

OBS-URL: https://build.opensuse.org/request/show/98600
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=5
2012-01-04 06:30:29 +00:00
Sascha Peilicke
9a477dd2db Accepting request 98402 from home:namtrac:bugfix
- Add upstream commits 25bf29f4d3b7 and 2d5b17472757 (bnc#738431) 
- Implement %check

OBS-URL: https://build.opensuse.org/request/show/98402
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=3
2012-01-03 10:18:16 +00:00
Sascha Peilicke
8bbd668131 Accepting request 84088 from devel:languages:python
- Spec file cleanup:
  * BuildRequire modern python-distribute instead of python-setuptools
  * No need for changing executable bits for benchmarks
  * Use SUSE version checks around specific macros
  * Only require %{name} = %{version} in devel package

OBS-URL: https://build.opensuse.org/request/show/84088
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=3
2011-09-26 08:15:33 +00:00
Sascha Peilicke
887feec87c - Spec file cleanup:
* BuildRequire modern python-distribute instead of python-setuptools
  * No need for changing executable bits for benchmarks
  * Use SUSE version checks around specific macros
  * Only require %{name} = %{version} in devel package

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=2
2011-09-21 09:38:24 +00:00
78de2ff214 Autobuild autoformatter for 67285
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=2
2011-05-30 14:44:15 +00:00
799f3a9ad9 Accepting request 67285 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/67285
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-greenlet?expand=0&rev=1
2011-05-30 14:44:06 +00:00
Cristian Rodríguez
fa16d9583a Accepting request 54437 from home:seife:openstack
OBS-URL: https://build.opensuse.org/request/show/54437
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-greenlet?expand=0&rev=1
2010-12-04 15:53:22 +00:00
3 changed files with 0 additions and 460 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491
size 182013

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b395121e9bbe8d02a750886f108d540abe66075e61e22f7353d9acb0b81be0f0
size 183954

View File

@ -1,454 +0,0 @@
From 94979488f841fcb41bd2bd3b80b5c0b011af4c94 Mon Sep 17 00:00:00 2001
From: Victor Stinner <vstinner@python.org>
Date: Wed, 14 Feb 2024 16:37:42 +0100
Subject: [PATCH 1/8] Fix #392: Port to Python 3.13
* Replace C_RECURSION_LIMIT with Py_C_RECURSION_LIMIT.
* Add Py_C_RECURSION_LIMIT for Python 3.12 and older.
* Disable GREENLET_USE_CFRAME on Python 3.13.
* Define Py_BUILD_CORE to include pycore_frame.h.
---
src/greenlet/TPythonState.cpp | 10 +++++++---
src/greenlet/greenlet_cpython_compat.hpp | 13 +++++++++++--
src/greenlet/greenlet_greenlet.hpp | 1 +
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/src/greenlet/TPythonState.cpp b/src/greenlet/TPythonState.cpp
index 465d4174..c0dbf703 100644
--- a/src/greenlet/TPythonState.cpp
+++ b/src/greenlet/TPythonState.cpp
@@ -130,11 +130,13 @@ void PythonState::operator<<(const PyThreadState *const tstate) noexcept
#if GREENLET_PY311
#if GREENLET_PY312
this->py_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining;
- this->c_recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining;
+ this->c_recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining;
#else // not 312
this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
#endif // GREENLET_PY312
+ #if GREENLET_USE_CFRAME
this->current_frame = tstate->cframe->current_frame;
+ #endif
this->datastack_chunk = tstate->datastack_chunk;
this->datastack_top = tstate->datastack_top;
this->datastack_limit = tstate->datastack_limit;
@@ -199,12 +201,14 @@ void PythonState::operator>>(PyThreadState *const tstate) noexcept
#if GREENLET_PY311
#if GREENLET_PY312
tstate->py_recursion_remaining = tstate->py_recursion_limit - this->py_recursion_depth;
- tstate->c_recursion_remaining = C_RECURSION_LIMIT - this->c_recursion_depth;
+ tstate->c_recursion_remaining = Py_C_RECURSION_LIMIT - this->c_recursion_depth;
this->unexpose_frames();
#else // \/ 3.11
tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth;
#endif // GREENLET_PY312
+ #if GREENLET_USE_CFRAME
tstate->cframe->current_frame = this->current_frame;
+ #endif
tstate->datastack_chunk = this->datastack_chunk;
tstate->datastack_top = this->datastack_top;
tstate->datastack_limit = this->datastack_limit;
@@ -238,7 +242,7 @@ void PythonState::set_initial_state(const PyThreadState* const tstate) noexcept
#if GREENLET_PY312
this->py_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining;
// XXX: TODO: Comment from a reviewer:
- // Should this be ``C_RECURSION_LIMIT - tstate->c_recursion_remaining``?
+ // Should this be ``Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining``?
// But to me it looks more like that might not be the right
// initialization either?
this->c_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining;
diff --git a/src/greenlet/greenlet_cpython_compat.hpp b/src/greenlet/greenlet_cpython_compat.hpp
index cdc1617f..c0fb94c5 100644
--- a/src/greenlet/greenlet_cpython_compat.hpp
+++ b/src/greenlet/greenlet_cpython_compat.hpp
@@ -12,19 +12,24 @@
#if PY_VERSION_HEX >= 0x30A00B1
# define GREENLET_PY310 1
+#else
+# define GREENLET_PY310 0
+#endif
+
/*
Python 3.10 beta 1 changed tstate->use_tracing to a nested cframe member.
See https://github.com/python/cpython/pull/25276
We have to save and restore this as well.
+
+Python 3.13 removed PyThreadState.cframe (GH-108035).
*/
+#if GREENLET_PY310 && PY_VERSION_HEX < 0x30D0000
# define GREENLET_USE_CFRAME 1
#else
# define GREENLET_USE_CFRAME 0
-# define GREENLET_PY310 0
#endif
-
#if PY_VERSION_HEX >= 0x30B00A4
/*
Greenlet won't compile on anything older than Python 3.11 alpha 4 (see
@@ -124,4 +129,8 @@ static inline void PyThreadState_LeaveTracing(PyThreadState *tstate)
}
#endif
+#if !defined(Py_C_RECURSION_LIMIT) && defined(C_RECURSION_LIMIT)
+# define Py_C_RECURSION_LIMIT C_RECURSION_LIMIT
+#endif
+
#endif /* GREENLET_CPYTHON_COMPAT_H */
diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp
index d52ce1fd..6da6841f 100644
--- a/src/greenlet/greenlet_greenlet.hpp
+++ b/src/greenlet/greenlet_greenlet.hpp
@@ -23,6 +23,7 @@ using greenlet::refs::BorrowedGreenlet;
#endif
#if GREENLET_PY312
+# define Py_BUILD_CORE
# include "internal/pycore_frame.h"
#endif
From ee2f0c3e99a1cf65cd84b762f6cfcb997b873877 Mon Sep 17 00:00:00 2001
From: Victor Stinner <vstinner@python.org>
Date: Wed, 14 Feb 2024 16:45:56 +0100
Subject: [PATCH 2/8] Add Python 3.13 CI to GitHub Actions
---
.github/workflows/tests.yml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 66b2e458..29e84db0 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -25,7 +25,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12"]
+ python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13"]
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
@@ -35,6 +35,7 @@ jobs:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: setup.py
+ allow-prereleases: true
- name: Install dependencies
run: |
python -m pip install -U pip setuptools wheel
From 00611d7567d09869973fe314f60575674cc877d8 Mon Sep 17 00:00:00 2001
From: Victor Stinner <vstinner@python.org>
Date: Mon, 3 Jun 2024 10:55:14 +0200
Subject: [PATCH 3/8] Support delete_later
---
src/greenlet/TPythonState.cpp | 14 ++++++++++++--
src/greenlet/greenlet.cpp | 4 ++++
src/greenlet/greenlet_cpython_compat.hpp | 6 ++++++
src/greenlet/greenlet_greenlet.hpp | 4 ++++
4 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/src/greenlet/TPythonState.cpp b/src/greenlet/TPythonState.cpp
index c0dbf703..bfb40cac 100644
--- a/src/greenlet/TPythonState.cpp
+++ b/src/greenlet/TPythonState.cpp
@@ -18,7 +18,11 @@ PythonState::PythonState()
#else
,recursion_depth(0)
#endif
+#if GREENLET_PY313
+ ,delete_later(nullptr)
+#else
,trash_delete_nesting(0)
+#endif
#if GREENLET_PY311
,current_frame(nullptr)
,datastack_chunk(nullptr)
@@ -145,7 +149,9 @@ void PythonState::operator<<(const PyThreadState *const tstate) noexcept
Py_XDECREF(frame); // PyThreadState_GetFrame gives us a new
// reference.
this->_top_frame.steal(frame);
- #if GREENLET_PY312
+ #if GREENLET_PY313
+ this->delete_later = Py_XNewRef(tstate->delete_later);
+ #elif GREENLET_PY312
this->trash_delete_nesting = tstate->trash.delete_nesting;
#else // not 312
this->trash_delete_nesting = tstate->trash_delete_nesting;
@@ -213,7 +219,11 @@ void PythonState::operator>>(PyThreadState *const tstate) noexcept
tstate->datastack_top = this->datastack_top;
tstate->datastack_limit = this->datastack_limit;
this->_top_frame.relinquish_ownership();
- #if GREENLET_PY312
+ #if GREENLET_PY313
+ Py_XDECREF(tstate->delete_later);
+ tstate->delete_later = this->delete_later;
+ Py_CLEAR(this->delete_later);
+ #elif GREENLET_PY312
tstate->trash.delete_nesting = this->trash_delete_nesting;
#else // not 3.12
tstate->trash_delete_nesting = this->trash_delete_nesting;
diff --git a/src/greenlet/greenlet.cpp b/src/greenlet/greenlet.cpp
index 5a9818e8..dfc748a8 100644
--- a/src/greenlet/greenlet.cpp
+++ b/src/greenlet/greenlet.cpp
@@ -1328,6 +1328,7 @@ mod_enable_optional_cleanup(PyObject* UNUSED(module), PyObject* flag)
Py_RETURN_NONE;
}
+#if !GREENLET_PY313
PyDoc_STRVAR(mod_get_tstate_trash_delete_nesting_doc,
"get_tstate_trash_delete_nesting() -> Integer\n"
"\n"
@@ -1343,6 +1344,7 @@ mod_get_tstate_trash_delete_nesting(PyObject* UNUSED(module))
return PyLong_FromLong(tstate->trash_delete_nesting);
#endif
}
+#endif
static PyMethodDef GreenMethods[] = {
{"getcurrent",
@@ -1356,7 +1358,9 @@ static PyMethodDef GreenMethods[] = {
{"get_total_main_greenlets", (PyCFunction)mod_get_total_main_greenlets, METH_NOARGS, mod_get_total_main_greenlets_doc},
{"get_clocks_used_doing_optional_cleanup", (PyCFunction)mod_get_clocks_used_doing_optional_cleanup, METH_NOARGS, mod_get_clocks_used_doing_optional_cleanup_doc},
{"enable_optional_cleanup", (PyCFunction)mod_enable_optional_cleanup, METH_O, mod_enable_optional_cleanup_doc},
+#if !GREENLET_PY313
{"get_tstate_trash_delete_nesting", (PyCFunction)mod_get_tstate_trash_delete_nesting, METH_NOARGS, mod_get_tstate_trash_delete_nesting_doc},
+#endif
{NULL, NULL} /* Sentinel */
};
diff --git a/src/greenlet/greenlet_cpython_compat.hpp b/src/greenlet/greenlet_cpython_compat.hpp
index c0fb94c5..ce5fd882 100644
--- a/src/greenlet/greenlet_cpython_compat.hpp
+++ b/src/greenlet/greenlet_cpython_compat.hpp
@@ -55,6 +55,12 @@ Greenlet won't compile on anything older than Python 3.11 alpha 4 (see
# define GREENLET_PY312 0
#endif
+#if PY_VERSION_HEX >= 0x30D0000
+# define GREENLET_PY313 1
+#else
+# define GREENLET_PY313 0
+#endif
+
#ifndef Py_SET_REFCNT
/* Py_REFCNT and Py_SIZE macros are converted to functions
https://bugs.python.org/issue39573 */
diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp
index 6da6841f..fbfdfbfc 100644
--- a/src/greenlet/greenlet_greenlet.hpp
+++ b/src/greenlet/greenlet_greenlet.hpp
@@ -111,7 +111,11 @@ namespace greenlet
#else
int recursion_depth;
#endif
+#if GREENLET_PY313
+ PyObject *delete_later;
+#else
int trash_delete_nesting;
+#endif
#if GREENLET_PY311
_PyInterpreterFrame* current_frame;
_PyStackChunk* datastack_chunk;
From b65558ec962d3d81ae09787ebca8686d233e2a4c Mon Sep 17 00:00:00 2001
From: Victor Stinner <vstinner@python.org>
Date: Wed, 5 Jun 2024 12:04:21 +0200
Subject: [PATCH 4/8] Fix current_frame
---
src/greenlet/TPythonState.cpp | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/greenlet/TPythonState.cpp b/src/greenlet/TPythonState.cpp
index bfb40cac..82eb34f0 100644
--- a/src/greenlet/TPythonState.cpp
+++ b/src/greenlet/TPythonState.cpp
@@ -138,7 +138,9 @@ void PythonState::operator<<(const PyThreadState *const tstate) noexcept
#else // not 312
this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
#endif // GREENLET_PY312
- #if GREENLET_USE_CFRAME
+ #if GREENLET_PY313
+ this->current_frame = tstate->current_frame;
+ #elif GREENLET_USE_CFRAME
this->current_frame = tstate->cframe->current_frame;
#endif
this->datastack_chunk = tstate->datastack_chunk;
@@ -212,7 +214,9 @@ void PythonState::operator>>(PyThreadState *const tstate) noexcept
#else // \/ 3.11
tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth;
#endif // GREENLET_PY312
- #if GREENLET_USE_CFRAME
+ #if GREENLET_PY313
+ tstate->current_frame = this->current_frame;
+ #elif GREENLET_USE_CFRAME
tstate->cframe->current_frame = this->current_frame;
#endif
tstate->datastack_chunk = this->datastack_chunk;
From b7cfc1748766cac351fe5fca32fa7c8cacdea2ae Mon Sep 17 00:00:00 2001
From: Victor Stinner <vstinner@python.org>
Date: Wed, 5 Jun 2024 12:17:28 +0200
Subject: [PATCH 5/8] Update tests
---
src/greenlet/tests/test_greenlet.py | 4 +++-
src/greenlet/tests/test_greenlet_trash.py | 9 +++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/greenlet/tests/test_greenlet.py b/src/greenlet/tests/test_greenlet.py
index 51849cd6..259707ae 100644
--- a/src/greenlet/tests/test_greenlet.py
+++ b/src/greenlet/tests/test_greenlet.py
@@ -471,7 +471,9 @@ def creator():
# Unfortunately, this doesn't actually clear the references, they're in the
# fast local array.
if not wait_for_cleanup:
- result[0].gr_frame.f_locals.clear()
+ # f_locals has no clear method in Python 3.13
+ if hasattr(result[0].gr_frame.f_locals, 'clear'):
+ result[0].gr_frame.f_locals.clear()
else:
self.assertIsNone(result[0].gr_frame)
diff --git a/src/greenlet/tests/test_greenlet_trash.py b/src/greenlet/tests/test_greenlet_trash.py
index 8d9716e9..2bce8fd0 100644
--- a/src/greenlet/tests/test_greenlet_trash.py
+++ b/src/greenlet/tests/test_greenlet_trash.py
@@ -29,8 +29,17 @@
import unittest
+try:
+ from greenlet._greenlet import get_tstate_trash_delete_nesting
+except ImportError:
+ get_tstate_trash_delete_nesting = None
+
+
class TestTrashCanReEnter(unittest.TestCase):
+ # Python 3.13 has not "trash delete nesting" anymore (but "delete later")
+ @unittest.skipIf(get_tstate_trash_delete_nesting is None,
+ 'need get_tstate_trash_delete_nesting()')
def test_it(self):
# Try several times to trigger it, because it isn't 100%
# reliable.
From 9b683398a91813fe861d9fc1e283b72bc17bfa61 Mon Sep 17 00:00:00 2001
From: Jason Madden <jamadden@gmail.com>
Date: Wed, 4 Sep 2024 12:20:45 -0500
Subject: [PATCH 6/8] Update test_greenlet_trash.py to avoid redefining
variables
---
src/greenlet/tests/test_greenlet_trash.py | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/src/greenlet/tests/test_greenlet_trash.py b/src/greenlet/tests/test_greenlet_trash.py
index 2bce8fd0..a3f58b7f 100644
--- a/src/greenlet/tests/test_greenlet_trash.py
+++ b/src/greenlet/tests/test_greenlet_trash.py
@@ -29,18 +29,17 @@
import unittest
-try:
- from greenlet._greenlet import get_tstate_trash_delete_nesting
-except ImportError:
- get_tstate_trash_delete_nesting = None
-
class TestTrashCanReEnter(unittest.TestCase):
- # Python 3.13 has not "trash delete nesting" anymore (but "delete later")
- @unittest.skipIf(get_tstate_trash_delete_nesting is None,
- 'need get_tstate_trash_delete_nesting()')
def test_it(self):
+ try:
+ from greenlet._greenlet import get_tstate_trash_delete_nesting
+ except ImportError:
+ import sys
+ # Python 3.13 has not "trash delete nesting" anymore (but "delete later")
+ assert sys.version_info[:2] >= (3, 13)
+ self.skipTest("get_tstate_trash_delete_nesting is not available.")
# Try several times to trigger it, because it isn't 100%
# reliable.
for _ in range(10):
@@ -48,7 +47,6 @@ def test_it(self):
def check_it(self): # pylint:disable=too-many-statements
import greenlet
- from greenlet._greenlet import get_tstate_trash_delete_nesting # pylint:disable=no-name-in-module
main = greenlet.getcurrent()
From 3d0f50129c4f889899e3ce341089a139241ef15b Mon Sep 17 00:00:00 2001
From: Jason Madden <jamadden@gmail.com>
Date: Wed, 4 Sep 2024 12:27:01 -0500
Subject: [PATCH 7/8] D'oh, removed one too many.
---
src/greenlet/tests/test_greenlet_trash.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/greenlet/tests/test_greenlet_trash.py b/src/greenlet/tests/test_greenlet_trash.py
index a3f58b7f..c734b983 100644
--- a/src/greenlet/tests/test_greenlet_trash.py
+++ b/src/greenlet/tests/test_greenlet_trash.py
@@ -34,7 +34,8 @@ class TestTrashCanReEnter(unittest.TestCase):
def test_it(self):
try:
- from greenlet._greenlet import get_tstate_trash_delete_nesting
+ # pylint:disable-next=no-name-in-module
+ from greenlet._greenlet import get_tstate_trash_delete_nesting
except ImportError:
import sys
# Python 3.13 has not "trash delete nesting" anymore (but "delete later")
@@ -47,7 +48,7 @@ def test_it(self):
def check_it(self): # pylint:disable=too-many-statements
import greenlet
-
+ from greenlet._greenlet import get_tstate_trash_delete_nesting # pylint:disable=no-name-in-module
main = greenlet.getcurrent()
assert get_tstate_trash_delete_nesting() == 0
From 3ce88eb9e5e153b3c8d2fb837441810e5a9cb144 Mon Sep 17 00:00:00 2001
From: Jason Madden <jamadden@gmail.com>
Date: Wed, 4 Sep 2024 12:42:19 -0500
Subject: [PATCH 8/8] Trailing whitespace makes the linter mad. Thanks GitHub
web editor.
---
src/greenlet/tests/test_greenlet_trash.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/greenlet/tests/test_greenlet_trash.py b/src/greenlet/tests/test_greenlet_trash.py
index c734b983..c1fc1374 100644
--- a/src/greenlet/tests/test_greenlet_trash.py
+++ b/src/greenlet/tests/test_greenlet_trash.py
@@ -35,12 +35,13 @@ class TestTrashCanReEnter(unittest.TestCase):
def test_it(self):
try:
# pylint:disable-next=no-name-in-module
- from greenlet._greenlet import get_tstate_trash_delete_nesting
+ from greenlet._greenlet import get_tstate_trash_delete_nesting # pylint:disable=unused-import
except ImportError:
import sys
# Python 3.13 has not "trash delete nesting" anymore (but "delete later")
assert sys.version_info[:2] >= (3, 13)
self.skipTest("get_tstate_trash_delete_nesting is not available.")
+
# Try several times to trigger it, because it isn't 100%
# reliable.
for _ in range(10):