Cython 0.22 released
robertwb at gmail.com
Thu Feb 12 09:33:51 CET 2015
I'm pleased to announce the release of Cython 0.22.
This release has numerous bug fixes and several new features. It is is
available in the usual locations:
* C functions can coerce to Python functions, which allows passing them
around as callable objects.
* C arrays can be assigned by value and auto-coerce from Python iterables
and to Python lists (and tuples).
* Extern C functions can now be declared as cpdef to export them to
the module's Python namespace. Extern C functions in pxd files export
their values to their own module, iff it exists.
* Anonymous C tuple types can be declared as (ctype1, ctype2, ...).
* PEP 479: turn accidental StopIteration exceptions that exit generators
into a RuntimeError, activated with future import "generator_stop".
* Looping over ``reversed(range())`` is optimised in the same way as
``range()``. Patch by Favian Contreras.
* Mismatching 'except' declarations on signatures in .pxd and .pyx files failed
to produce a compile error.
* Failure to find any files for the path pattern(s) passed into ``cythonize()``
is now an error to more easily detect accidental typos.
* In Py2.6/7 and Py3.2, simple Cython memory views could accidentally be
interpreted as non-contiguous by CPython, which could trigger a CPython
bug when copying data from them, thus leading to data corruption.
See CPython issues 12834 and 23349.
* Preliminary support for defining the Cython language with a formal grammar.
To try parsing your files against this grammar, use the
* ``_`` is no longer considered a cacheable builtin as it could interfere with
* Cythonize-computed metadata now cached in the generate C files.
* Several corrections and extensions in numpy, cpython, and libcpp pxd files.
More information about the Python-announce-list