0.19.1 (2013-05-11)

Features added

  • Completely empty C-API structs for extension type slots (protocols likenumber/mapping/sequence) are no longer generated into the C code.
  • Docstrings that directly follow a public/readonly attribute declarationin 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 semanticsof default arguments and argument types. Specifically, bint argumentsnow appear as type bool.
  • A warning is emitted when negative literal indices are found inside ofa code section that disables wraparound handling. This helps withfixing invalid code that might fail in the face of future compileroptimisations.
  • Constant folding for boolean expressions (and/or) was improved.
  • Added a build_dir option to cythonize() which allows one to placethe generated .c files outside the source tree.

Bugs fixed

  • isinstance(X, type) failed to get optimised into a call toPyType_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 correctway of doing it because the declarations refer to a standard librarymodule, not the core CPython C-API itself.
  • The C code for extension types is now generated in topological orderinstead of source code order to avoid C compiler errors about missingdeclarations for subtypes that are defined before their parent.
  • The memoryview type name no longer shows up in the module dict ofmodules that use memory views. This fixes trac ticket 775.
  • Regression in 0.19 that rejected valid C expressions from being usedin C array size declarations.
  • In C++ mode, the C99-only keyword restrict could accidentally beseen by the GNU C++ compiler. It is now specially handled for bothGCC and MSVC.
  • Testing large (> int) C integer values for their truth value could faildue to integer wrap-around.

Other changes