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 v0.29.12
- Fix compile error in CPython 3.8b2 regarding the PyCode_New() signature. (Github issue #3031)
- Fix a C compiler warning about a missing int downcast. (Github issue #3028)
- Fix reported error positions of undefined builtins and constants. Patch by Orivej Desh. (Github issue #3030)
- A 32-bit issue in the Pythran support was resolved. Patch by Serge Guelton. (Github issue #3032)