2019-01-29 Serge Guelton <>

  • Fix np.transpose regression
  • Updgrade xsimd to 7.1.2
  • Fix test target

2019-01-18 Serge Guelton <>

  • Honor PYTHRANRC environment variable for config file lookup
  • Stricter type checking for export parameters
  • Allow some kind of list to tuple conversion
  • Lazy slicing of broadcasted expression and transposed expression
  • Support numpy.stack, numpy.rollaxis, numpy.broadcast_to, numpy.ndarray.dtype.type
  • Better support of array of complex numbers
  • Verbose mode in pythran-config to debug compiler backend issues
  • Config file linting
  • Evaluate numpy.arange lazily when valid
  • Faster PRNG, namely pcg
  • Favor Python3 support in various places
  • Fix Numpy.remainder implementation
  • Better support for importing user modules
  • More vectorized operations support

2018-11-06 Serge Guelton <>

  • Moving to xsimd as vectorization engine, requires -DUSE_XSIMD
  • Better support of view conversion from Python to Pythran
  • Improved Cython integration
  • Improved documentation, add exemple section
  • Updated ArchLinux Packaging
  • Remove useless warnings during compilation
  • Faster abs(x**2) for complex numbers
  • IPython magic now accepts most optimization flags
  • Automatic detection of partially (or fully) constant shape for arrays
  • Add ignoreflags settings to .pythranrc to skip some compiler flags
  • Quad number (aka long double) basic support
  • And many minor bugfixes, as usual :-)

2018-09-16 Serge Guelton <>

  • Decent support for is None pattern
  • Bessel functions, aka scipy.special.stuff
  • __builtin__.slice support
  • np.unravel_index, np.(u)intc support
  • Cleanup and fix issues around sdist / build_ext and stuff
  • O(1) View conversion to Python
  • Dropped big int support
  • Speed improvement for np.argmin, np.argmax and square of complex
  • Allow partially (or fully) constant shape for arrays
  • Deterministic header inclusion (toward reproducible build?)
  • Better error report on argument mismatch
  • Better support for view arguments (but still lotta missing :-/)
  • Better Windows support (fix compiler-specific bugs) incuding OpenMP

2018-06-06 Serge Guelton <>

  • Much better support of fancy indexing, still not 100% support though
  • Better distutils integration (extra_compile_args)
  • Better support for np.unique, functor, np.Inf, np.arange, it.repeat
  • Better support of user import from pythranized module (still no globals)
  • Better OSX support (fix compiler-specific bugs)
  • Most tests now work on Python 2 and Python 3
  • Many bugfixes triggered by the bug report of Yann Diorcet, Jean Laroche and David Menéndez Hurtado, Fabien Rozar, C. Claus

2018-04-23 Serge Guelton <>

  • numpy.fft support (thanks to Jean Laroche)
  • Faster generalized expression
  • Faster numpy.transpose, numpy.argmax, numpy reduction
  • Sphinx-compatible generated docstring (thanks to Pierre Augier)
  • Python output through -P (thanks to Pierre Augier)
  • Many bugfixes and numpy improvements (thanks to Yann Diorecet and Jean Laroche)

2018-02-05 Serge Guelton <>

  • Slimmer generated binaries
  • Preliminary native Windows support for Python3
  • Several numpy-related function improvements
  • @ operator support
  • Better negative index support and range detection
  • Glimpses of OpenMP4 support, min/max support in OpenMP reductions
  • Python Capsule support
  • Work around GCC-7 parsing bug

2017-10-14 Serge Guelton <>

  • Moving to networkx 2.0
  • List/Tuple partial constant folding
  • Minor notebook integration fixes
  • Minor cython integration fixes
  • Memory leak removal
  • Support out field in numpy.sum

2017-09-12 Serge Guelton <>

  • Significant compilation time improvements (again)
  • Improved cython cooperation
  • Many OSX and Python3 integration fixes
  • Revive pure C++ mode
  • Exported functions now support keyword passing style

