0.26 (2017-07-19)

Features added

  • Pythran can be used as a backend for evaluating NumPy array expressions.Patch by Adrien Guinet (Github issue #1607).
  • cdef classes now support pickling by default when possible.This can be disabled with the auto_pickle directive.
  • Speed up comparisons of strings if their hash value is available.Patch by Claudio Freire (Github issue #1571).
  • Support pyximport from zip files.Patch by Sergei Lebedev (Github issue #1485).
  • IPython magic now respects the all variable and ignoresnames with leading-underscore (like import * does).Patch by Syrtis Major (Github issue #1625).
  • abs() is optimised for C complex numbers.Patch by David Woods (Github issue #1648).
  • The display of C lines in Cython tracebacks can now be enabled at runtimevia import cython_runtime; cython_runtime.cline_in_traceback=True.The default has been changed to False.
  • The overhead of calling fused types generic functions was reduced.
  • “cdef extern” include files are now also searched relative to the current file.Patch by Jeroen Demeyer (Github issue #1654).
  • Optional optimization for re-acquiring the GIL, controlled by thefast_gil directive.

Bugs fixed

  • Item lookup/assignment with a unicode character as index that is typed(explicitly or implicitly) as Py_UCS4 or Py_UNICODE used theinteger value instead of the Unicode string value. Code that relied onthe previous behaviour now triggers a warning that can be disabled byapplying an explicit cast. (Github issue #1602)
  • f-string processing was adapted to changes in PEP 498 and CPython 3.6.
  • Invalid C code when decoding from UTF-16(LE/BE) byte strings.(Github issue #1696)
  • Unicode escapes in ‘ur’ raw-unicode strings were not resolved in Py2 code.Original patch by Aaron Gallagher (Github issue #1594).
  • File paths of code objects are now relative.Original patch by Jelmer Vernooij (Github issue #1565).
  • Decorators of cdef class methods could be executed twice.Patch by Jeroen Demeyer (Github issue #1724).
  • Dict iteration using the Py2 iter* methods failed in PyPy3.Patch by Armin Rigo (Github issue #1631).
  • Several warnings in the generated code are now suppressed.

Other changes

  • The unraisable_tracebacks option now defaults to True.
  • Coercion of C++ containers to Python is no longer automatic on attributeaccess (Github issue #1521).
  • Access to Python attributes of cimported modules without the correspondingimport is now a compile-time (rather than runtime) error.
  • Do not use special dll linkage for “cdef public” functions.Patch by Jeroen Demeyer (Github issue #1687).
  • cdef/cpdef methods must match their declarations. See Github Issue #1732.This is now a warning and will be an error in future releases.