diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2c5eeb68..c2fbf7c3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,6 +6,8 @@ on: push: tags: - '*' + workflow_dispatch: + # Allow to run manually concurrency: # Cancel previous runs of this workflow for the same branch diff --git a/NEWS b/NEWS index 8a9369be..3734062e 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,11 @@ cypari2 change log ================== +v2.2.0 (in development) +------ + +- require cysignals >= 1.11.3 + v2.1.5 ------ diff --git a/cypari2/__init__.py b/cypari2/__init__.py index 1700c125..dbbade7e 100644 --- a/cypari2/__init__.py +++ b/cypari2/__init__.py @@ -1,3 +1,6 @@ from .pari_instance import Pari from .handle_error import PariError from .gen import Gen +from .custom_block import init_custom_block + +init_custom_block() diff --git a/cypari2/custom_block.pyx b/cypari2/custom_block.pyx new file mode 100644 index 00000000..ddbb8293 --- /dev/null +++ b/cypari2/custom_block.pyx @@ -0,0 +1,29 @@ +# distutils: libraries = gmp pari + +#***************************************************************************** +# Distributed under the terms of the GNU General Public License (GPL) +# as published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# http://www.gnu.org/licenses/ +#***************************************************************************** + +from cysignals.signals cimport add_custom_signals + +cdef extern from "pari/pari.h": + int PARI_SIGINT_block, PARI_SIGINT_pending + +cdef int custom_signal_is_blocked(): + return PARI_SIGINT_block + +cdef void custom_signal_unblock(): + global PARI_SIGINT_block + PARI_SIGINT_block = 0 + +cdef void custom_set_pending_signal(int sig): + global PARI_SIGINT_pending + PARI_SIGINT_pending = sig + +def init_custom_block(): + add_custom_signals(&custom_signal_is_blocked, + &custom_signal_unblock, + &custom_set_pending_signal) diff --git a/pyproject.toml b/pyproject.toml index a2c57359..f2c56580 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,9 @@ [build-system] -requires = ["setuptools", - "Cython>=3.0", - "cysignals>=1.7"] +requires = [ + "setuptools", + "Cython>=3.0", + "cysignals>=1.11.3", +] # We need access to the autogen package at build time. # Hence we declare a custom build backend. build-backend = "_custom_build_meta" # just re-exports setuptools.build_meta definitions @@ -17,7 +19,7 @@ maintainers = [ {name = "SageMath developers", email = "sage-devel@googlegroups.com"}, ] dependencies = [ - "cysignals>=1.7", + "cysignals>=1.11.3", ] requires-python = ">=3.9" readme = "README.rst"