Cython 3.0a9 releases: C-Extensions for Python

Cython is a programming language that makes writing C extensions for the Python language as easy as Python itself. It aims to become a superset of the Python language which gives it high-level, object-oriented, functional, and dynamic programming. Its main feature on top of these is support for optional static type declarations as part of the language. The source code gets translated into optimized C/C++ code and compiled as Python extension modules. This allows for both very fast program execution and tight integration with external C libraries, while keeping up the high programmer productivity for which the Python language is well known.

The primary Python execution environment is commonly referred to as CPython, as it is written in C. Other major implementations use Java (Jython [Jython]), C# (IronPython [IronPython]) and Python itself (PyPy [PyPy]). Written in C, CPython has been conducive to wrapping many external libraries that interface through the C language. It has, however, remained non trivial to write the necessary glue code in C, especially for programmers who are more fluent in a high-level language like Python than in a close-to-the-metal language like C.

Changelog Cython v3.0a9

Features added

  • Declarations for libcpp.algorithmslibcpp.set and libcpp.unordered_set were extended. Patch by David Woods. (Github issues :issue:`4271`:issue:`4273`)
  • cygdb has a new option --skip-interpreter that allows using a different Python runtime than the one used to generate the debugging information. Patch by Alessandro Molina. (Github issue :issue:`4186`)

Bugs fixed

  • Several issues with the new cpp_locals directive were resolved and its test coverage improved. Patch by David Woods. (Github issues :issue:`4266`:issue:`4265`)
  • Generated utility code for C++ conversions no longer depends on several user definable directives that may make it behave incorrectly. Patch by David Woods. (Github issue :issue:`4206`)
  • A reference counting bug in the new @cython.total_ordering decorator was fixed.
  • Includes all bug-fixes from the :ref:`0.29.24` release.

Other changes

  • Parts of the documentation were (and are being) rewritten to show the Cython language syntax next to the equivalent Python syntax. Patches by 0dminnimda and Matus Valo. (Github issue :issue:`4187`)

Download