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
andCYTHON_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:
- The
-
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
)
- The
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()
incpython.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 externalwchar_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
andcoro.cr_frame
of Cython compiled generators and coroutines now return an actual frame object for introspection, instead ofNone
. (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 theirconst
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 returnstr
instead ofunicode
withlanguage_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 https://github.com/numpy/numpy/pull/432
β 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:
- Some declarations were added to the provided pxd includes.
Patches by Zackery Spytz and John Kirkham.
(Github issues :issue:
-
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 https://bugs.python.org/issue35975. (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 thecpython.*
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 theexcept 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()
andPy_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()
andtypeid()
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: