All Versions
Latest Version
Avg Release Cycle
47 days
Latest Release
1014 days ago

Changelog History
Page 2

  • v0.29.28 Changes

    February 17, 2022

    πŸ› Bugs fixed

    • Due to backwards incompatible changes in CPython 3.11a4, the feature flags CYTHON_FAST_THREAD_STATE and CYTHON_USE_EXC_INFO_STACK are now disabled in Python 3.11 and later. They are enabled again in Cython 3.0. Patch by David Woods. (Github issue :issue:4610)

    • ⚠ A C compiler warning in older PyPy versions was resolved. Patch by Matti Picus. (Github issue :issue:4236)

    .. _0.29.27:

  • v0.29.27 Changes

    January 28, 2022

    πŸ”‹ Features added

    • The cythonize command has a new option -M to generate .dep dependency files for the compilation unit. This can be used by external build tools to track these dependencies. Patch by Evgeni Burovski. (Github issue :issue:1214)

    πŸ› Bugs fixed

    • Compilation failures on PyPy were resolved. Patches by Matti Picus. (Github issues :issue:4509, :issue:4517)

    • Calls to range() with more than three arguments did not fail. Original patch by Max Bachmann. (Github issue :issue:4550)

    • ⚠ Some C compiler warnings about missing type struct initialisers in Py3.10 were resolved.

    • Cython no longer warns about using OpenMP 3.0 features since they are now considered generally available.

    .. _0.29.26:

  • v0.29.26 Changes

    December 16, 2021

    πŸ› Bugs fixed

    • An incompatibility with CPython 3.11.0a3 was resolved. (Github issue :issue:4499)

    • The in operator failed on literal lists with starred expressions. Patch by Arvind Natarajan. (Github issue :issue:3938)

    • ⚠ A C compiler warning in PyPy about a missing struct field initialisation was resolved.

    .. _0.29.25:

  • v0.29.25 Changes

    December 06, 2021

    πŸ› Bugs fixed

    • Several incompatibilities with CPython 3.11 were resolved. Patches by David Woods, Victor Stinner, Thomas Caswell. (Github issues :issue:4411, :issue:4414, :issue:4415, :issue:4416, :issue:4420, :issue:4428, :issue:4473, :issue:4479, :issue:4480)

    • ⚠ Some C compiler warnings were resolved. Patches by Lisandro Dalcin and others. (Github issue :issue:4439)

    • 🚚 C++ std::move() should only be used automatically in MSVC versions that support it. Patch by Max Bachmann. (Github issue :issue:4191)

      • The Py_hash_t type failed to accept arbitrary "index" values. (Github issue :issue:2752)
    • Avoid copying unaligned 16-bit values since some platforms require them to be aligned. Use memcpy() instead to let the C compiler decide how to do it. (Github issue :issue:4343)

    • βœ… Cython crashed on invalid truthiness tests on C++ types without operator bool. Patch by David Woods. (Github issue :issue:4348)

    • The declaration of PyUnicode_CompareWithASCIIString() in cpython.unicode was incorrect. Patch by Max Bachmann. (Github issue :issue:4344)

    .. _0.29.24:

  • v0.29.24 Changes

    July 14, 2021

    πŸ› Bugs fixed

    • Inline functions in pxd files that used memory views could lead to invalid C code if the module that imported from them does not use memory views. Patch by David Woods. (Github issue :issue:1415)

    • Several declarations in libcpp.string were added and corrected. Patch by Janek Bevendorff. (Github issue :issue:4268)

    • Pickling unbound Cython compiled methods failed. Patch by Pierre Glaser. (Github issue :issue:2972)

    • The tracing code was adapted to work with CPython 3.10.

    • The optimised in operator failed on unicode strings in Py3.9 and later that were constructed from an external wchar_t source. Also, related C compiler warnings about deprecated C-API usage were resolved. (Github issue :issue:3925)

    • Some compiler crashes were resolved. Patch by David Woods. (Github issues :issue:4214, :issue:2811)

    • 🚚 An incorrect warning about 'unused' generator expressions was removed. (GIthub issue :issue:1699)

    • The attributes gen.gi_frame and coro.cr_frame of Cython compiled generators and coroutines now return an actual frame object for introspection, instead of None. (Github issue :issue:2306)

    .. _0.29.23:

  • v0.29.23 Changes

    April 14, 2021

    πŸ› Bugs fixed

    • Some problems with Python 3.10 were resolved. Patches by Victor Stinner and David Woods. (Github issues :issue:4046, :issue:4100)

    • 🚚 An incorrect "optimisation" was removed that allowed changes to a keyword dict to leak into keyword arguments passed into a function. Patch by Peng Weikang. (Github issue :issue:3227)

    • Multiplied str constants could end up as bytes constants with language_level=2. Patch by Alphadelta14 and David Woods. (Github issue :issue:3951)

    • PY_SSIZE_T_CLEAN does not get defined any more if it is already defined. Patch by Andrew Jones. (Github issue :issue:4104)

    .. _0.29.22:

  • v0.29.22 Changes

    February 20, 2021

    πŸ”‹ Features added

    • Some declarations were added to the provided pxd includes. Patches by Zackery Spytz and John Kirkham. (Github issues :issue:3811, :issue:3882, :issue:3899, :issue:3901)

    πŸ› Bugs fixed

    • A crash when calling certain functions in Py3.9 and later was resolved. (Github issue :issue:3917)

    • const memory views of structs failed to compile. (Github issue :issue:2251)

    • const template declarations could not be nested. Patch by Ashwin Srinath. (Github issue :issue:1355)

    • The declarations in the cpython.pycapsule module were missing their const modifiers and generated incorrect C code. Patch by Warren Weckesser. (Github issue :issue:3964)

    • Casts to memory views failed for fused dtypes. Patch by David Woods. (Github issue :issue:3881)

    • repr() was assumed to return str instead of unicode with language_level=3. (Github issue :issue:3736)

    • Calling cpdef functions from cimported modules crashed the compiler. Patch by David Woods. (Github issue :issue:4000)

    • Cython no longer validates the ABI size of the NumPy classes it compiled against. See the discussion in

    • ⚠ A C compiler warning about enum value casting was resolved in GCC. (Github issue :issue:2749)

    • Coverage reporting in the annotated HTML file failed in Py3.9. Patch by Nick Pope. (Github issue :issue:3865)

    • The embedding code now reports Python errors as exit status.

    • Long type declarations could lead to (harmless) random changes in the C file when used in auto-generated Python wrappers or pickled classes.

    Other changes

    • ⚠ Variables defined as cpdef now generate a warning since this is currently useless and thus does not do what users would expect. Patch by David Woods. (Github issue :issue:3959)

    .. _0.29.21:

  • v0.29.21 Changes

    July 09, 2020

    πŸ› Bugs fixed

    • Fix a regression in 0.29.20 where __div__ failed to be found in extension types. (Github issue :issue:3688)

    • πŸ›  Fix a regression in 0.29.20 where a call inside of a finally clause could fail to compile. Patch by David Woods. (Github issue :issue:3712)

    • Zero-sized buffers could fail to validate as C/Fortran-contiguous. Patch by Clemens Hofreither. (Github issue :issue:2093)

    • exec() did not allow recent Python syntax features in Py3.8+ due to (Github issue :issue:3695)

    • Binding staticmethods of Cython functions were not behaving like Python methods in Py3. Patch by Jeroen Demeyer and MichaΕ‚ GΓ³rny. (Github issue :issue:3106)

    • Pythran calls to NumPy methods no longer generate useless method lookup code.

    • The PyUnicode_GET_LENGTH() macro was missing from the cpython.* declarations. Patch by Thomas Caswell. (Github issue :issue:3692)

    • πŸ—„ The deprecated PyUnicode_*() C-API functions are no longer used, except for Unicode strings that contain lone surrogates. Unicode strings that contain non-BMP characters or surrogate pairs now generate different C code on 16-bit Python 2.x Unicode deployments (such as MS-Windows). Generating the C code on Python 3.x is recommended in this case. Original patches by Inada Naoki and Victor Stinner. (Github issues :issue:3677, :issue:3721, :issue:3697)

    • Some template parameters were missing from the C++ std::unordered_map declaration. Patch by will. (Github issue :issue:3685)

    • Several internal code generation issues regarding temporary variables were resolved. (Github issue :issue:3708)

    .. _0.29.20:

  • v0.29.20 Changes

    June 10, 2020

    πŸ› Bugs fixed

    • Nested try-except statements with multiple return statements could crash due to incorrect deletion of the except as target variable. (Github issue :issue:3666)

    • The @classmethod decorator no longer rejects unknown input from other decorators. Patch by David Woods. (Github issue :issue:3660)

    • Fused types could leak into unrelated usages. Patch by David Woods. (Github issue :issue:3642)

    • Now uses Py_SET_SIZE() and Py_SET_REFCNT() in Py3.9+ to avoid low-level write access to these object fields. Patch by Victor Stinner. (Github issue :issue:3639)

    • The built-in abs() function could lead to undefined behaviour when used on the negative-most value of a signed C integer type. Patch by Serge Guelton. (Github issue :issue:1911)

    • Usages of sizeof() and typeid() on uninitialised variables no longer produce a warning. Patch by Celelibi. (Github issue :issue:3575)

    • The C++ typeid() function was allowed in C mode. Patch by Celelibi. (Github issue :issue:3637)

    • The error position reported for errors found in f-strings was misleading. (Github issue :issue:3674)

    • The new c_api_binop_methods directive was added for forward compatibility, but can only be set to True (the current default value). It can be disabled in Cython 3.0.

    .. _0.29.19:

  • v0.29.19 Changes

    May 20, 2020

    πŸ› Bugs fixed

    • 🏁 A typo in Windows specific code in 0.29.18 was fixed that broke "libc.math". (Github issue :issue:3622)

    • βœ… A platform specific test failure in 0.29.18 was fixed. Patch by smutch. (Github issue :issue:3620)

    .. _0.29.18: