Cython 0.22 released

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

http://cython.org/release/Cython-0.22.tar.gz
https://pypi.python.org/pypi/Cython/0.22

Happy Coding!

Robert




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".
  See http://legacy.python.org/dev/peps/pep-0479/

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

* ``_`` is no longer considered a cacheable builtin as it could interfere with
  gettext.

* 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