Skip to content

[BUG] [HEADS UP] Cython build failure with Python 3.14.0a1 #6426

Closed
@befeleme

Description

@befeleme

Describe the bug

I try to build Cython 3.0.11 with Python 3.14.0a1 in Fedora Linux and get the following errors:

  Error compiling Cython file:
  ------------------------------------------------------------
  ...
      return op, pos

  def p_binop_expr(s, ops, p_sub_expr):
      n1 = p_sub_expr(s)
      while s.sy in ops:
          op, pos = p_binop_operator(s)
                                     ^
  ------------------------------------------------------------

  Cython/Compiler/Parsing.py:99:35: Compiler crash in AnalyseExpressionsTransform

  ModuleNode.body = StatListNode(Parsing.py:6:0)
  StatListNode.stats[25] = StatListNode(Parsing.py:96:0)
  StatListNode.stats[0] = CFuncDefNode(Parsing.py:96:0,
      args = [...]/3,
      modifiers = [...]/0,
      outer_attrs = [...]/2,
      visibility = 'private')
  File 'Nodes.py', line 397, in analyse_expressions: StatListNode(Parsing.py:97:4,
      is_terminator = True)
  File 'Nodes.py', line 7354, in analyse_expressions: WhileStatNode(Parsing.py:98:4)
  File 'Nodes.py', line 397, in analyse_expressions: StatListNode(Parsing.py:99:8)
  File 'Nodes.py', line 6056, in analyse_expressions: SingleAssignmentNode(Parsing.py:99:34)
  File 'Nodes.py', line 6189, in analyse_types: SingleAssignmentNode(Parsing.py:99:34)
  File 'ExprNodes.py', line 6139, in analyse_types: SimpleCallNode(Parsing.py:99:34,
      analysed = True,
      result_is_used = True,
      use_managed_ref = True)
  File 'ExprNodes.py', line 6257, in analyse_c_function_call: SimpleCallNode(Parsing.py:99:34,
      analysed = True,
      result_is_used = True,
      use_managed_ref = True)
  File 'ExprNodes.py', line 2076, in coerce_to: NameNode(Parsing.py:99:35,
      cf_state = [...]/1,
      is_name = True,
      name = 's',
      result_is_used = True,
      use_managed_ref = True)
  File 'ExprNodes.py', line 983, in coerce_to: NameNode(Parsing.py:99:35,
      cf_state = [...]/1,
      is_name = True,
      name = 's',
      result_is_used = True,
      use_managed_ref = True)

  Compiler crash traceback from this point on:
    File "/builddir/build/BUILD/Cython-3.0.11-build/cython-3.0.11/Cython/Compiler/ExprNodes.py", line 983, in coerce_to
      if src_type.is_cv_qualified:
         ^^^^^^^^^^^^^^^^^^^^^^^^
  AttributeError: 'NoneType' object has no attribute 'is_cv_qualified'
  Compiling /builddir/build/BUILD/Cython-3.0.11-build/cython-3.0.11/Cython/Compiler/Parsing.py because it changed.
  [1/1] Cythonizing /builddir/build/BUILD/Cython-3.0.11-build/cython-3.0.11/Cython/Compiler/Parsing.py
  Traceback (most recent call last):
    File "/usr/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
      main()
      ~~~~^^
    File "/usr/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
                               ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                          metadata_directory)
                                          ^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 410, in build_wheel
      return self._build_with_temp_dir(
             ~~~~~~~~~~~~~~~~~~~~~~~~~^
          ['bdist_wheel'],
          ^^^^^^^^^^^^^^^^
      ...<3 lines>...
          self._arbitrary_args(config_settings),
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      )
      ^
    File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir
      self.run_setup()
      ~~~~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 487, in run_setup
      super().run_setup(setup_script=setup_script)
      ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/build_meta.py", line 311, in run_setup
      exec(code, locals())
      ~~~~^^^^^^^^^^^^^^^^
    File "<string>", line 319, in <module>
    File "<string>", line 245, in run_build
    File "/usr/lib/python3.14/site-packages/setuptools/__init__.py", line 104, in setup
      return distutils.core.setup(**attrs)
             ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
      ~~~~~~~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
      self.run_command(cmd)
      ~~~~~~~~~~~~~~~~^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/dist.py", line 967, in run_command
      super().run_command(command)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
      ~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/wheel/bdist_wheel.py", line 368, in run
      self.run_command("build")
      ~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/dist.py", line 967, in run_command
      super().run_command(command)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
      ~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build.py", line 131, in run
      self.run_command(cmd_name)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/dist.py", line 967, in run_command
      super().run_command(command)
      ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
      ~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
      self.build_extensions()
      ~~~~~~~~~~~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
      self._build_extensions_serial()
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
    File "/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
      self.build_extension(ext)
      ~~~~~~~~~~~~~~~~~~~~^^^^^
    File "/builddir/build/BUILD/Cython-3.0.11-build/cython-3.0.11/Cython/Distutils/build_ext.py", line 130, in build_extension
      new_ext = cythonize(
                ~~~~~~~~~^
          ext,force=self.force, quiet=self.verbose == 0, **options
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      )[0]
      ^
    File "/builddir/build/BUILD/Cython-3.0.11-build/cython-3.0.11/Cython/Build/Dependencies.py", line 1154, in cythonize
      cythonize_one(*args)
      ~~~~~~~~~~~~~^^^^^^^
    File "/builddir/build/BUILD/Cython-3.0.11-build/cython-3.0.11/Cython/Build/Dependencies.py", line 1321, in cythonize_one
      raise CompileError(None, pyx_file)
  Cython.Compiler.Errors.CompileError: /builddir/build/BUILD/Cython-3.0.11-build/cython-3.0.11/Cython/Compiler/Parsing.py
  Building wheel for Cython (pyproject.toml): finished with status 'error'

Code to reproduce the behaviour:

No response

Expected behaviour

No response

OS

Fedora Linux

Python version

Python 3.14.0a1

Cython version

3.0.11

Additional context

Build happened in our test build system. Happy to test fixes.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions