Clone this wiki locally
- Release date: August 5, 2011
- Download: http://cython.org/release/Cython-0.15.tar.gz
- Generators (yield) - Cython has full support for generators, generator expressions and PEP 342 coroutines.
nonlocalkeyword is supported.
- Re-acquiring the gil:
with gil- works as expected within a
- OpenMP support: prange.
- Control flow analysis prunes dead code and emits warnings and errors about uninitialised variables.
- Debugger command
cy setto assign values of expressions to Cython variables and
- Exception chaining PEP 3134.
- Relative imports PEP 328.
- Improved pure syntax including
withstatement has its own dedicated and faster C implementation.
- Support for
- Boundschecking directives implemented for builtin Python sequence types.
- Several updates and additions to the shipped standard library .pxd files.
- Forward declaration of types is no longer required for circular references.
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 an interesting subset of improvements and fixes
- 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 cased to give closer Python counterparts. This means that except+ functions that formerly raised generic
RuntimeError``s may raise something else such as ``ArithmeticError.
- The inlined generator expressions (introduced in Cython 0.13) were disabled in favour of full generator expression support. This breaks code that previously used them inside of cdef functions (usage in def functions continues to work) and induces a performance regression for cases that continue to work but that were previously inlined. We hope to reinstate this feature in the near future.
Many thanks to:
Francesc Alted, Haoyu Bai, Stefan Behnel, Robert Bradshaw, Lars Buitinck, Lisandro Dalcin, John Ehresman, Mark Florisson, Christoph Gohlke, Jason Grout, Chris Lasher, Vitja Makarov, Brent Pedersen, Dag Sverre Seljebotn, Nathaniel Smith, and Pauli Virtanen