Changelog¶
2019-05-05 Serge Guelton <serge.guelton@telecom-bretagne.eu>
- Better support for is None pattern
- Support numpy.byte in code and annotation
- Fix string slice assignment
- Support numpy.interp
- Improved Windows support
- Fix numpy.fft in presence of threading
- Better error message upon type mismatch
- Extended support for numpy.append
- Fix ndarray printing
- Property report error on Elippsis
- Optimize away some uses of np.array
- Properly support keyword-only arguments from Python3
- Improved fixed-size array broadcasting
- New annotation syntax for default argument through the ‘?’ qualifier
- Stricter type checking between Python and Pythran result type
- Rely on beniget <https://github.com/serge-sans-paille/beniget> for some analyses
- Fix dtype inference for OSX and Windows, wrt 32/64 bits
- Generate code compatible with OpenMP collapse clause
- Fix np.bincount, np.angle, np.fromiter implementation
- Improved (but still incomplete) support of slicing of an array through an array
- Allow specification of memory layout for 2D array parameters in annotations
- Avoid useless copies for some dict operations
- Support np.expand_dims, np.correlate, np.convolve, np.setdiff1d
- Detect and specialize code for fixed-size list
- Support more dot-idiom-to-blas forwarding
- Fix important memory leak in numpy_gexpr to_python
2019-01-29 Serge Guelton <serge.guelton@telecom-bretagne.eu>
- Fix np.transpose regression
- Updgrade xsimd to 7.1.2
- Fix setup.py test target
2019-01-18 Serge Guelton <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- Decent support for
is None
pattern- Bessel functions, aka scipy.special.stuff
__builtin__.slice
supportnp.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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- Significant compilation time improvements
- Support for separated .pythran files
- Many bug fixes and perf improvement
2017-01-05 Serge Guelton <serge.guelton@telecom-bretagne.eu>
- Python 3 support
- (unsound) Type Checker
- Various bug fixes and perf improvement, as usual
2016-07-05 Serge Guelton <serge.guelton@telecom-bretagne.eu>
- Fix install / setup minor issues
- Restore OpenMP support
- Fix GMP installation issue
2016-06-13 Serge Guelton <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 setup.py…)
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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 <serge.guelton@telecom-bretagne.eu>
- 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