congrats! while preparing build for Debian I ran into good old (never got feedback to my analysis done in Jul/Aug, thread "Cython bugfix release")
====================================================================== ERROR: test_all (Cython.Debugger.Tests.TestLibCython.TestAll) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/yoh/deb/gits/build-area/cython-0.21/Cython/Debugger/Tests/TestLibCython.py", line 280, in test_all sys.stderr.write(errmsg) UnicodeEncodeError: 'ascii' codec can't encode characters in position 23604-23607: ordinal not in range(128) and few other failures: ====================================================================== FAIL: test_typing_function_int_loop (Cython.Tests.TestJediTyper.TestJediTyper) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/yoh/deb/gits/build-area/cython-0.21/Cython/Tests/TestJediTyper.py", line 85, in test_typing_function_int_loop self.assertIn(('func', (1, 0)), types) AssertionError: ('func', (1, 0)) not found in {} ====================================================================== FAIL: test_typing_function_int_loop (Cython.Tests.TestJediTyper.TestTypeInjection) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/yoh/deb/gits/build-area/cython-0.21/Cython/Tests/TestJediTyper.py", line 85, in test_typing_function_int_loop self.assertIn(('func', (1, 0)), types) AssertionError: ('func', (1, 0)) not found in {} ---------------------------------------------------------------------- Ran 8775 tests in 2249.908s FAILED (failures=2, errors=1) are they known/fixed? On Wed, 10 Sep 2014, Stefan Behnel wrote: > Hi all, > on behalf of the Cython dev team, I'm pleased to announce the release of > Cython 0.21, a major feature release. Thanks everyone who contributed code, > documentation improvements, test feedback, bug reports and/or otherwise > helpful insights for this release. > I copied the complete changelog of this release below, but here are the > major highlights, in addition to the many bug fixes and general > improvements in this release. > * Legacy code and support for old CPython versions was removed, baselines > are now Python 2.6 and 3.2. > * cdef functions finally support inner Python functions with closures. > * C enums can now be declared as "cpdef" to publish them to Python space. > * Python method calls, boolean "and/or" operators and cascaded assignments > were optimised to streamline calls and type coercions. > * The annotated HTML code output is syntax highlighted and beautified. > Have fun, > Stefan > Downloads: > https://pypi.python.org/pypi/Cython/0.21 > http://cython.org/release/Cython-0.21.tar.gz > http://cython.org/release/Cython-0.21.zip > Signatures: > http://cython.org/release/Cython-0.21.tar.gz.asc > http://cython.org/release/Cython-0.21.zip.asc > Changelog: > https://github.com/cython/cython/blob/c67e895414aac90dfe9f789530143cff5b2ec7ad/CHANGES.rst > Documentation: > http://docs.cython.org/ > 0.21 (2014-09-10) > ================= > Features added > -------------- > * C (cdef) functions allow inner Python functions. > * Enums can now be declared as cpdef to export their values to > the module's Python namespace. Cpdef enums in pxd files export > their values to their own module, iff it exists. > * Allow @staticmethod decorator to declare static cdef methods. > This is especially useful for declaring "constructors" for > cdef classes that can take non-Python arguments. > * Taking a ``char*`` from a temporary Python string object is safer > in more cases and can be done inside of non-trivial expressions, > including arguments of a function call. A compile time error > is raised only when such a pointer is assigned to a variable and > would thus exceed the lifetime of the string itself. > * Generators have new properties ``__name__`` and ``__qualname__`` > that provide the plain/qualified name of the generator function > (following CPython 3.5). See http://bugs.python.org/issue21205 > * The ``inline`` function modifier is available as a decorator > ``@cython.inline`` in pure mode. > * When cygdb is run in a virtualenv, it enables the same virtualenv > inside of the debugger. Patch by Marc Abramowitz. > * PEP 465: dedicated infix operator for matrix multiplication (A @ B). > * HTML output of annotated code uses Pygments for code highlighting > and generally received a major overhaul by Matthias Bussonier. > * IPython magic support is now available directly from Cython with > the command "%load_ext cython". Cython code can directly be > executed in a cell when marked with "%%cython". Code analysis > is available with "%%cython -a". Patch by Martín Gaitán. > * Simple support for declaring Python object types in Python signature > annotations. Currently requires setting the compiler directive > ``annotation_typing=True``. > * New directive ``use_switch`` (defaults to True) to optionally disable > the optimization of chained if statement to C switch statements. > * Defines dynamic_cast et al. in ``libcpp.cast`` and C++ heap data > structure operations in ``libcpp.algorithm``. > * Shipped header declarations in ``posix.*`` were extended to cover > more of the POSIX API. Patches by Lars Buitinck and Mark Peek. > Optimizations > ------------- > * Simple calls to C implemented Python functions/methods are faster. > This also speeds up many operations on builtins that Cython cannot > otherwise optimise. > * The "and"/"or" operators try to avoid unnecessary coercions of their > arguments. They now evaluate the truth value of each argument > independently and only coerce the final result of the whole expression > to the target type (e.g. the type on the left side of an assignment). > This also avoids reference counting overhead for Python values during > evaluation and generally improves the code flow in the generated C code. > * The Python expression "2 ** N" is optimised into bit shifting. > See http://bugs.python.org/issue21420 > * Cascaded assignments (a = b = ...) try to minimise the number of > type coercions. > * Calls to ``slice()`` are translated to a straight C-API call. > Bugs fixed > ---------- > * Crash when assigning memory views from ternary conditional expressions. > * Nested C++ templates could lead to unseparated ">>" characters being > generated into the C++ declarations, which older C++ compilers could > not parse. > * Sending SIGINT (Ctrl-C) during parallel cythonize() builds could > hang the child processes. > * No longer ignore local setup.cfg files for distutils in pyximport. > Patch by Martin Teichmann. > * Taking a ``char*`` from an indexed Python string generated unsafe > reference counting code. > * Set literals now create all of their items before trying to add them > to the set, following the behaviour in CPython. This makes a > difference in the rare case that the item creation has side effects > and some items are not hashable (or if hashing them has side effects, > too). > * Cython no longer generates the cross product of C functions for code > that uses memory views of fused types in function signatures (e.g. > ``cdef func(floating[:] a, floating[:] b)``). This is considered the > expected behaviour by most users and was previously inconsistent with > other structured types like C arrays. Code that really wants all type > combinations can create the same fused memoryview type under different > names and use those in the signature to make it clear which types are > independent. > * Names that were unknown at compile time were looked up as builtins at > runtime but not as global module names. Trying both lookups helps with > globals() manipulation. > * Fixed stl container conversion for typedef element types. > * ``obj.pop(x)`` truncated large C integer values of x to ``Py_ssize_t``. > * ``__init__.pyc`` is recognised as marking a package directory > (in addition to .py, .pyx and .pxd). > * Syntax highlighting in ``cython-mode.el`` for Emacs no longer > incorrectly highlights keywords found as part of longer names. > * Correctly handle ``from cython.submodule cimport name``. > * Fix infinite recursion when using super with cpdef methods. > * No-args ``dir()`` was not guaranteed to return a sorted list. > Other changes > ------------- > * The header line in the generated C files no longer contains the > timestamp but only the Cython version that wrote it. This was > changed to make builds more reproducible. > * Removed support for CPython 2.4, 2.5 and 3.1. > * The licensing implications on the generated code were clarified > to avoid legal constraints for users. > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > https://mail.python.org/mailman/listinfo/cython-devel -- Yaroslav O. Halchenko, Ph.D. http://neuro.debian.net http://www.pymvpa.org http://www.fail2ban.org Research Scientist, Psychological and Brain Sciences Dept. Dartmouth College, 419 Moore Hall, Hinman Box 6207, Hanover, NH 03755 Phone: +1 (603) 646-9834 Fax: +1 (603) 646-1419 WWW: http://www.linkedin.com/in/yarik _______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel