The project rtmidi-python compiles well on Cython 0.29.37 (the latest version before Cython 3.0), but fails on Cython 3.0, with the error below.
Are there known incompatibilities when upgrading to Cython 3?
If so, is there a flag to use when calling Cython 3 to keep backwards compatibility with previous versions, without requiring to modify the actual .pyx file?
<code>Error compiling Cython file:
------------------------------------------------------------
...
self.thisptr.cancelCallback()
self.py_callback = callback
if self.py_callback is not None:
self.thisptr.setCallback(midi_in_callback, <void*>self.py_callback)
^
------------------------------------------------------------
rtmidi_python.pyx:92:41: Cannot assign type 'void (double, vector[unsigned char] *, void *) except * nogil' to 'RtMidiCallback' (alias of 'void (*)(double, vector[unsigned char] *, void *) noexcept'). Exception values are incompatible. Suggest adding 'noexcept' to the type of 'midi_in_callback'.
Traceback (most recent call last):
...
</code>
<code>Error compiling Cython file:
------------------------------------------------------------
...
self.thisptr.cancelCallback()
self.py_callback = callback
if self.py_callback is not None:
self.thisptr.setCallback(midi_in_callback, <void*>self.py_callback)
^
------------------------------------------------------------
rtmidi_python.pyx:92:41: Cannot assign type 'void (double, vector[unsigned char] *, void *) except * nogil' to 'RtMidiCallback' (alias of 'void (*)(double, vector[unsigned char] *, void *) noexcept'). Exception values are incompatible. Suggest adding 'noexcept' to the type of 'midi_in_callback'.
Traceback (most recent call last):
...
</code>
Error compiling Cython file:
------------------------------------------------------------
...
self.thisptr.cancelCallback()
self.py_callback = callback
if self.py_callback is not None:
self.thisptr.setCallback(midi_in_callback, <void*>self.py_callback)
^
------------------------------------------------------------
rtmidi_python.pyx:92:41: Cannot assign type 'void (double, vector[unsigned char] *, void *) except * nogil' to 'RtMidiCallback' (alias of 'void (*)(double, vector[unsigned char] *, void *) noexcept'). Exception values are incompatible. Suggest adding 'noexcept' to the type of 'midi_in_callback'.
Traceback (most recent call last):
...
1