Cython v0.29.18 Release Notes

Release Date: 2020-05-18 // 12 months ago
  • 🐛 Bugs fixed

    • 👻 Exception position reporting could run into race conditions on threaded code. It now uses function-local variables again.

    • Error handling early in the module init code could lead to a crash.

    • Error handling in cython.array creation was improved to avoid calling C-API functions with an error held.

    • 🛠 A memory corruption was fixed when garbage collection was triggered during calls to PyType_Ready() of extension type subclasses. (Github issue #3603)

    • Memory view slicing generated unused error handling code which could negatively impact the C compiler optimisations for parallel OpenMP code etc. Also, it is now helped by static branch hints. (Github issue #2987)

    • Cython's built-in OpenMP functions were not translated inside of call arguments. Original patch by Celelibi and David Woods. (Github issue #3594)

    • Complex buffer item types of structs of arrays could fail to validate. Patch by Leo and smutch. (Github issue #1407)

    • Decorators were not allowed on nested async def functions. (Github issue #1462)

    • C-tuples could use invalid C struct casting. Patch by MegaIng. (Github issue #3038)

    • Optimised %d string formatting into f-strings failed on float values. (Github issue #3092)

    • Optimised aligned string formatting (%05s, %-5s) failed. (Github issue #3476)

    • 🏗 When importing the old Cython build_ext integration with distutils, the additional command line arguments leaked into the regular command. Patch by Kamekameha. (Github issue #2209)

    • When using the CYTHON_NO_PYINIT_EXPORT option in C++, the module init function was not declared as extern "C". (Github issue #3414)

    • Three missing timedelta access macros were added in cpython.datetime.

    • 🛠 The signature of the NumPy C-API function PyArray_SearchSorted() was fixed. Patch by Brock Mendel. (Github issue #3606)