====================
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 :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 :issue:`2987`)
* Cython's built-in OpenMP functions were not translated inside of call arguments.
Original patch by Celelibi and David Woods. (Github issue :issue:`3594`)
* Complex buffer item types of structs of arrays could fail to validate.
Patch by Leo and smutch. (Github issue :issue:`1407`)
* Decorators were not allowed on nested `async def` functions.
(Github issue :issue:`1462`)
* C-tuples could use invalid C struct casting.
Patch by MegaIng. (Github issue :issue:`3038`)
* Optimised ``%d`` string formatting into f-strings failed on float values.
(Github issue :issue:`3092`)
* Optimised aligned string formatting (``%05s``, ``%-5s``) failed.
(Github issue :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 :issue:`2209`)
* When using the ``CYTHON_NO_PYINIT_EXPORT`` option in C++, the module init function
was not declared as ``extern "C"``.
(Github issue :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 :issue:`3606`)