I'm happy to announce the release of Cython 0.25 which has numerous new features and bug fixes. It is available at https://pypi.python.org/pypi/Cython 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. - Robert Features added -------------- * 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 value_type. * 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. Other changes ------------- * 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".
participants (1)
-
Robert Bradshaw