1
+ Version 0.48.0dev
2
+ -----------------
3
+
4
+ In development
5
+
6
+
7
+ Version 0.47.0 (Jan 2, 2020)
8
+ -----------------------------
9
+
10
+ This release expands the capability of Numba in a number of important areas and
11
+ is also significant as it is the last major point release with support for
12
+ Python 2 and Python 3.5 included. The next release (0.48.0) will be for Python
13
+ 3.6+ only! (This follows NumPy's deprecation schedule as specified in
14
+ `NEP 29 <https://numpy.org/neps/nep-0029-deprecation_policy.html>`_.)
15
+
16
+ Highlights of core feature changes include:
17
+
18
+ * Full support for Python 3.8 (Siu Kwan Lam)
19
+ * Opt-in bounds checking (Aaron Meurer)
20
+ * Support for ``map``, ``filter`` and ``reduce`` (Stuart Archibald)
21
+
22
+ Intel also kindly sponsored research and development that lead to some exciting
23
+ new features:
24
+
25
+ * Initial support for basic ``try``/``except`` use (Siu Kwan Lam)
26
+ * The ability to pass functions created from closures/lambdas as arguments
27
+ (Stuart Archibald)
28
+ * ``sorted`` and ``list.sort()`` now accept the ``key`` argument (Stuart
29
+ Archibald and Siu Kwan Lam)
30
+ * A new compiler pass triggered through the use of the function
31
+ ``numba.literal_unroll`` which permits iteration over heterogeneous tuples
32
+ and constant lists of constants. (Stuart Archibald)
33
+
34
+ Enhancements from user contributed PRs (with thanks!):
35
+
36
+ * Ankit Mahato added a reference to a new talk on Numba at PyCon India 2019 in
37
+ #4862
38
+ * Brian Wignall kindly fixed some spelling mistakes and typos in #4909
39
+ * Denis Smirnov wrote numerous methods to considerable enhance string support
40
+ including:
41
+
42
+ * ``str.rindex()`` in #4861
43
+ * ``str.isprintable()`` in #4836
44
+ * ``str.index()`` in #4860
45
+ * ``start/end`` parameters for ``str.find()`` in #4866
46
+ * ``str.isspace()`` in #4835
47
+ * ``str.isidentifier()`` #4837
48
+ * ``str.rpartition()`` in #4841
49
+ * ``str.lower()`` and ``str.islower()`` in #4651
50
+
51
+ * Elena Totmenina implemented both ``str.isalnum()``, ``str.isalpha()`` and
52
+ ``str.isascii`` in #4839, #4840 and #4847 respectively.
53
+ * Eric Larson fixed a bug in literal comparison in #4710
54
+ * Ethan Pronovost updated the ``np.arange`` implementation in #4770 to allow
55
+ the use of the ``dtype`` key word argument and also added ``bool``
56
+ implementations for several types in #4715.
57
+ * Graham Markall fixed some issues with the CUDA target, namely:
58
+
59
+ * #4931: Added physical limits for CC 7.0 / 7.5 to CUDA autotune
60
+ * #4934: Fixed bugs in TestCudaWarpOperations
61
+ * #4938: Improved errors / warnings for the CUDA vectorize decorator
62
+
63
+ * Guilherme Leobas fixed a typo in the ``urem`` implementation in #4667
64
+ * Isaac Virshup contributed a number of patches that fixed bugs, added support
65
+ for more NumPy functions and enhanced Python feature support. These
66
+ contributions included:
67
+
68
+ * #4729: Allow array construction with mixed type shape tuples
69
+ * #4904: Implementing ``np.lcm``
70
+ * #4780: Implement np.gcd and math.gcd
71
+ * #4779: Make slice constructor more similar to python.
72
+ * #4707: Added support for slice.indices
73
+ * #4578: Clarify numba ufunc supported features
74
+
75
+ * James Bourbeau fixed some issues with tooling, #4794 add ``setuptools`` as a
76
+ dependency and #4501 add pre-commit hooks for ``flake8`` compliance.
77
+ * Leo Fang made ``numba.dummyarray.Array`` iterable in #4629
78
+ * Marc Garcia fixed the ``numba.jit`` parameter name signature_or_function in
79
+ #4703
80
+ * Marcelo Duarte Trevisani patched the llvmlite requirement to ``>=0.30.0`` in
81
+ #4725
82
+ * Matt Cooper fixed a long standing CI problem in #4737 by remove maxParallel
83
+ * Matti Picus fixed an issue with ``collections.abc`` in #4734
84
+ from Azure Pipelines.
85
+ * Rob Ennis patched a bug in ``np.interp`` ``float32`` handling in #4911
86
+ * VDimir fixed a bug in array transposition layouts in #4777 and re-enabled and
87
+ fixed some idle tests in #4776.
88
+ * Vyacheslav Smirnov Enable support for `str.istitle()`` in #4645
89
+
90
+ General Enhancements:
91
+
92
+ * PR #4432: Bounds checking
93
+ * PR #4501: Add pre-commit hooks
94
+ * PR #4536: Handle kw args in inliner when callee is a function
95
+ * PR #4599: Permits closures to become functions, enables map(), filter()
96
+ * PR #4611: Implement method title() for unicode based on Cpython
97
+ * PR #4645: Enable support for istitle() method for unicode string
98
+ * PR #4651: Implement str.lower() and str.islower()
99
+ * PR #4652: Implement str.rfind()
100
+ * PR #4695: Refactor `overload*` and support `jit_options` and `inline`
101
+ * PR #4707: Added support for slice.indices
102
+ * PR #4715: Add `bool` overload for several types
103
+ * PR #4729: Allow array construction with mixed type shape tuples
104
+ * PR #4755: Python3.8 support
105
+ * PR #4756: Add parfor support for ndarray.fill.
106
+ * PR #4768: Update typeconv error message to ask for sys.executable.
107
+ * PR #4770: Update `np.arange` implementation with `@overload`
108
+ * PR #4779: Make slice constructor more similar to python.
109
+ * PR #4780: Implement np.gcd and math.gcd
110
+ * PR #4794: Add setuptools as a dependency
111
+ * PR #4802: put git hash into build string
112
+ * PR #4803: Better compiler error messages for improperly used reduction
113
+ variables.
114
+ * PR #4817: Typed list implement and expose allocation
115
+ * PR #4818: Typed list faster copy
116
+ * PR #4835: Implement str.isspace() based on CPython
117
+ * PR #4836: Implement str.isprintable() based on CPython
118
+ * PR #4837: Implement str.isidentifier() based on CPython
119
+ * PR #4839: Implement str.isalnum() based on CPython
120
+ * PR #4840: Implement str.isalpha() based on CPython
121
+ * PR #4841: Implement str.rpartition() based on CPython
122
+ * PR #4847: Implement str.isascii() based on CPython
123
+ * PR #4851: Add graphviz output for FunctionIR
124
+ * PR #4854: Python3.8 looplifting
125
+ * PR #4858: Implement str.expandtabs() based on CPython
126
+ * PR #4860: Implement str.index() based on CPython
127
+ * PR #4861: Implement str.rindex() based on CPython
128
+ * PR #4866: Support params start/end for str.find()
129
+ * PR #4874: Bump to llvmlite 0.31
130
+ * PR #4896: Specialise arange dtype on arch + python version.
131
+ * PR #4902: basic support for try except
132
+ * PR #4904: Implement np.lcm
133
+ * PR #4910: loop canonicalisation and type aware tuple unroller/loop body
134
+ versioning passes
135
+ * PR #4961: Update hash(tuple) for Python 3.8.
136
+ * PR #4977: Implement sort/sorted with key.
137
+ * PR #4987: Add `is_internal` property to all Type classes.
138
+
139
+ Fixes:
140
+
141
+ * PR #4090: Update to LLVM8 memset/memcpy intrinsic
142
+ * PR #4582: Convert sub to add and div to mul when doing the reduction across
143
+ the per-thread reduction array.
144
+ * PR #4648: Handle 0 correctly as slice parameter.
145
+ * PR #4660: Remove multiply defined variables from all blocks' equivalence sets.
146
+ * PR #4672: Fix pickling of dufunc
147
+ * PR #4710: BUG: Comparison for literal
148
+ * PR #4718: Change get_call_table to support intermediate Vars.
149
+ * PR #4725: Requires llvmlite >=0.30.0
150
+ * PR #4734: prefer to import from collections.abc
151
+ * PR #4736: fix flake8 errors
152
+ * PR #4776: Fix and enable idle tests from test_array_manipulation
153
+ * PR #4777: Fix transpose output array layout
154
+ * PR #4782: Fix issue with SVML (and knock-on function resolution effects).
155
+ * PR #4785: Treat 0d arrays like scalars.
156
+ * PR #4787: fix missing incref on flags
157
+ * PR #4789: fix typos in numba/targets/base.py
158
+ * PR #4791: fix typos
159
+ * PR #4811: fix spelling in now-failing tests
160
+ * PR #4852: windowing test should check equality only up to double precision
161
+ errors
162
+ * PR #4881: fix refining list by using extend on an iterator
163
+ * PR #4882: Fix return type in arange and zero step size handling.
164
+ * PR #4885: suppress spurious RuntimeWarning about ufunc sizes
165
+ * PR #4891: skip the xfail test for now. Py3.8 CFG refactor seems to have
166
+ changed the test case
167
+ * PR #4892: regex needs to accept singular form of "argument"
168
+ * PR #4901: fix typed list equals
169
+ * PR #4909: Fix some spelling typos
170
+ * PR #4911: np.interp bugfix for float32 handling
171
+ * PR #4920: fix creating list with JIT disabled
172
+ * PR #4921: fix creating dict with JIT disabled
173
+ * PR #4935: Better handling of prange with multiple reductions on the same
174
+ variable.
175
+ * PR #4946: Improve the error message for `raise <string>`.
176
+ * PR #4955: Move overload of literal_unroll to avoid circular dependency that
177
+ breaks Python 2.7
178
+ * PR #4962: Fix test error on windows
179
+ * PR #4973: Fixes a bug in the relabelling logic in literal_unroll.
180
+ * PR #4978: Fix overload_method problem with stararg
181
+ * PR #4981: Add ind_to_const to enable fewer equivalence classes.
182
+ * PR #4991: Continuation of #4588 (Let dead code removal handle removing more of
183
+ the unneeded code after prange conversion to parfor)
184
+ * PR #4994: Remove xfail for test which has since had underlying issue fixed.
185
+ * PR #5018: Fix #5011.
186
+ * PR #5019: skip pycc test on Python 3.8 + macOS because of distutils issue
187
+
188
+ CUDA Enhancements/Fixes:
189
+
190
+ * PR #4629: Make numba.dummyarray.Array iterable
191
+ * PR #4675: Bump cuda array interface to version 2
192
+ * PR #4741: Update choosing the "CUDA_PATH" for windows
193
+ * PR #4838: Permit ravel('A') for contig device arrays in CUDA target
194
+ * PR #4931: Add physical limits for CC 7.0 / 7.5 to autotune
195
+ * PR #4934: Fix fails in TestCudaWarpOperations
196
+ * PR #4938: Improve errors / warnings for cuda vectorize decorator
197
+
198
+ Documentation Updates:
199
+
200
+ * PR #4418: Directed graph task roadmap
201
+ * PR #4578: Clarify numba ufunc supported features
202
+ * PR #4655: fix sphinx build warning
203
+ * PR #4667: Fix typo on urem implementation
204
+ * PR #4669: Add link to ParallelAccelerator paper.
205
+ * PR #4703: Fix numba.jit parameter name signature_or_function
206
+ * PR #4862: Addition of PyCon India 2019 talk on Numba
207
+ * PR #4947: Document jitclass with numba.typed use.
208
+ * PR #4958: Add docs for `try..except`
209
+ * PR #4993: Update deprecations for 0.47
210
+
211
+ CI Updates:
212
+
213
+ * PR #4737: remove maxParallel from Azure Pipelines
214
+ * PR #4767: pin to 2.7.16 for py27 on osx
215
+ * PR #4781: WIP/runtest cf pytest
216
+
217
+ Authors:
218
+
219
+ * Aaron Meurer
220
+ * Ankit Mahato
221
+ * Brian Wignall
222
+ * Denis Smirnov
223
+ * Ehsan Totoni (core dev)
224
+ * Elena Totmenina
225
+ * Eric Larson
226
+ * Ethan Pronovost
227
+ * Giovanni Cavallin
228
+ * Graham Markall
229
+ * Guilherme Leobas
230
+ * Isaac Virshup
231
+ * James Bourbeau
232
+ * Leo Fang
233
+ * Marc Garcia
234
+ * Marcelo Duarte Trevisani
235
+ * Matt Cooper
236
+ * Matti Picus
237
+ * Rob Ennis
238
+ * Rujal Desai
239
+ * Siu Kwan Lam (core dev)
240
+ * Stan Seibert (core dev)
241
+ * Stuart Archibald (core dev)
242
+ * Todd A. Anderson (core dev)
243
+ * VDimir
244
+ * Valentin Haenel (core dev)
245
+ * Vyacheslav Smirnov
246
+
247
+
1
248
Version 0.46.0
2
249
--------------
3
250
@@ -9,6 +256,12 @@ Numba-using projects to automatically have their Numba JIT compilable functions
9
256
discovered. There were also a number of other related compiler toolkit
10
257
enhancement added along with some more NumPy features and a lot of bug fixes.
11
258
259
+ This release has updated the CUDA Array Interface specification to version 2,
260
+ which clarifies the `strides` attribute for C-contiguous arrays and specifies
261
+ the treatment for zero-size arrays. The implementation in Numba has been
262
+ changed and may affect downstream packages relying on the old behavior
263
+ (see issue #4661).
264
+
12
265
Enhancements from user contributed PRs (with thanks!):
13
266
14
267
* Aaron Meurer fixed some Python issues in the code base in #4345 and #4341.
@@ -69,7 +322,7 @@ Fixes:
69
322
* PR #4305: Don't allow the allocation of mutable objects written into a
70
323
container to be hoisted.
71
324
* PR #4311: Avoid deprecated use of inspect.getargspec
72
- * PR #4328: Replace GC macro with function call
325
+ * PR #4328: Replace GC macro with function call
73
326
* PR #4330: Loosen up typed container casting checks
74
327
* PR #4341: Fix some coding lines at the top of some files (utf8 -> utf-8)
75
328
* PR #4345: Replace "import \*" with explicit imports in numba/types
@@ -110,6 +363,7 @@ CUDA Enhancements/Fixes:
110
363
sharedmem
111
364
* PR #4609: Update CUDA Array Interface & Enforce Numba compliance
112
365
* PR #4619: Implement math.{degrees, radians} for the CUDA target.
366
+ * PR #4675: Bump cuda array interface to version 2
113
367
114
368
Documentation Updates:
115
369
@@ -2824,7 +3078,7 @@ make it cleaner and more rational:
2824
3078
* The numba.vectorize namespace is gone. The vectorize decorator will
2825
3079
be in the main numba namespace.
2826
3080
* Added a guvectorize decorator in the main numba namespace. It is
2827
- similiar to numba.vectorize, but takes a dimension signature. It
3081
+ similar to numba.vectorize, but takes a dimension signature. It
2828
3082
generates gufuncs. This is a replacement for the GUVectorize gufunc
2829
3083
factory which has been deprecated.
2830
3084
0 commit comments