Cython 0.12 has been officially released. You can get it directly from http://cython.org/ or at http://pypi.python.org/pypi/Cython/. This is the culmination of many months of work, including a mergeback of the experimental branch (after much testing) that was started earlier this year.
== New features == - Type inference with the infer_types directive - Seamless C++ complex support - Fast extension type instantiation using the normal Python meme obj = MyType.__new__(MyType). - Improved support for Py3.1 - Cython now runs under Python 3.x using the 2to3 tool - unittest support for doctests in Cython modules - Optimised handling of C strings (char*): for c in cstring[2:50] and cstring.decode() - Looping over c pointers: for i in intptr[:50]. - Many other optimisation, e.g. enumerate() loops, parallel swap assignments (a,b = b,a), and unicode.encode() - More complete numpy.pxd - pyximport improvements - cython_freeze improvements - Many bug fixes There has also been a lot of work behind the scenes to improve temp handling, streamline writing optimizations, and cleanup code in general. A list of tickets closed can be found at http://trac.cython.org/cython_trac/query?group=component&milestone=0.12 == Semantic Changes == This revision to introduces some backwards incompatible changes to more closely align Cython with the Python language, and unify C and Python types to pave the way for seamless type inference. They are: - Division involving negative C integers now follow Python semantics rather than C semantics. Division by zero also now raises a Python exception. See [[enhancements/division|CEP 516]] This has been optional for several releases, and is now the default. It can be disabled on a per-function or per-file basis, or from the command line (see [[enhancements/compilerdirectives]]) - Unmarked strings are now of type str in both Python 2.x (becoming byte strings) and Python 3.x (becoming unicode strings). Byte strings may be marked as b"..." and unicode strings as u"..." no matter what the runtime environment. See [[enhancements/stringliterals|CEP 108]] - The boolean expressions x or y and x and y return either x or y just like in Python, even when x and y are c types. This means that the types must be compatible. Previously x and y were coerced into truth values first, and either 1 or 0 was returned. == Contributors to this release == * Peter Alexander * Stefan Behnel * Robert Bradshaw * David Cournapeau * Lisandro Dalcin * Mark Lodato * Sturla Molden * Dag Sverre Seljebotn * Holger Thanks also to everybody who's helping us out in our discussions on the mailing list. -- http://mail.python.org/mailman/listinfo/python-announce-list Support the Python Software Foundation: http://www.python.org/psf/donations/
