来源:Cython
浏览 456
扫码
分享
2020-04-04 08:24:30
0.22 (2015-02-11)
Features added
- C functions can coerce to Python functions, which allows passing themaround as callable objects.
- C arrays can be assigned by value and auto-coerce from Python iterablesand to Python lists (and tuples).
- Extern C functions can now be declared as cpdef to export them tothe module’s Python namespace. Extern C functions in pxd files exporttheir values to their own module, iff it exists.
- Anonymous C tuple types can be declared as (ctype1, ctype2, …).
- PEP 479:turn accidental StopIteration exceptions that exit generatorsinto a RuntimeError, activated with future import “generator_stop”.
- Looping over
reversed(range())
is optimised in the same way asrange()
. Patch by Favian Contreras.
Bugs fixed
- Mismatching ‘except’ declarations on signatures in .pxd and .pyx files failedto produce a compile error.
- Failure to find any files for the path pattern(s) passed into
cythonize()
is now an error to more easily detect accidental typos. - The
logaddexp
family of functions in numpy.math
now has correctdeclarations. - In Py2.6/7 and Py3.2, simple Cython memory views could accidentally beinterpreted as non-contiguous by CPython, which could trigger a CPythonbug when copying data from them, thus leading to data corruption.See CPython issues 12834 and 23349.
Other changes
- Preliminary support for defining the Cython language with a formal grammar.To try parsing your files against this grammar, use the –formal_grammar directive.Experimental.
_
is no longer considered a cacheable builtin as it could interfere withgettext.- Cythonize-computed metadata now cached in the generated C files.
- Several corrections and extensions in numpy, cpython, and libcpp pxd files.