summaryrefslogtreecommitdiff
path: root/dev-python/cython/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-07-18 00:58:25 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-07-18 00:58:25 +0100
commit5e0a5ca921524f8859808527a57655eec16efa52 (patch)
tree7c58411b1e81478df4e20082a6adec2553c24c5c /dev-python/cython/files
parent4c16e0a214824f15f09396e359db4f1f5c086fec (diff)
gentoo auto-resync : 18:07:2023 - 00:58:24
Diffstat (limited to 'dev-python/cython/files')
-rw-r--r--dev-python/cython/files/cython-3.0.0_beta3-const-iter.patch207
-rw-r--r--dev-python/cython/files/cython-3.0.0_beta3-py312-long.patch28
2 files changed, 0 insertions, 235 deletions
diff --git a/dev-python/cython/files/cython-3.0.0_beta3-const-iter.patch b/dev-python/cython/files/cython-3.0.0_beta3-const-iter.patch
deleted file mode 100644
index 18822f12904a..000000000000
--- a/dev-python/cython/files/cython-3.0.0_beta3-const-iter.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From 913b8fadc5fc45306764c0ede472e1bc3b606d10 Mon Sep 17 00:00:00 2001
-From: Isuru Fernando <isuruf@gmail.com>
-Date: Mon, 12 Jun 2023 13:42:09 -0500
-Subject: [PATCH 1/4] Don't remove const for reverse iteration
-
----
- Cython/Compiler/ExprNodes.py | 27 ---------------------------
- Cython/Includes/libcpp/map.pxd | 8 ++++++--
- 2 files changed, 6 insertions(+), 29 deletions(-)
-
-diff --git a/Cython/Compiler/ExprNodes.py b/Cython/Compiler/ExprNodes.py
-index ad4701b7bb6..275a6233da5 100644
---- a/Cython/Compiler/ExprNodes.py
-+++ b/Cython/Compiler/ExprNodes.py
-@@ -3268,32 +3268,6 @@ def free_temps(self, code):
- ExprNode.free_temps(self, code)
-
-
--def remove_const(item_type):
-- """
-- Removes the constness of a given type and its underlying templates
-- if any.
--
-- This is to solve the compilation error when the temporary variable used to
-- store the result of an iterator cannot be changed due to its constness.
-- For example, the value_type of std::map, which will also be the type of
-- the temporarry variable, is std::pair<const Key, T>. This means the first
-- component of the variable cannot be reused to store the result of each
-- iteration, which leads to a compilation error.
-- """
-- if item_type.is_const:
-- item_type = item_type.cv_base_type
-- if item_type.is_typedef:
-- item_type = remove_const(item_type.typedef_base_type)
-- if item_type.is_cpp_class and item_type.templates:
-- templates = [remove_const(t) if t.is_const else t for t in item_type.templates]
-- template_type = item_type.template_type
-- item_type = PyrexTypes.CppClassType(
-- template_type.name, template_type.scope,
-- template_type.cname, template_type.base_classes,
-- templates, template_type)
-- return item_type
--
--
- class NextNode(AtomicExprNode):
- # Used as part of for statement implementation.
- # Implements result = next(iterator)
-@@ -3336,7 +3310,6 @@ def infer_type(self, env, iterator_type=None):
-
- def analyse_types(self, env):
- self.type = self.infer_type(env, self.iterator.type)
-- self.type = remove_const(self.type)
- self.is_temp = 1
- return self
-
-diff --git a/Cython/Includes/libcpp/map.pxd b/Cython/Includes/libcpp/map.pxd
-index d81af66e09a..2c2c5c82adf 100644
---- a/Cython/Includes/libcpp/map.pxd
-+++ b/Cython/Includes/libcpp/map.pxd
-@@ -50,7 +50,9 @@ cdef extern from "<map>" namespace "std" nogil:
- cppclass reverse_iterator:
- reverse_iterator() except +
- reverse_iterator(reverse_iterator&) except +
-- value_type& operator*()
-+ # correct would be value_type& but this does not work
-+ # well with cython's code gen
-+ pair[T, U]& operator*()
- reverse_iterator operator++()
- reverse_iterator operator--()
- reverse_iterator operator++(int)
-@@ -63,7 +65,9 @@ cdef extern from "<map>" namespace "std" nogil:
- const_reverse_iterator() except +
- const_reverse_iterator(reverse_iterator&) except +
- operator=(reverse_iterator&) except +
-- const value_type& operator*()
-+ # correct would be const value_type& but this does not work
-+ # well with cython's code gen
-+ const pair[T, U]& operator*()
- const_reverse_iterator operator++()
- const_reverse_iterator operator--()
- const_reverse_iterator operator++(int)
-
-From cb804f989eaa9938e72d0336d82bb7aa0003455f Mon Sep 17 00:00:00 2001
-From: Isuru Fernando <isuruf@gmail.com>
-Date: Mon, 12 Jun 2023 13:57:58 -0500
-Subject: [PATCH 2/4] Add test from gh5478
-
----
- tests/run/cpp_iterators.pyx | 22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/tests/run/cpp_iterators.pyx b/tests/run/cpp_iterators.pyx
-index 81048d0b36b..424168fa825 100644
---- a/tests/run/cpp_iterators.pyx
-+++ b/tests/run/cpp_iterators.pyx
-@@ -7,6 +7,7 @@ from libcpp.map cimport map as stdmap
- from libcpp.set cimport set as stdset
- from libcpp.string cimport string
- from libcpp.vector cimport vector
-+from libcpp.memory cimport shared_ptr, make_shared
- from cython.operator cimport dereference as deref
-
- cdef extern from "cpp_iterators_simple.h":
-@@ -272,6 +273,27 @@ def test_iteration_over_attribute_of_call():
- for i in get_object_with_iterable_attribute().vec:
- print(i)
-
-+cdef extern from *:
-+ # TODO: support make_shared[const int]
-+ shared_ptr[const int] make_shared_const_int "std::make_shared<const int>"(int)
-+
-+def test_iteration_over_shared_const_ptr_set(py_v):
-+ """
-+ >>> test_iteration_over_shared_const_ptr_set[2, 4, 6])
-+ 6
-+ 4
-+ 2
-+ """
-+ cdef stdset[shared_ptr[const int]] s
-+ cdef int i
-+ for e in py_v:
-+ i = e
-+ s.insert(make_shared_const_int(i))
-+
-+ cdef shared_ptr[const int] a
-+ for a in s:
-+ print(deref(a))
-+
- def test_iteration_over_reversed_list(py_v):
- """
- >>> test_iteration_over_reversed_list([2, 4, 6])
-
-From a9bfacdcf5358e9d5a1d3c8ab0dd2eff6f18018a Mon Sep 17 00:00:00 2001
-From: Isuru Fernando <isuruf@gmail.com>
-Date: Mon, 12 Jun 2023 14:07:37 -0500
-Subject: [PATCH 3/4] Fix multimap too
-
----
- Cython/Includes/libcpp/map.pxd | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/Cython/Includes/libcpp/map.pxd b/Cython/Includes/libcpp/map.pxd
-index 2c2c5c82adf..eb739509ac1 100644
---- a/Cython/Includes/libcpp/map.pxd
-+++ b/Cython/Includes/libcpp/map.pxd
-@@ -177,7 +177,9 @@ cdef extern from "<map>" namespace "std" nogil:
- cppclass reverse_iterator:
- reverse_iterator() except +
- reverse_iterator(reverse_iterator&) except +
-- value_type& operator*()
-+ # correct would be value_type& but this does not work
-+ # well with cython's code gen
-+ pair[T, U]& operator*()
- reverse_iterator operator++()
- reverse_iterator operator--()
- reverse_iterator operator++(int)
-@@ -190,7 +192,9 @@ cdef extern from "<map>" namespace "std" nogil:
- const_reverse_iterator() except +
- const_reverse_iterator(reverse_iterator&) except +
- operator=(reverse_iterator&) except +
-- const value_type& operator*()
-+ # correct would be const value_type& but this does not work
-+ # well with cython's code gen
-+ const pair[T, U]& operator*()
- const_reverse_iterator operator++()
- const_reverse_iterator operator--()
- const_reverse_iterator operator++(int)
-
-From 0528cd937e6d4606eb0902ee8d8db672ee7f88fe Mon Sep 17 00:00:00 2001
-From: Isuru Fernando <isuruf@gmail.com>
-Date: Mon, 12 Jun 2023 17:50:41 -0500
-Subject: [PATCH 4/4] Fix test
-
----
- tests/run/cpp_iterators.pyx | 15 +++++++--------
- 1 file changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/tests/run/cpp_iterators.pyx b/tests/run/cpp_iterators.pyx
-index 424168fa825..57d2716bea5 100644
---- a/tests/run/cpp_iterators.pyx
-+++ b/tests/run/cpp_iterators.pyx
-@@ -277,18 +277,17 @@ cdef extern from *:
- # TODO: support make_shared[const int]
- shared_ptr[const int] make_shared_const_int "std::make_shared<const int>"(int)
-
--def test_iteration_over_shared_const_ptr_set(py_v):
-+def test_iteration_over_shared_const_ptr_vector(py_v):
- """
-- >>> test_iteration_over_shared_const_ptr_set[2, 4, 6])
-- 6
-- 4
-+ >>> test_iteration_over_shared_const_ptr_vector([2, 4, 6])
- 2
-+ 4
-+ 6
- """
-- cdef stdset[shared_ptr[const int]] s
-+ cdef vector[shared_ptr[const int]] s
- cdef int i
-- for e in py_v:
-- i = e
-- s.insert(make_shared_const_int(i))
-+ for i in py_v:
-+ s.push_back(make_shared_const_int(i))
-
- cdef shared_ptr[const int] a
- for a in s:
diff --git a/dev-python/cython/files/cython-3.0.0_beta3-py312-long.patch b/dev-python/cython/files/cython-3.0.0_beta3-py312-long.patch
deleted file mode 100644
index fb849eca8666..000000000000
--- a/dev-python/cython/files/cython-3.0.0_beta3-py312-long.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From d82e4e34582e908d315b912a60d81d5759850df5 Mon Sep 17 00:00:00 2001
-From: Stefan Behnel <stefan_ml@behnel.de>
-Date: Mon, 29 May 2023 21:58:15 +0200
-Subject: [PATCH] Fix the argument type passed into the new
- "PyUnstable_Long_Compact*()" C-API functions in CPython 3.12.
-
----
- Cython/Utility/TypeConversion.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Cython/Utility/TypeConversion.c b/Cython/Utility/TypeConversion.c
-index efc5c1373..09e87d81c 100644
---- a/Cython/Utility/TypeConversion.c
-+++ b/Cython/Utility/TypeConversion.c
-@@ -149,8 +149,8 @@ static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject*);
- ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * __Pyx_PyLong_DigitCount(x))
-
- #if defined(PyUnstable_Long_IsCompact) && defined(PyUnstable_Long_CompactValue)
-- #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact(x)
-- #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue(x)
-+ #define __Pyx_PyLong_IsCompact(x) PyUnstable_Long_IsCompact((PyLongObject*) x)
-+ #define __Pyx_PyLong_CompactValue(x) PyUnstable_Long_CompactValue((PyLongObject*) x)
- #else
- #define __Pyx_PyLong_IsCompact(x) (((PyLongObject*)x)->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS))
- #define __Pyx_PyLong_CompactValue(x) ((1 - (Py_ssize_t) __Pyx_PyLong_Sign(x)) * (Py_ssize_t) __Pyx_PyLong_Digits(x)[0])
---
-2.41.0
-