Pythran 0.7.5 is out!
The Pythran team (still 2 active developers) is delighted to announce the release of Pythran 0.7.5, available on the traditional channels:
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