Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: serge guelton Newsgroups: comp.lang.python.announce Subject: [ANN] Pythran 0.7.5 is out Date: Thu, 16 Jun 2016 10:42:32 +0200 Lines: 75 Approved: python-announce-list@python.org Message-ID: References: <20160616084232.GA25882@lakota> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: news.uni-berlin.de 1t1i5tfsmbz/qfNaotZPBgyOAMGzB/sD5Nulr6CuVdWA== 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; 'static': 0.03; 'compiler': 0.05; 'none,': 0.05; 'subject:ANN': 0.07; '(sorry': 0.09; '(without': 0.09; '===========': 0.09; 'any)': 0.09; 'cc:addr:googlegroups.com': 0.09; 'handling,': 0.09; 'url:github': 0.09; 'bug': 0.10; 'url:blog': 0.10; 'python': 0.10; 'def': 0.13; '==========': 0.16; 'constants': 0.16; 'delighted': 0.16; 'efficiently,': 0.16; 'numpy': 0.16; 'on)': 0.16; 'posting,': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'release:': 0.16; 'to:addr:freelists.org': 0.16; 'basically': 0.18; 'numerical': 0.18; 'skip:= 10': 0.18; 'variable': 0.18; 'subject:] ': 0.19; 'cc:addr:python.org': 0.20; 'cc:2**2': 0.20; 'work,': 0.21; 'third-party': 0.23; 'import': 0.24; 'patch': 0.24; 'written': 0.24; 'header:User-Agent:1': 0.26; 'example': 0.26; 'turns': 0.27; 'relies': 0.29; 'code': 0.30; 'blog:': 0.30; 'announce': 0.32; 'url:python': 0.33; 'ones,': 0.33; 'traditional': 0.33; 'open': 0.33; 'but': 0.36; 'url:org': 0.36; 'modules': 0.36; 'url:2012': 0.36; 'really': 0.37; 'thanks': 0.37; 'release': 0.37; 'charset:us-ascii': 0.37; 'integration': 0.38; 'version': 0.38; 'turned': 0.38; 'skip:p 20': 0.38; 'subject:[': 0.39; 'some': 0.40; 'engine': 0.62; 'details': 0.62; 'skip:n 10': 0.62; 'export': 0.63; 'improved': 0.63; 'more': 0.63; 'binding': 0.66; 'dear': 0.67; 'analysis': 0.72; 'published': 0.72; 'fat': 0.84; 'received:195.154': 0.84; 'rip': 0.84; 'cc:no real name:2**2': 0.91; 'broadcasting': 0.93; 'improvement': 0.93 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sd-34863.dedibox.fr X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=unavailable version=3.3.1 Content-Disposition: inline User-Agent: Mutt/1.6.0 (2016-04-01) X-Mailman-Approved-At: Thu, 16 Jun 2016 04:55:57 -0400 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <20160616084232.GA25882@lakota> Xref: csiph.com comp.lang.python.announce:2181 (sorry for the double posting, if any) Dear pythraners and pythonists, The Pythran team (still 2 active developers) is delighted to announce the release of Pythran 0.7.5, available on the traditional channels: - pypi: https://pypi.python.org/pypi/pythran - conda: https://anaconda.org/serge-sans-paille/pythran - github: https://github.com/serge-sans-paille/pythran What is it? =========== Pythran is a static compiler for numerical kernels written in Python + Numpy. It basically turns Python-compatible modules into native ones, eventually vectorized and parallelized. Example ======= Following the tradition, each release comes with a code sample. This one comes from http://jakevdp.github.io/blog/2012/08/24/numba-vs-cython/ #pythran export pythran_pairwise(float64 [][]) import numpy as np def pythran_pairwise(X): return np.sqrt(((X[:, None, :] - X) ** 2).sum(-1)) This kernel relies a lot on Numpy's broadcasting, but Pythran can now compile it efficiently, which is a really nice improvement! It can rip (without vectorization and parallelization turned on) more than a x5 speedup over the Numpy version \o/ More Infos ========== We have published some technical details about Pythran internal on the blog: http://serge-sans-paille.github.io/pythran-stories/ It is open to third-party contribution! Changelog ========= * Better Jupyter Note book integration * Numpy Broadcasting support * Improved value binding analysis * Simple inlining optimization * Type engine improvement * Less fat in the generated modules * More and better support for various Numpy functions * Various performance improvement * Global variable handling, as constants only though Acknowledgments =============== Thanks a lot to Pierrick Brunet for his dedicated work, and to all the bug reporters and patch providers that helped a lot for this release: nils-werner, ronbarak, fred oble, geekou, hainm, nbecker and xantares.