Skip to content

ReleaseNotes 0.12

StefanBehnel edited this page · 12 revisions
Clone this wiki locally

Cython 0.12

Release date: November 23 2009



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.

Semantic Changes

This revision to introduces some backwards incompatible changes to more closely align Cython with the Python language. 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 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 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
  • Holger Rapp
  • Dag Sverre Seljebotn

Thanks also to everybody who's helping us out in our discussions on the mailing list. ----


Something went wrong with that request. Please try again.