cython: incompatibility with cpython main branch

c1b1f51cd1632f0b77dacd43092fb44ed5e053a9 / https://github.com/python/cpython/pull/101292 seems to have introduced changes that break the c generated by cython (with 3.0.0a11):

FAILED: numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/meson-generated_numpy_random_bit_generator.pyx.c.o
ccache cc -Inumpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p -Inumpy/random -I../../numpy/random -I../../numpy/random/src -Inumpy/core -I../../numpy/core -Inumpy/core/include -I../../numpy/core/include -I../../numpy/core/src/common -Inumpy -I/home/tcaswell/.pybuild/bleeding/include/python3.12 -fvisibility=hidden -fdiagnostics-color=always -w -std=c99 -O2 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -DNPY_NO_DEPRECATED_API=0 -MD -MQ numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/meson-generated_numpy_random_bit_generator.pyx.c.o -MF numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/meson-generated_numpy_random_bit_generator.pyx.c.o.d -o numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/meson-generated_numpy_random_bit_generator.pyx.c.o -c numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c: In function ‘__Pyx_PyInt_EqObjC’:
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:16932:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
16932 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
      |                                                   ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c: In function ‘__Pyx_PyInt_MultiplyObjC’:
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:17401:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
17401 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
      |                                                   ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c: In function ‘__Pyx_PyInt_As_uint32_t’:
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:21769:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
21769 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
      |                                                     ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:21824:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
21824 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
      |                                                     ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c: In function ‘__Pyx_PyInt_As_long’:
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:21965:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
21965 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
      |                                                     ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:22020:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
22020 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
      |                                                     ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c: In function ‘__Pyx_PyInt_As_int’:
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:22214:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
22214 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
      |                                                     ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:22269:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
22269 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
      |                                                     ^~
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c: In function ‘__Pyx_PyIndex_AsSsize_t’:
numpy/random/bit_generator.cpython-312-x86_64-linux-gnu.so.p/numpy/random/bit_generator.pyx.c:22823:45: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
22823 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
      | 

Trying to build the master branch of cython with the indicated commit of CPython fails with:

       8074 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 59, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /home/tcaswell/.pybuild/bleeding/include/python3.12/dictobject.h:90,
                       from /home/tcaswell/.pybuild/bleeding/include/python3.12/Python.h:61,
                       from /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:31:
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_typecast’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:12826:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      12826 |   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 354, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_sizeof’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:13305:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      13305 |     __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 384, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_make_slice_nodes’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:18404:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      18404 |       __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_make_slice_node); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 672, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_f_string_expr’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:28929:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      28929 |   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_StringIO); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1246, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_dict_or_set_maker’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:31378:9: warning: ‘Py_OptimizeFlag’ is deprecated [-Wdeprecated-declarations]
      31378 |         if (unlikely(!Py_OptimizeFlag)) {
            |         ^~
      In file included from /home/tcaswell/.pybuild/bleeding/include/python3.12/Python.h:48:
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/pydebug.h:13:37: note: declared here
         13 | Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag;
            |                                     ^~~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_with_items’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:45188:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      45188 |       __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_tentatively_scan); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2140, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_with_template’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:46720:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      46720 |     __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2213, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_positional_and_keyword_args’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:52152:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      52152 |         __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2518, __pyx_L1_error)
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:52177:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      52177 |         __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2519, __pyx_L1_error)
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:52358:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      52358 |         __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2531, __pyx_L1_error)
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:52383:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      52383 |         __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2532, __pyx_L1_error)
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_c_complex_base_type’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:53210:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      53210 |   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2573, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:53235:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      53235 |   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2574, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:53397:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      53397 |       __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2583, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:53422:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      53422 |       __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2584, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_c_declarator’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:58711:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      58711 |       __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2903, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_declarator’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:59607:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      59607 |   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2936, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_c_arg_decl’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:63494:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      63494 |   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3169, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_c_struct_or_union_definition’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:67714:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      67714 |       __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3393, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_c_func_or_var_declaration’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:69255:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      69255 |   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3475, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:69592:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      69592 |     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3494, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:69891:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      69891 |       __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3515, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_ctypedef_statement’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:70506:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      70506 |     __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_p_c_declarator); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3552, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_def_statement’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:71448:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      71448 |   __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3603, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_varargslist’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:71686:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      71686 |   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3614, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:71955:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      71955 |       __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:72208:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      72208 |       __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_p_c_arg_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3638, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_class_statement’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:73068:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      73068 |   __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3673, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_c_class_definition’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:74034:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      74034 |     __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3719, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_property_decl’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:75386:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      75386 |   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3789, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_f_6Cython_8Compiler_7Parsing_p_cpp_class_definition’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:79033:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      79033 |     __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3963, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:79105:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      79105 |       __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_p_c_base_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3966, __pyx_L1_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:79397:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      79397 |     __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3982, __pyx_L1_error)
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__pyx_pymod_exec_Parsing’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84426:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84426 |   __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2467, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84617:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84617 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2889, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84625:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84625 |   __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2889, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84695:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84695 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3131, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84703:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84703 |   __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3131, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84742:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84742 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3853, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84747:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84747 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3853, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84799:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84799 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3904, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:84804:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      84804 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_Ctx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3904, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_get_tp_dict_version’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:85602:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      85602 |     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
            |     ^~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_get_object_dict_version’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:85614:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      85614 |     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
            |     ^~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_object_dict_version_matches’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:85618:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      85618 |     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
            |     ^~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx__GetModuleGlobalName’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:85635:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      85635 |     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
            |     ^~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_PyInt_AddObjC’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:86589:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      86589 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
            |                                                   ^~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_PyInt_BoolEqObjC’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:86942:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      86942 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
            |                                                   ^~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_PyInt_EqObjC’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:87894:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      87894 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
            |                                                   ^~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_CLineForTraceback’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:89459:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      89459 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:89459:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      89459 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /home/tcaswell/.pybuild/bleeding/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_PyInt_As_long’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:89879:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      89879 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:89934:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      89934 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_PyInt_As_int’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:90075:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      90075 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:90130:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      90130 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c: In function ‘__Pyx_PyIndex_AsSsize_t’:
      /home/tcaswell/source/p/cython/cython/Cython/Compiler/Parsing.c:90677:45: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      90677 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
            |                                             ^~
      error: command '/lib/ccache/bin/gcc' failed with exit code 1

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 1
  • Comments: 28 (20 by maintainers)

Commits related to this issue

Most upvoted comments

@markshannon I raised similar concerns more than 15 years ago, but I was outnumbered and then called myself to silence. To be fair, my main use case was using Cython as a wrapping tool, and not the ultimate tool for boosting performance.

If @scoder and others still wants to keep these optimizations, I would like to propose a compromise. In the C code Cython generates, we dump a #define macro (in PY_VERSION_HEX format?) with the latest X.Y CPython version we are absolutely sure the optimized C code compiles. At C compile time, if PY_VERSION_HEX is larger than the supported version, then the generated C code by default disables all optimizations based in CPython API internals. That way the generated C code is future-proof, more resilient to internal CPython API changes. What do you think? Would that work to keep everyone cool and happy?