When writing Cython code, special care must be
taken to ensure that the code can be interrupted with CTRL-C.
Since Cython optimizes for speed, Cython normally does not check for
interrupts. For example, code like the following cannot be interrupted
in Cython:
while True:
    pass
The cysignals package provides mechanisms to handle interrupts (and other
signals and errors) in Cython code.
- Python >= 3.12
 - Cython >= 3.1
 - Sphinx >= 1.6 (for building the documentation)
 
- cysignals on the Python package index: https://pypi.org/project/cysignals/
 - cysignals code repository and issue tracker on GitHub: https://github.com/sagemath/cysignals
 - full cysignals documentation on Read the Docs: http://cysignals.readthedocs.io/
 
- Remove optional compile-time dependency on PARI/GP. [#166]
 
- Include generated configure script in the sdist again.
 
- Add support for Cython 3. [#174, #176, #182, #187]
 - Add support for Python 3.12.
 - Replace fprintf by calls to write, which is async-signal-safe according to POSIX. [#162]
 - Introduce a general hook to interface with custom signal handling. [#181]
 
- Drop assembly code added after 1.10.3 that is not portable.
 
- Drop Python 2 support; bump minimum Python version to 3.6. [#142]
 - Fixed compilation with glib 3.34. [#151]
 - Improved testing. [#139, #152, #154]
 
- Improved installation of cysignals with 
pip install -e. [#130] - Fixed compilation of OpenMP modules that also use cysignals. [#128]
 - Fixed segmentation fault that could occur when 
sig_occurred()is called recursively during garbage collection. [#127] - Improved error reporting of signals that occurred inside 
sig_on()as opposed to outside them. - Fixed bug in the 
cysignals_examplepackage. [#113] 
For changes in previous releases, see the best source available is to compare git tags: https://github.com/sagemath/cysignals/tags