Cython 0.22 released

Robert Bradshaw robertwb at
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:

Happy Coding!


Features added

* 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.

Bugs fixed

* 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.

Other changes

* Preliminary support for defining the Cython language with a formal grammar.
  To try parsing your files against this grammar, use the
--formal_grammar directive.

* ``_`` 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 mailing list