pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/py-cython



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sun Oct  7 21:28:34 UTC 2012

Modified Files:
        pkgsrc/devel/py-cython: Makefile PLIST distinfo

Log Message:
Update to 0.17.1:

0.17.1:
General Improvements and Bug Fixes

    A reference leak was fixed in the new dict iteration code when
    the loop target was not a plain variable but an unpacked tuple.
    Memory views did not handle the special case of a NULL buffer
    strides value, as allowed by PEP3118.

0.17:
Features

    Alpha quality support for compiling and running Cython generated
    extension modules in PyPy (through cpyext). Note that this
    requires at leastPyPy 1.9 and in many cases also adaptations
    in user code, especially to avoid borrowed references when no
    owned reference is being held directly in C space (a reference
    in a Python list or dict is not enough, for example). See the
    documentation on porting Cython code to PyPy.

    "yield from" is supported (PEP 380) and a couple of minor
    problems with generators were fixed.

    C++ STL container classes automatically coerce from and to the
    equivalent Python container types on typed assignments and
    casts. Usage examples are here. Note that the data in the
    containers is copied during this conversion.

    C++ iterators can now be iterated over using for x in cpp_container
    whenever cpp_container has begin() and end() methods returning
    objects satisfying the iterator pattern (that is, it can be
    incremented, dereferenced, and compared (for non-equality)).
    cdef classes can now have C++ class members (provided a
    zero-argument constructor exists)

    A new cpython.array standard cimport file allows to efficiently
    talk to the stdlib array.array data type in Python 2. Since
    CPython does not export an official C-API for this module, it
    receives special casing by the compiler in order to avoid setup
    overhead on user side. In Python 3, both buffers and memory
    views on the array type already worked out of the box with
    earlier versions of Cython due to the native support for the
    buffer interface in the Py3 array module.
    Fast dict iteration is now enabled optimistically also for
    untyped variables when the common iteration methods are used.

    The unicode string processing code was adapted for the upcoming
    CPython 3.3 (PEP 393, new Unicode buffer layout).

    Buffer arguments and memory view arguments in Python functions
    can be declared "not None" to raise a TypeError on None input.
    c(p)def functions in pure mode can specify their return type
    with "@cython.returns()".
    Automatic dispatch for fused functions with memoryview arguments
    Support newaxis indexing for memoryviews
    Support decorators for fused functions

General Improvements and Bug Fixes

    Old-style Py2 imports did not work reliably in Python 3.x and
    were broken in Python 3.3. Regardless of this fix, it's generally
    best to be explicit about relative and global imports in Cython
    code because old-style imports have a higher overhead. To this
    end, "from __future__ import absolute_import" is supported in
    Python/Cython 2.x code now (previous versions of Cython already
    used it when compiling Python 3 code).

    Stricter constraints on the inline and final modifiers. If your
    code does not compile due to this change, chances are these
    modifiers were previously being ignored by the compiler and
    can be removed without any performance regression.
    Exceptions are always instantiated while raising them (as in
    Python), instead of risking to instantiate them in potentially
    unsafe situations when they need to be handled or otherwise
    processed.

    locals() properly ignores names that do not have Python compatible
    types (including automatically inferred types).
    Some garbage collection issues of memory views were fixed.

    User declared char* types are now recognised as such and
    auto-coerce to and from Python bytes strings.

    libc.string provides a convenience declaration for const uchar
    in addition to const char.

    Modules generated by @cython.inline() are written into the
    directory pointed to by the environment variable CYTHON_CACHE_DIR
    if set.
    numpy.pxd compiles in Python 3 mode.

    callable() and next() compile to more efficient C code.

    list.append() is faster on average.
    Several C compiler warnings were fixed.
    Several bugs related to memoryviews and fused types were fixed.

    Several bug-fixes and improvements related to cythonize(),
    including ccache-style caching.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 pkgsrc/devel/py-cython/Makefile
cvs rdiff -u -r1.4 -r1.5 pkgsrc/devel/py-cython/PLIST
cvs rdiff -u -r1.3 -r1.4 pkgsrc/devel/py-cython/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index