forked from serge-sans-paille/pythran
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChangelog
More file actions
456 lines (230 loc) · 10.8 KB
/
Copy pathChangelog
File metadata and controls
456 lines (230 loc) · 10.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
2019-08-19 Serge Guelton <serge.guelton@telecom-bretagne.eu>
* Warn users about deprecation of python2
* Fix incompatibility with numpy 1.17.0
* Allow pythran-openblas as a fallback dependency for openblas
* Better 32bit arch support
* Better support of OpenMP collapse clause
* Upgrade boost dep to 1.68 and xsimd dep to 7.2.2
* Use static shape information for more efficient broadcasting
* Allow / options on Windows platform in addition to Unix-style options
* Fix typing issue for r-value dict/set/list
* Allow to pass slice to pythran-exported functions
* Fix np.arange for integral numbers
* Fix static if support
* Support tuple arguments for np.concatenate
* Support default arguments for np.randint
* Support kind argument for np.sort
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`` 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 <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