summaryrefslogtreecommitdiff
path: root/dev-python/gmpy/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2021-05-22 07:31:18 +0100
committerV3n3RiX <venerix@redcorelinux.org>2021-05-22 07:31:18 +0100
commit908778078736bd36f7a60a2d576d415cb8e000fa (patch)
treec6a4796c48b608c14dc7e9674cdbd38f905e3c15 /dev-python/gmpy/files
parent185fa19bbf68a4d4dca534d2b46729207a177f16 (diff)
gentoo resync : 22.05.2021
Diffstat (limited to 'dev-python/gmpy/files')
-rw-r--r--dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch132
-rw-r--r--dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch17
-rw-r--r--dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch12
3 files changed, 161 insertions, 0 deletions
diff --git a/dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch b/dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch
new file mode 100644
index 000000000000..38a98579409a
--- /dev/null
+++ b/dev-python/gmpy/files/gmpy-2.1.0_beta5-failed-tests.patch
@@ -0,0 +1,132 @@
+diff --git a/src/gmpy2_mpz.c b/src/gmpy2_mpz.c
+index e5087fa..66a297a 100644
+--- a/src/gmpy2_mpz.c
++++ b/src/gmpy2_mpz.c
+@@ -69,7 +69,7 @@ static PyNumberMethods GMPy_MPZ_number_methods =
+ (binaryfunc) GMPy_MPZ_ISub_Slot, /* nb_inplace_subtract */
+ (binaryfunc) GMPy_MPZ_IMul_Slot, /* nb_inplace_multiply */
+ (binaryfunc) GMPy_MPZ_IRem_Slot, /* nb_inplace_remainder */
+- (ternaryfunc) GMPy_MPZ_IPow_Slot, /* nb_inplace_power */
++ 0, /* nb_inplace_power */
+ (binaryfunc) GMPy_MPZ_ILshift_Slot, /* nb_inplace_lshift */
+ (binaryfunc) GMPy_MPZ_IRshift_Slot, /* nb_inplace_rshift */
+ 0, /* nb_inplace_and */
+@@ -113,7 +113,7 @@ static PyNumberMethods GMPy_MPZ_number_methods =
+ (binaryfunc) GMPy_MPZ_IMul_Slot, /* nb_inplace_multiply */
+ 0, /* nb_inplace_divide */
+ (binaryfunc) GMPy_MPZ_IRem_Slot, /* nb_inplace_remainder */
+- (ternaryfunc) GMPy_MPZ_IPow_Slot, /* nb_inplace_power */
++ 0, /* nb_inplace_power */
+ (binaryfunc) GMPy_MPZ_ILshift_Slot, /* nb_inplace_lshift */
+ (binaryfunc) GMPy_MPZ_IRshift_Slot, /* nb_inplace_rshift */
+ 0, /* nb_inplace_and */
+@@ -229,4 +229,3 @@ static PyTypeObject MPZ_Type =
+ GMPy_MPZ_NewInit, /* tp_new */
+ 0, /* tp_free */
+ };
+-
+diff --git a/src/gmpy2_pow.c b/src/gmpy2_pow.c
+index ddcb43a..cf96470 100644
+--- a/src/gmpy2_pow.c
++++ b/src/gmpy2_pow.c
+@@ -98,8 +98,11 @@ GMPy_Integer_Pow(PyObject *b, PyObject *e, PyObject *m, CTXT_Object *context)
+ unsigned long el;
+
+ if (mpz_sgn(tempe->z) < 0) {
+- VALUE_ERROR("pow() exponent cannot be negative");
+- goto err;
++ Py_DECREF((PyObject*)result);
++ Py_DECREF((PyObject*)tempb);
++ Py_DECREF((PyObject*)tempe);
++
++ return GMPy_Real_Pow(b, e, m, context);
+ }
+
+ /* Catch -1, 0, 1 getting raised to large exponents. */
+diff --git a/src/gmpy2_xmpz_inplace.c b/src/gmpy2_xmpz_inplace.c
+index bbcd977..e5bbf09 100644
+--- a/src/gmpy2_xmpz_inplace.c
++++ b/src/gmpy2_xmpz_inplace.c
+@@ -271,14 +271,14 @@ GMPy_XMPZ_IPow_Slot(PyObject *self, PyObject *other, PyObject *mod)
+ mp_bitcnt_t exp;
+
+ exp = mp_bitcnt_t_From_Integer(other);
+- if (exp == (mp_bitcnt_t)(-1) && PyErr_Occurred()) {
+- PyErr_Clear();
+- Py_RETURN_NOTIMPLEMENTED;
+- }
++ if (exp == (mp_bitcnt_t)(-1) && PyErr_Occurred())
++ return NULL;
+
+ mpz_pow_ui(MPZ(self), MPZ(self), exp);
+ Py_INCREF((PyObject*)self);
+ return (PyObject*)self;
++
++ Py_RETURN_NOTIMPLEMENTED;
+ }
+
+ /* Inplace xmpz and.
+@@ -346,4 +346,3 @@ GMPy_XMPZ_IIor_Slot(PyObject *self, PyObject *other)
+
+ Py_RETURN_NOTIMPLEMENTED;
+ }
+-
+diff --git a/test/test_gmpy2_mpz_inplace.txt b/test/test_gmpy2_mpz_inplace.txt
+index e7a8b96..147118c 100644
+--- a/test/test_gmpy2_mpz_inplace.txt
++++ b/test/test_gmpy2_mpz_inplace.txt
+@@ -147,18 +147,16 @@ Test ipow operator
+ mpz(25)
+ >>> x **= xmpz(2); x
+ mpz(625)
+->>> x **= -2
+-Traceback (most recent call last):
+- File "<stdin>", line 1, in <module>
+-TypeError: unsupported operand type(s) for ** or pow(): 'mpz' and 'int'
++>>> x **= -2; x
++mpfr('2.5600000000000001e-06')
++>>> x = mpz(625)
+ >>> x **= 2; x
+ mpz(390625)
+->>> x **= mpfr(2)
+-Traceback (most recent call last):
+- File "<stdin>", line 1, in <module>
+-TypeError: unsupported operand type(s) for ** or pow(): 'mpz' and 'mpfr'
+->>> 1
+-1
++>>> x **= mpfr(2); x
++mpfr('152587890625.0')
++>>> x = mpz(390625)
++>>> x **= mpfr(-2); x
++mpfr('6.5535999999999999e-12')
+
+ Test iand operator
+ ------------------
+diff --git a/test/test_gmpy2_pow.txt b/test/test_gmpy2_pow.txt
+index 89bd876..d5b1f45 100644
+--- a/test/test_gmpy2_pow.txt
++++ b/test/test_gmpy2_pow.txt
+@@ -15,9 +15,7 @@ mpz(25)
+ >>> ctx.pow(z1, z2)
+ mpz(25)
+ >>> z1 ** -z2
+-Traceback (most recent call last):
+- File "<stdin>", line 1, in <module>
+-ValueError: pow() exponent cannot be negative
++mpfr('0.040000000000000001')
+ >>> z1 ** 0
+ mpz(1)
+ >>> mpz(0) ** 32
+diff --git a/test/test_gmpy2_xmpz_inplace.txt b/test/test_gmpy2_xmpz_inplace.txt
+index 94f86b7..c02f966 100644
+--- a/test/test_gmpy2_xmpz_inplace.txt
++++ b/test/test_gmpy2_xmpz_inplace.txt
+@@ -135,7 +135,7 @@ xmpz(625)
+ >>> x **= -2
+ Traceback (most recent call last):
+ File "<stdin>", line 1, in <module>
+-TypeError: unsupported operand type(s) for ** or pow(): 'xmpz' and 'int'
++ValueError: a non-negative value is required
+ >>> x **= 2; x
+ xmpz(390625)
+ >>> x **= mpfr(2)
diff --git a/dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch b/dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch
new file mode 100644
index 000000000000..9f59a6096fcd
--- /dev/null
+++ b/dev-python/gmpy/files/gmpy-2.1.0_beta5-pyhash-nan.patch
@@ -0,0 +1,17 @@
+diff --git a/src/gmpy2_hash.c b/src/gmpy2_hash.c
+index f276a42..1d2bfd1 100644
+--- a/src/gmpy2_hash.c
++++ b/src/gmpy2_hash.c
+@@ -147,7 +147,12 @@ _mpfr_hash(mpfr_t f)
+ }
+ }
+ else {
++#if PY_VERSION_HEX >= 0x030A00A0
++ // Python 3.10
++ return _Py_HashPointer(f);
++#else
+ return _PyHASH_NAN;
++#endif
+ }
+ }
+
diff --git a/dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch b/dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch
new file mode 100644
index 000000000000..16705d917c93
--- /dev/null
+++ b/dev-python/gmpy/files/gmpy-2.1.0_beta5-test-input.patch
@@ -0,0 +1,12 @@
+diff --git a/test/runtests.py b/test/runtests.py
+index 5e5842d..7d64e52 100644
+--- a/test/runtests.py
++++ b/test/runtests.py
+@@ -81,7 +81,6 @@ if sys.version.startswith('3.1.'):
+ print("with Python 3.1. The doctest module in Python 3.2 and later does not")
+ print("have this issue.")
+ print()
+- input("Press ENTER to continue.. ")
+ print()
+
+ mpz_doctests = ["test_mpz_create.txt", "test_mpz.txt", "test_mpz_io.txt",