Cython 0.25 released
robertwb at gmail.com
Tue Oct 25 16:34:22 EDT 2016
I'm happy to announce the release of Cython 0.25 which has numerous
new features and bug fixes. It is available at
We have also moved bug tracking from trac.cython.org to github issues.
However, user support still remains at cython-users@, please refrain
from filing issues until you have confirmed an actual bug.
* def/cpdef methods of cdef classes benefit from Cython's internal function
implementation, which enables introspection and line profiling for them.
Implementation sponsored by Turbostream (www.turbostream-cfd.com).
* The distutils extension ``Cython.Distutils.build_ext`` has now been updated
to use cythonize which properly handles dependencies. The old extension can
still be found in ``Cython.Distutils.old_build_ext`` and is now deprecated.
* Calls to Python functions are faster, following the recent "FastCall"
optimisations that Victor Stinner implemented for CPython 3.6.
See https://bugs.python.org/issue27128 and related issues.
* The new METH_FASTCALL calling convention for PyCFunctions is supported
in CPython 3.6. See https://bugs.python.org/issue27810
* C++ classes can now have typedef members. STL containers updated with
* Support for bazel using a the pyx_library rule in //Tools:rules.bzl.
* Initial support for using Cython modules in Pyston. Patch by Daetalus.
* Dynamic Python attributes are allowed on cdef classes if an attribute
``cdef dict __dict__`` is declared in the class. Patch by empyrical.
* Cython implemented C++ classes can make direct calls to base class methods.
Patch by empyrical.
* New directive ``cython.no_gc`` to fully disable GC for a cdef class.
Patch by Claudio Freire.
* Buffer variables are no longer excluded from ``locals()``.
Patch by da-woods.
* Building f-strings is faster, especially when formatting C integers.
* for-loop iteration over "std::string".
* ``libc/math.pxd`` provides ``e`` and ``pi`` as alias constants to simplify
usage as a drop-in replacement for Python's math module.
* Speed up cython.inline().
* Binary lshift operations with small constant Python integers are faster.
* Some integer operations on Python long objects are faster in Python 2.7.
* Support for the C++ ``typeid`` operator.
Significant Bugs fixed
* Division of complex numbers avoids overflow by using Smith's method.
* Some function signatures in ``libc.math`` and ``numpy.pxd`` were incorrect.
Patch by Michael Seifert.
* The "%%cython" IPython/jupyter magic now defaults to the language level of
the current jupyter kernel. The language level can be set explicitly with
"%%cython -2" or "%%cython -3".
More information about the Python-announce-list