来源:Cython
浏览 527
扫码
分享
2020-04-04 08:24:11
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.