commit:     92906f88a84d05334f9a9382a3794f074ceadf99
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 13 12:40:27 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Oct 13 12:40:27 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=92906f88

dev-python/greenlet: Remove old

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/greenlet/Manifest                       |   1 -
 .../greenlet/files/greenlet-3.0.3-py313.patch      | 225 ---------------------
 dev-python/greenlet/greenlet-3.0.3-r1.ebuild       |  53 -----
 3 files changed, 279 deletions(-)

diff --git a/dev-python/greenlet/Manifest b/dev-python/greenlet/Manifest
index f0aec4deb955..76df4ed386a1 100644
--- a/dev-python/greenlet/Manifest
+++ b/dev-python/greenlet/Manifest
@@ -1,2 +1 @@
-DIST greenlet-3.0.3.tar.gz 182013 BLAKE2B 
34ba9f13dd01f5bacedb69952b4d3d08e55eba82d94c5d95cf8bfeb0f1ce94dbde9d62f5e56c33cbf2467d82f6ffd8d05a37048d0292102b1dbb68c67e9398f4
 SHA512 
20d8818376a200332cbc2c85968317ddf828d2adf3fcc3c53623cd1504ec9a4e4e987e841bd2fe65e934e2b8a5e73a7205847526f0bd196e7afcdf3ae40e9d9b
 DIST greenlet-3.1.1.tar.gz 186022 BLAKE2B 
1d73f63d3bf881534bd64eca6510f32d1596261bd42176d396c7a0442494c73f8b03e57621bd11fc1bc67db550514c26a94926eaba8c53e08eecb3f999c9ba16
 SHA512 
915a6e22c20b235de472c61c7bc4cb60a08b79e29127c4fb817c362cee37f589bc362f12ed31bdc7dda91f49976d4e2784c8d13202bf598156a0aacacdb7f6fb

diff --git a/dev-python/greenlet/files/greenlet-3.0.3-py313.patch 
b/dev-python/greenlet/files/greenlet-3.0.3-py313.patch
deleted file mode 100644
index 195acae3fa6d..000000000000
--- a/dev-python/greenlet/files/greenlet-3.0.3-py313.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-diff --git a/src/greenlet/TPythonState.cpp b/src/greenlet/TPythonState.cpp
-index 465d4174..82eb34f0 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)
-@@ -130,11 +134,15 @@ 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_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;
-     this->datastack_top = tstate->datastack_top;
-     this->datastack_limit = tstate->datastack_limit;
-@@ -143,7 +151,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;
-@@ -199,17 +209,25 @@ 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_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;
-     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;
-@@ -238,7 +256,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.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 cdc1617f..ce5fd882 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
-@@ -50,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 */
-@@ -124,4 +135,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..fbfdfbfc 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
- 
-@@ -110,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;
-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.

diff --git a/dev-python/greenlet/greenlet-3.0.3-r1.ebuild 
b/dev-python/greenlet/greenlet-3.0.3-r1.ebuild
deleted file mode 100644
index 85044130cc16..000000000000
--- a/dev-python/greenlet/greenlet-3.0.3-r1.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-# Note: greenlet is built-in in pypy
-PYTHON_COMPAT=( python3_{10..13} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Lightweight in-process concurrent programming"
-HOMEPAGE="
-       https://greenlet.readthedocs.io/en/latest/
-       https://github.com/python-greenlet/greenlet/
-       https://pypi.org/project/greenlet/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 -hppa ~m68k ppc64 ~riscv ~s390 sparc x86 
~amd64-linux ~x86-linux ~x64-macos"
-
-BDEPEND="
-       test? (
-               dev-python/objgraph[${PYTHON_USEDEP}]
-               dev-python/psutil[${PYTHON_USEDEP}]
-       )
-"
-
-distutils_enable_sphinx docs \
-       dev-python/furo
-distutils_enable_tests unittest
-
-src_prepare() {
-       local PATCHES=(
-               # https://github.com/python-greenlet/greenlet/pull/396
-               "${FILESDIR}/${P}-py313.patch"
-       )
-
-       distutils-r1_src_prepare
-
-       # patch cflag manipulations out
-       sed -i -e 's:global_compile_args[.]append.*:pass:' setup.py || die
-       # broken assertions on py3.12+
-       # https://github.com/python-greenlet/greenlet/issues/368
-       sed -e 's:test_trace_events_multiple_greenlets_switching:_&: ' \
-               -i src/greenlet/tests/test_tracing.py || die
-}
-
-python_test() {
-       eunittest greenlet.tests
-}

Reply via email to