- Release date: May 11, 2013
- Downloads: * http://cython.org/release/Cython-0.19.1.tar.gz MD5 * http://cython.org/release/Cython-0.19.1.zip MD5
- Git: https://github.com/cython/cython/commit/8f07f8d8265799cada5046fe0b7c0807d7b41fb3
The bug tracker has a list of the major improvements.
- Completely empty C-API structs for extension type slots (protocols like number/mapping/sequence) are no longer generated into the C code.
- Docstrings that directly follow a public/readonly attribute declaration in a cdef class will be used as docstring of the auto-generated property. This fixes ticket 206.
- The automatic signature documentation tries to preserve more semantics of default arguments and argument types. Specifically,
bintarguments now appear as type
- A warning is emitted when negative literal indices are found inside of a code section that disables
``wraparound``handling. This helps with fixing invalid code that might fail in the face of future compiler optimizations.
- Constant folding for boolean expressions (
or) was improved.
- Added a
cythonize()which allows one to place the generated
.cfiles outside the source tree.
isinstance(X, type)failed to get optimized into a call to
PyType_Check(), as done for other builtin types.
- A spurious
from datetime cimport *was removed from the
cpythondeclaration package. This means that the
datetimedeclarations (added in 0.19) are no longer available directly from the
cpythonnamespace, but only from
cpython.datetime. This is the correct way of doing it because the declarations refer to a standard library module, not the core CPython C-API itself.
- The C code for extension types is now generated in topological order instead of source code order to avoid C compiler errors about missing declarations for subtypes that are defined before their parent.
memoryviewtype name no longer shows up in the module dict of modules that use memory views. This fixes trac ticket 775.
- Regression in 0.19 that rejected valid C expressions from being used in C array size declarations.
- In C++ mode, the C99-only keyword
restrictcould accidentally be seen by the GNU C++ compiler. It is now specially handled for both GCC and MSVC.
- Testing large (> int) C integer values for their truth value could fail due to integer wrap-around.