[Numpy-discussion] [ANN] Cython 0.15
Dag Sverre Seljebotn
Sat Aug 6 04:18:53 CDT 2011
We are excited to announce the release of Cython 0.15, which is a huge
step forward in achieving full Python language coverage as well as
many new features, optimizations, and bugfixes.
Download: http://cython.org/ or http://pypi.python.org/pypi/Cython
== Major Features ==
* Generators (yield) - Cython has full support for generators,
generator expressions and coroutines.
* The nonlocal keyword is supported.
* Re-acquiring the gil: with gil - works as expected within a nogil
* OpenMP support:
* Control flow analysis prunes dead code and emits warnings and
errors about uninitialised variables.
* Debugger command cy set to assign values of expressions to Cython
variables and cy exec counterpart cy_eval().
* Exception chaining http://www.python.org/dev/peps/pep-3134/
* Relative imports http://www.python.org/dev/peps/pep-0328/
* The with statement has its own dedicated and faster C
* Improved pure syntax including cython.cclass, cython.cfunc, and
* Support for del.
* Boundschecking directives implemented for builtin Python sequence
* Several updates and additions to the shipped standard library pxd
* Forward declaration of types is no longer required for circular
Note: this will be the last release to support Python 2.3; Python 2.4
will be supported for at least one more release.
== General improvements and bug fixes ==
This release contains over a thousand commits including hundreds of
bugfixes and optimizations. The bug tracker has not been as heavily
used this release cycle, but is still useful
== Incompatible changes ==
* Uninitialized variables are no longer initialized to None and
accessing them has the same semantics as standard Python.
* globals() now returns a read-only dict of the Cython module's
globals, rather than the globals
of the first non-Cython module in the stack
* Many C++ exceptions are now special cases to give closer Python
counterparts. This means that except+ functions that formally raised
generic RuntimeErrors may raise something else such as
== Known regressions ==
* The inlined generator expressions (introduced in Cython 0.13) were
disabled in favour of full generator expression support. This induces
a performance regression for cases that were previously inlined.
== Contributors ==
Many thanks to:
Dag Sverre Seljebotn,
and Pauli Virtanen
More information about the NumPy-Discussion