2017-07-04 Serge Guelton <>

  • Significant compilation time improvements
  • Support for separated .pythran files
  • Many bug fixes and perf improvement

2017-01-05 Serge Guelton <>

  • Python 3 support
  • (unsound) Type Checker
  • Various bug fixes and perf improvement, as usual

2016-07-05 Serge Guelton <>

  • Fix install / setup minor issues
  • Restore OpenMP support
  • Fix GMP installation issue

2016-06-13 Serge Guelton <>

  • 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

2016-01-05 Serge Guelton <>

  • IPython’s magic for pythran now supports extra compile flags
  • Pythran’s C++ output is compatible with Python3 and pythran3 can compile it!
  • More syntax checks (and less template traceback)
  • Improved UI (multiline pythran exports, better…)
  • Pythonic leaning / bugfixing (this tends to be a permanent item)
  • More generic support for numpy’s dtype
  • Simpler install (no more boost.python deps, nor nt2 configuration)
  • Faster compilation (no more boost.python deps, smarter pass manager)
  • Better testing (gcc + clang)

2015-10-13 Serge Guelton <>

  • Significantly decrease compilation time
  • Faster execution of numpy generalized slicing
  • Tentative conda support
  • Tentative Windows support (using Win Python)
  • Preserve original docstrings
  • Add __pythran__ global variable to pythran generated modules
  • Faster implementation of various itertools functions
  • Rely on distutils for module code compilation
  • Support most of numpy.random
  • Remove git and make dependency to install nt2
  • Proper pip support instead of distuils
  • Remove dependency to boost.python
  • Remove dependency to tcmalloc
  • Pythonic library cleaning (less dependencies / header / splitting / mrpropering)
  • More lazy computations
  • More numpy function support (including dot on matrices, linalg.norm, mean)
  • Lot of code cleaning / refactoring (both in Python and C++)
  • Many bugfixes, thanks to all the bug reporters!

2015-04-06 Serge Guelton <>

  • Various numpy.* function implementation improvement (incl. concatenate, str.join, itertools.combinations)
  • Better error detection during install step
  • 32 bit compatibility
  • Complete rewrite of the expression engine
  • Improved support of numpy extended expression
  • Better user feedback on invalid pythran spec
  • More efficient support of string litterals
  • Faster exponentiation when index is an integer
  • NT2 revision bump
  • No-copy list as numpy expression parameters
  • Accept C and fortran layout for input arrays
  • Range value analysis and boundcheck removal
  • Newaxis style indexing
  • Better array-of-complex support
  • Glimpses of python3 support
  • Support for importing user defined modules
  • Archlinux support
  • Accept strided array as exported function input

2014-10-22 Serge Guelton <>

  • Full SIMD support! Almost all numpy expressions are vectorized
  • Better memory management at the Python/C++ layer, esp. when sharing
  • Support named parameters
  • Better complex numbers support
  • A lot of internal code cleaning
  • Better code generation for regular loops
  • MacOS install guide & ArchLinux packages
  • Travis run the test suite, w and w/ SIMD, w and w/ OpenMP
  • Many performance improvements at the numpy expression level
  • Faster array copies, including slices
  • Much better constant folding
  • Distutils support through a PythranExtension
  • Improve implementation of many numpy functions
  • Improve forward substitution
  • Use most recent nt2 version
  • Make dependency on libgomp optional

2014-05-17 Serge Guelton <>

  • Improved C++ compilation time (twice as fast)
  • Efficient extended slicing
  • Support most numpy dtype ([u]int8,…, [u]int64, float32, float64)
  • Support indexing array through boolean array
  • Add a nice Pythran logo :-)
  • Improve validation a lot
  • Reduce native module loading overhead
  • Forward substitution implementation
  • More numpy support and many bug fixes!
  • Remove array auto vectorization/parallelization