python3-cysignals: update to 1.11.3.

This commit is contained in:
Gonzalo Tornaría 2023-10-04 23:51:29 -03:00 committed by Andrew J. Hesford
parent 02b95709b1
commit 155bd2e57b
5 changed files with 4 additions and 92 deletions

View file

@ -1,13 +0,0 @@
diff --git a/src/cysignals/signals.pxd.in b/src/cysignals/signals.pxd.in
index c86e085..a98c8d1 100644
--- a/src/cysignals/signals.pxd.in
+++ b/src/cysignals/signals.pxd.in
@@ -54,7 +54,7 @@ cdef extern from "macros.h" nogil:
# can be used to make Cython check whether there is a pending exception
# (PyErr_Occurred() is non-NULL). To Cython, it will look like
# cython_check_exception() actually raised the exception.
-cdef inline void cython_check_exception() nogil except *:
+cdef inline void cython_check_exception() except * nogil:
pass

View file

@ -1,30 +0,0 @@
commit 9996a4028ddc7f9a5ffda3df65d5b7d3b7df8aa5
Author: Gonzalo Tornaría <tornaria@cmat.edu.uy>
Date: Wed Jul 19 18:34:57 2023 -0300
cython3 support using legacy directives
diff --git a/setup.py b/setup.py
index 37acdfc..f68270b 100755
--- a/setup.py
+++ b/setup.py
@@ -157,13 +157,17 @@ class build_ext(_build_ext):
# Run Cython with -Werror on continuous integration services
# with Python 3.6 or later
from Cython.Compiler import Options
- Options.warning_errors = True
+ Options.warning_errors = False
from Cython.Build.Dependencies import cythonize
return cythonize(extensions,
build_dir=cythonize_dir,
include_path=["src", os.path.join(cythonize_dir, "src")],
- compiler_directives=dict(binding=True, language_level=2))
+ compiler_directives=dict(
+ binding=True,
+ language_level=2,
+ legacy_implicit_noexcept=True,
+ ))
class build_py(_build_py):

View file

@ -1,46 +0,0 @@
Fix a doctest failure which triggers in i686.
The example is in the function `test_bad_str()` in the file `tests.pyx`.
The test pases a bad string to `sig_str()` and then raises `SIGILL`. The
signal handler eventually raises a Python exception which in turn raises
a `SIGSEGV` when accessing the bad string. An error message is expected,
but that doesn't happen.
Presumably the segfault happens inside some stdio function which leaves
stdio buffers in an inconsistent state so the latter `fprintf` doesn't
work properly. From signal-safety(7):
Suppose that the main program is in the middle of a call to a
stdio function such as printf(3) where the buffer and associated
variables have been partially updated. If, at that moment, the
program is interrupted by a signal handler that also calls
printf(3), then the second call to printf(3) will operate on
inconsistent data, with unpredictable results.
We fix this by replacing the `fprintf` by calls to `write`, which is
async-signal-safe according to POSIX.
--- a/src/cysignals/implementation.c 2022-01-16 22:36:45.143796872 +0000
+++ b/src/cysignals/implementation.c 2022-01-17 02:22:31.196695043 +0000
@@ -638,12 +622,15 @@
#endif
if (s) {
+ /* Using fprintf from inside a signal handler is undefined, see signal-safety(7) */
+ const char * message =
+ "\n"
+ "This probably occurred because a *compiled* module has a bug\n"
+ "in it and is not properly wrapped with sig_on(), sig_off().\n"
+ "Python will now terminate.\n"
+ "------------------------------------------------------------------------\n";
+ write(2, s, strlen(s));
+ write(2, message, strlen(message));
- fprintf(stderr,
- "%s\n"
- "This probably occurred because a *compiled* module has a bug\n"
- "in it and is not properly wrapped with sig_on(), sig_off().\n"
- "Python will now terminate.\n", s);
- print_sep();
}
dienow:

View file

@ -1,7 +1,7 @@
# Template file for 'python3-cysignals'
pkgname=python3-cysignals
version=1.11.2
revision=5
version=1.11.3
revision=1
build_style=python3-module
hostmakedepends="python3-setuptools python3-Cython autoconf"
makedepends="python3-devel pari-devel"
@ -11,7 +11,7 @@ maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
license="LGPL-3.0-or-later"
homepage="https://github.com/sagemath/cysignals"
distfiles="${PYPI_SITE}/c/cysignals/cysignals-${version}.tar.gz"
checksum=5858b1760fbe21848121b826b2463a67ac5a45caf3d73105497a68618c5a6fa6
checksum=c2c01f666e5904948952a2250548d8c36ccedd640383791feacf26ea2b958365
nocross=yes # runs binaries built for target
do_check() {

View file

@ -0,0 +1 @@
ignore="*a* *b* *rc*"