forked from numba/numba
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGE_LOG
254 lines (202 loc) · 8.13 KB
/
CHANGE_LOG
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
Version 0.13.2
--------------
Features:
* @vectorize ufunc now can generate SIMD fast path for unit strided array
* Added cuda.gridsize
* Added preliminary exception handling (raise exception class)
Fixes:
* UNARY_POSITIVE
* Handling of closures and dynamically generated functions
* Global None value
Version 0.13.1
--------------
Features:
* Initial support for CUDA array slicing
Fixes:
* Indirectly fixes numbapro when the system has a incompatible CUDA driver
* Fix numba.cuda.detect
* Export numba.intp and numba.intc
Version 0.13
------------
Features:
* Opensourcing NumbaPro CUDA python support in `numba.cuda`
* Add support for ufunc array broadcasting
* Add support for mixed input types for ufuncs
* Add support for returning tuple from jitted function
Fixes:
* Fix store slice bytecode handling for Python2
* Fix inplace subtract
* Fix pycc so that correct header is emitted
* Allow vectorize to work on functions with jit decorator
Version 0.12.2
--------------
Fixes:
* Improved NumPy ufunc support in nopython mode
* Misc bug fixes
Version 0.12.1
--------------
This version fixed many regressions reported by user for the 0.12 release.
This release contains a new loop-lifting mechanism that specializes certains
loop patterns for nopython mode compilation. This avoid direct support
for heap-allocating and other very dynamic operations.
Improvements:
* Add loop-lifting--jit-ing loops in nopython for object mode code. This allows
functions to allocate NumPy arrays and use Python objects, while the tight
loops in the function can still be compiled in nopython mode. Any arrays that
the tight loop uses should be created before the loop is entered.
Fixes:
* Add support for majority of "math" module functions
* Fix for...else handling
* Add support for builtin round()
* Fix tenary if...else support
* Revive "numba" script
* Fix problems with some boolean expressions
* Add support for more NumPy ufuncs
Version 0.12
------------
Version 0.12 contains a big refactor of the compiler. The main objective for
this refactor was to simplify the code base to create a better foundation for
further work. A secondary objective was to improve the worst case performance
to ensure that compiled functions in object mode never run slower than pure
Python code (this was a problem in several cases with the old code base). This
refactor is still a work in progress and further testing is needed.
Main improvements:
* Major refactor of compiler for performance and maintenance reasons
* Better fallback to object mode when native mode fails
* Improved worst case performance in object mode
The public interface of numba has been slightly changed. The idea is to
make it cleaner and more rational:
* jit decorator has been modified, so that it can be called without a signature.
When called without a signature, it behaves as the old autojit. Autojit
has been deprecated in favour of this approach.
* Jitted functions can now be overloaded.
* Added a "njit" decorator that behaves like "jit" decorator with nopython=True.
* The numba.vectorize namespace is gone. The vectorize decorator will
be in the main numba namespace.
* Added a guvectorize decorator in the main numba namespace. It is
similiar to numba.vectorize, but takes a dimension signature. It
generates gufuncs. This is a replacement for the GUVectorize gufunc
factory which has been deprecated.
Main regressions (will be fixed in a future release):
* Creating new NumPy arrays is not supported in nopython mode
* Returning NumPy arrays is not supported in nopython mode
* NumPy array slicing is not supported in nopython mode
* lists and tuples are not supported in nopython mode
* string, datetime, cdecimal, and struct types are not implemented yet
* Extension types (classes) are not supported in nopython mode
* Closures are not supported
* Raise keyword is not supported
* Recursion is not support in nopython mode
Version 0.11
------------
* Experimental support for NumPy datetime type
Version 0.10
------------
* Annotation tool (./bin/numba --annotate --fancy) (thanks to Jay Bourque)
* Open sourced prange
* Support for raise statement
* Pluggable array representation
* Support for enumerate and zip (thanks to Eugene Toder)
* Better string formatting support (thanks to Eugene Toder)
* Builtins min(), max() and bool() (thanks to Eugene Toder)
* Fix some code reloading issues (thanks to Björn Linse)
* Recognize NumPy scalar objects (thanks to Björn Linse)
Version 0.9
-----------
* Improved math support
* Open sourced generalized ufuncs
* Improved array expressions
Version 0.8
-----------
* Support for autojit classes
* Inheritance not yet supported
* Python 3 support for pycc
* Allow retrieval of ctypes function wrapper
* And hence support retrieval of a pointer to the function
* Fixed a memory leak of array slicing views
Version 0.7.2
-------------
* Official Python 3 support (python 3.2 and 3.3)
* Support for intrinsics and instructions
* Various bug fixes (see https://github.com/numba/numba/issues?milestone=7&state=closed)
Version 0.7.1
-------------
* Various bug fixes
Version 0.7
-----------
* Open sourced single-threaded ufunc vectorizer
* Open sourced NumPy array expression compilation
* Open sourced fast NumPy array slicing
* Experimental Python 3 support
* Support for typed containers
* typed lists and tuples
* Support for iteration over objects
* Support object comparisons
* Preliminary CFFI support
* Jit calls to CFFI functions (passed into autojit functions)
* TODO: Recognize ffi_lib.my_func attributes
* Improved support for ctypes
* Allow declaring extension attribute types as through class attributes
* Support for type casting in Python
* Get the same semantics with or without numba compilation
* Support for recursion
* For jit methods and extension classes
* Allow jit functions as C callbacks
* Friendlier error reporting
* Internal improvements
* A variety of bug fixes
Version 0.6.1
--------------
* Support for bitwise operations
Version 0.6
--------------
* Python 2.6 support
* Programmable typing
* Allow users to add type inference for external code
* Better NumPy type inference
* outer, inner, dot, vdot, tensordot, nonzero, where,
binary ufuncs + methods (reduce, accumulate, reduceat, outer)
* Type based alias analysis
* Support for strict aliasing
* Much faster autojit dispatch when calling from Python
* Faster numerical loops through data and stride pre-loading
* Integral overflow and underflow checking for conversions from objects
* Make Meta dependency optional
Version 0.5
--------------
* SSA-based type inference
* Allows variable reuse
* Allow referring to variables before lexical definition
* Support multiple comparisons
* Support for template types
* List comprehensions
* Support for pointers
* Many bug fixes
* Added user documentation
Version 0.4
--------------
Version 0.3.2
--------------
* Add support for object arithmetic (issue 56).
* Bug fixes (issue 55).
Version 0.3
--------------
* Changed default compilation approach to ast
* Added support for cross-module linking
* Added support for closures (can jit inner functions and return them) (see examples/closure.py)
* Added support for dtype structures (can access elements of structure with attribute access) (see examples/structures.py)
* Added support for extension types (numba classes) (see examples/numbaclasses.py)
* Added support for general Python code (use nopython to raise an error if Python C-API is used to avoid unexpected slowness because of lack of implementation defaulting to generic Python)
* Fixed many bugs
* Added support to detect math operations.
* Added with python and with nopython contexts
* Added more examples
Many features need to be documented still. Look at examples and tests for more information.
Version 0.2
--------------
* Added an ast approach to compilation
* Removed d, f, i, b from numba namespace (use f8, f4, i4, b1)
* Changed function to autojit2
* Added autojit function to decorate calls to the function and use types of the variable to create compiled versions.
* changed keyword arguments to jit and autojit functions to restype and argtypes to be consistent with ctypes module.
* Added pycc -- a python to shared library compiler