Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!newsfeed.straub-nv.de!newsfeed0.kamp.net!newsfeed.kamp.net!feeder1.cambriumusenet.nl!feed.tweaknews.nl!194.109.133.86.MISMATCH!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'cpython': 0.05; 'detect': 0.07; 'exists.': 0.07; 'fixes': 0.07; 'skip:` 10': 0.07; 'subject:released': 0.07; 'arrays': 0.09; 'builtin': 0.09; 'corrections': 0.09; 'directive.': 0.09; 'exit': 0.09; 'generators': 0.09; 'interpreted': 0.09; 'parsing': 0.09; 'pep': 0.09; 'python': 0.11; 'bug': 0.12; 'changes': 0.15; '``_``': 0.16; 'cached': 0.16; 'callable': 0.16; 'coding!': 0.16; 'declarations': 0.16; 'declared': 0.16; 'extern': 0.16; 'iterables': 0.16; 'locations:': 0.16; 'looping': 0.16; "module's": 0.16; 'namespace.': 0.16; 'objects.': 0.16; 'optimised': 0.16; 'subject:Cython': 0.16; 'to:addr:cython-devel': 0.16; 'to:addr:python-announce-list': 0.16; 'tuple': 0.16; 'url:gz': 0.16; 'url:peps': 0.16; 'url:tar': 0.16; 'extensions': 0.16; 'files.': 0.16; 'language': 0.16; 'passing': 0.19; 'memory': 0.22; 'import': 0.22; 'error': 0.23; 'module,': 0.24; 'skip:` 20': 0.24; 'url:dev': 0.24; '----------': 0.26; 'values': 0.27; 'fixed': 0.29; 'patch': 0.29; 'thus': 0.29; 'to:no real name:2**1': 0.29; 'robert': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'accidentally': 0.31; 'anonymous': 0.31; 'exceptions': 0.31; 'preliminary': 0.31; 'allows': 0.31; 'lists': 0.32; 'url:python': 0.33; 'announce': 0.33; 'bugs': 0.33; 'copying': 0.34; 'could': 0.34; 'usual': 0.35; 'received:google.com': 0.35; 'url:org': 0.36; 'error.': 0.37; 'turn': 0.37; 'easily': 0.37; 'files': 0.38; 'skip:- 10': 0.38; 'to:addr:python.org': 0.39; 'release': 0.40; 'future': 0.60; 'new': 0.61; 'simple': 0.61; 'skip:n 10': 0.64; 'more': 0.64; 'to:2**2': 0.65; 'url:0': 0.67; 'export': 0.74; 'activated': 0.84; 'numerous': 0.93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=tGXugAcFcuLIMoar0aYiE1mYWkPLn0YQ3X72bloqh5s=; b=mF49uLbfBVeUdD8nuHa9k9BmxGFsms4g9e3aAJUdWGeCgNf6Jn6nEVLPy6AdIiSXve ejcAGZ6MwNeRrDy+oYHsZLofUFo+Bu49WLk8pHJcpGnNH/EMnmQ2d8TpukVpPgXuoqR3 u0i71D83GRuIrO5cMuo6Di1lOdWRPhy0EqKsSHyaN0a1dpbE9Ajrmag6e0J3lgwqKWXZ EeqwH5qOWcn80ey/Qopv52Yvs3CuTVG3A7TtzevICLeDdYLapPNUHDu/vKRSEhPbeo/l VutKaWDHrEdnlfKcae6JYK1M2X9xJrRuLVbp1Xx5cIUkiwPOKy+uFt+IjIrUMFDBBQVt J2jQ== X-Received: by 10.202.211.130 with SMTP id k124mr1803786oig.124.1423730061978; Thu, 12 Feb 2015 00:34:21 -0800 (PST) MIME-Version: 1.0 From: Robert Bradshaw Date: Thu, 12 Feb 2015 00:33:51 -0800 Subject: Cython 0.22 released To: cython-users@googlegroups.com, Core developer mailing list of the Cython compiler , python-announce-list@python.org Content-Type: text/plain; charset=UTF-8 X-Mailman-Approved-At: Thu, 12 Feb 2015 09:37:12 +0100 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: python-list@python.org List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Approved: python-announce-list@python.org Newsgroups: comp.lang.python.announce Message-ID: Lines: 67 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1423730233 news.xs4all.nl 2931 [2001:888:2000:d::a6]:46919 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python.announce:1572 I'm pleased to announce the release of Cython 0.22. This release has numerous bug fixes and several new features. It is is available in the usual locations: http://cython.org/release/Cython-0.22.tar.gz https://pypi.python.org/pypi/Cython/0.22 Happy Coding! Robert Features added -------------- * C functions can coerce to Python functions, which allows passing them around as callable objects. * C arrays can be assigned by value and auto-coerce from Python iterables and to Python lists (and tuples). * Extern C functions can now be declared as cpdef to export them to the module's Python namespace. Extern C functions in pxd files export their values to their own module, iff it exists. * Anonymous C tuple types can be declared as (ctype1, ctype2, ...). * PEP 479: turn accidental StopIteration exceptions that exit generators into a RuntimeError, activated with future import "generator_stop". See http://legacy.python.org/dev/peps/pep-0479/ * Looping over ``reversed(range())`` is optimised in the same way as ``range()``. Patch by Favian Contreras. Bugs fixed ---------- * Mismatching 'except' declarations on signatures in .pxd and .pyx files failed to produce a compile error. * Failure to find any files for the path pattern(s) passed into ``cythonize()`` is now an error to more easily detect accidental typos. * In Py2.6/7 and Py3.2, simple Cython memory views could accidentally be interpreted as non-contiguous by CPython, which could trigger a CPython bug when copying data from them, thus leading to data corruption. See CPython issues 12834 and 23349. Other changes ------------- * Preliminary support for defining the Cython language with a formal grammar. To try parsing your files against this grammar, use the --formal_grammar directive. Experimental. * ``_`` is no longer considered a cacheable builtin as it could interfere with gettext. * Cythonize-computed metadata now cached in the generate C files. * Several corrections and extensions in numpy, cpython, and libcpp pxd files.