- 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, bint arguments now appear as type bool.
- 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 (and/or) was improved.
- Added a build_dir option to cythonize() which allows one to place the generated .c files 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 cpython declaration package. This means that the datetime declarations (added in 0.19) are no longer available directly from the cpython namespace, 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.
- The memoryview type 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 restrict could 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.
Last edited by Robert Bradshaw,