Skip to content

Commit 685e86b

Browse files
author
Release Manager
committed
gh-37583: Workaround warning in cython 3.0.9 (#37560) A new warning in cython 3.0.9 breaks doctests cython/cython#5999. We filter this warning at runtime, as a quick workaround for 10.3. For the future, we will need to remove the `noexcept` in question. Note that these were mostly added in #36507 guided by a different warning which is not quite right (see cython/cython#5999 (comment)). This has to be done with some care: about 2/3rds of the `noexcept` have to be removed, but the other 1/3rd has to be kept. These changes are no- ops as long as we use `legacy_implicit_noexcept=True` but it's important to get it right before removing the legacy option. Hopefully we'll soon have a version of cython which gives correct warnings so it's possible to eliminate both types of warnings. Once there are no warnings left, we can proceed to remove the legacy option. ### 📝 Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. Fixes: #37560 URL: #37583 Reported by: Gonzalo Tornaría Reviewer(s):
2 parents e850ac9 + cd652c6 commit 685e86b

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/sage/misc/cython.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ def cython(filename, verbose=0, compile_message=False,
236236
...
237237
RuntimeError: Error compiling Cython file:
238238
...
239-
...: 'sage/misc.pxd' not found
239+
...: 'sage/misc.pxd' not found...
240240
"""
241241
if not filename.endswith('pyx'):
242242
print("Warning: file (={}) should have extension .pyx".format(filename), file=sys.stderr)
@@ -382,6 +382,12 @@ def cython(filename, verbose=0, compile_message=False,
382382
"Placing it before 'except' or 'noexcept' will be disallowed in a future version of Cython.\n",
383383
"", cython_messages, 0, re.MULTILINE)
384384

385+
# workaround for https://github.com/sagemath/sage/issues/37560
386+
# triggered by Cython 3.0.9
387+
cython_messages = re.sub(
388+
"^warning: .*noexcept clause is ignored for function returning Python object\n",
389+
"", cython_messages, 0, re.MULTILINE)
390+
385391
sys.stderr.write(cython_messages)
386392
sys.stderr.flush()
387393

0 commit comments

Comments
 (0)