diff --git a/_multibuild b/_multibuild
index 3717f3d..8cf2769 100644
--- a/_multibuild
+++ b/_multibuild
@@ -1,4 +1,5 @@
test-py39
test-py310
+ test-py311
diff --git a/numba-0.56.4.tar.gz b/numba-0.56.4.tar.gz
deleted file mode 100644
index f6e7b70..0000000
--- a/numba-0.56.4.tar.gz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:32d9fef412c81483d7efe0ceb6cf4d3310fde8b624a9cecca00f790573ac96ee
-size 2418748
diff --git a/numba-0.57.0.tar.gz b/numba-0.57.0.tar.gz
new file mode 100644
index 0000000..c50c68b
--- /dev/null
+++ b/numba-0.57.0.tar.gz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2af6d81067a5bdc13960c6d2519dbabbf4d5d597cf75d640c5aeaefd48c6420a
+size 2549269
diff --git a/numba-pr8620-np1.24.patch b/numba-pr8620-np1.24.patch
deleted file mode 100644
index 2100f9a..0000000
--- a/numba-pr8620-np1.24.patch
+++ /dev/null
@@ -1,415 +0,0 @@
-Index: numba-0.56.4/numba/cuda/tests/cudapy/test_intrinsics.py
-===================================================================
---- numba-0.56.4.orig/numba/cuda/tests/cudapy/test_intrinsics.py
-+++ numba-0.56.4/numba/cuda/tests/cudapy/test_intrinsics.py
-@@ -619,7 +619,7 @@ class TestCudaIntrinsic(CUDATestCase):
- arg2 = np.float16(4.)
- compiled[1, 1](ary, arg1, arg2)
- np.testing.assert_allclose(ary[0], arg2)
-- arg1 = np.float(5.)
-+ arg1 = np.float16(5.)
- compiled[1, 1](ary, arg1, arg2)
- np.testing.assert_allclose(ary[0], arg1)
-
-@@ -631,7 +631,7 @@ class TestCudaIntrinsic(CUDATestCase):
- arg2 = np.float16(4.)
- compiled[1, 1](ary, arg1, arg2)
- np.testing.assert_allclose(ary[0], arg1)
-- arg1 = np.float(5.)
-+ arg1 = np.float16(5.)
- compiled[1, 1](ary, arg1, arg2)
- np.testing.assert_allclose(ary[0], arg2)
-
-Index: numba-0.56.4/numba/np/arraymath.py
-===================================================================
---- numba-0.56.4.orig/numba/np/arraymath.py
-+++ numba-0.56.4/numba/np/arraymath.py
-@@ -4177,6 +4177,10 @@ iinfo = namedtuple('iinfo', _iinfo_suppo
- # This module is imported under the compiler lock which should deal with the
- # lack of thread safety in the warning filter.
- def _gen_np_machar():
-+ # NumPy 1.24 removed np.MachAr
-+ if numpy_version >= (1, 24):
-+ return
-+
- np122plus = numpy_version >= (1, 22)
- w = None
- with warnings.catch_warnings(record=True) as w:
-Index: numba-0.56.4/numba/np/ufunc/_internal.c
-===================================================================
---- numba-0.56.4.orig/numba/np/ufunc/_internal.c
-+++ numba-0.56.4/numba/np/ufunc/_internal.c
-@@ -285,9 +285,7 @@ static struct _ufunc_dispatch {
- PyCFunctionWithKeywords ufunc_accumulate;
- PyCFunctionWithKeywords ufunc_reduceat;
- PyCFunctionWithKeywords ufunc_outer;
--#if NPY_API_VERSION >= 0x00000008
- PyCFunction ufunc_at;
--#endif
- } ufunc_dispatch;
-
- static int
-@@ -303,10 +301,8 @@ init_ufunc_dispatch(int *numpy_uses_fast
- if (strncmp(crnt_name, "accumulate", 11) == 0) {
- ufunc_dispatch.ufunc_accumulate =
- (PyCFunctionWithKeywords)crnt->ml_meth;
--#if NPY_API_VERSION >= 0x00000008
- } else if (strncmp(crnt_name, "at", 3) == 0) {
- ufunc_dispatch.ufunc_at = crnt->ml_meth;
--#endif
- } else {
- result = -1;
- }
-@@ -326,10 +322,15 @@ init_ufunc_dispatch(int *numpy_uses_fast
- } else if (strncmp(crnt_name, "reduceat", 9) == 0) {
- ufunc_dispatch.ufunc_reduceat =
- (PyCFunctionWithKeywords)crnt->ml_meth;
-+ } else if (strncmp(crnt_name, "resolve_dtypes", 15) == 0) {
-+ /* Ignored */
- } else {
- result = -1;
- }
- break;
-+ case '_':
-+ // We ignore private methods
-+ break;
- default:
- result = -1; /* Unknown method */
- }
-@@ -341,6 +342,8 @@ init_ufunc_dispatch(int *numpy_uses_fast
- *numpy_uses_fastcall = crnt->ml_flags & METH_FASTCALL;
- }
- else if (*numpy_uses_fastcall != (crnt->ml_flags & METH_FASTCALL)) {
-+ PyErr_SetString(PyExc_RuntimeError,
-+ "ufunc.at() flags do not match numpy_uses_fastcall");
- return -1;
- }
- }
-@@ -351,11 +354,13 @@ init_ufunc_dispatch(int *numpy_uses_fast
- && (ufunc_dispatch.ufunc_accumulate != NULL)
- && (ufunc_dispatch.ufunc_reduceat != NULL)
- && (ufunc_dispatch.ufunc_outer != NULL)
--#if NPY_API_VERSION >= 0x00000008
- && (ufunc_dispatch.ufunc_at != NULL)
--#endif
- );
-+ } else {
-+ char const * const fmt = "Unexpected ufunc method %s()";
-+ PyErr_Format(PyExc_RuntimeError, fmt, crnt_name);
- }
-+
- return result;
- }
-
-@@ -425,13 +430,11 @@ dufunc_outer_fast(PyDUFuncObject * self,
- }
-
-
--#if NPY_API_VERSION >= 0x00000008
- static PyObject *
- dufunc_at(PyDUFuncObject * self, PyObject * args)
- {
- return ufunc_dispatch.ufunc_at((PyObject*)self->ufunc, args);
- }
--#endif
-
- static PyObject *
- dufunc__compile_for_args(PyDUFuncObject * self, PyObject * args,
-@@ -609,11 +612,9 @@ static struct PyMethodDef dufunc_methods
- {"outer",
- (PyCFunction)dufunc_outer,
- METH_VARARGS | METH_KEYWORDS, NULL},
--#if NPY_API_VERSION >= 0x00000008
- {"at",
- (PyCFunction)dufunc_at,
- METH_VARARGS, NULL},
--#endif
- {"_compile_for_args",
- (PyCFunction)dufunc__compile_for_args,
- METH_VARARGS | METH_KEYWORDS,
-@@ -643,11 +644,9 @@ static struct PyMethodDef dufunc_methods
- {"outer",
- (PyCFunction)dufunc_outer_fast,
- METH_FASTCALL | METH_KEYWORDS, NULL},
--#if NPY_API_VERSION >= 0x00000008
- {"at",
- (PyCFunction)dufunc_at,
- METH_VARARGS, NULL},
--#endif
- {"_compile_for_args",
- (PyCFunction)dufunc__compile_for_args,
- METH_VARARGS | METH_KEYWORDS,
-@@ -791,9 +790,7 @@ MOD_INIT(_internal)
- if (PyModule_AddIntMacro(m, PyUFunc_One)
- || PyModule_AddIntMacro(m, PyUFunc_Zero)
- || PyModule_AddIntMacro(m, PyUFunc_None)
--#if NPY_API_VERSION >= 0x00000007
- || PyModule_AddIntMacro(m, PyUFunc_ReorderableNone)
--#endif
- )
- return MOD_ERROR_VAL;
-
-Index: numba-0.56.4/numba/stencils/stencilparfor.py
-===================================================================
---- numba-0.56.4.orig/numba/stencils/stencilparfor.py
-+++ numba-0.56.4/numba/stencils/stencilparfor.py
-@@ -21,6 +21,7 @@ from numba.core.ir_utils import (get_cal
- find_callname, require, find_const, GuardException)
- from numba.core.errors import NumbaValueError
- from numba.core.utils import OPERATORS_TO_BUILTINS
-+from numba.np import numpy_support
-
-
- def _compute_last_ind(dim_size, index_const):
-@@ -264,7 +265,11 @@ class StencilPass(object):
- dtype_g_np_assign = ir.Assign(dtype_g_np, dtype_g_np_var, loc)
- init_block.body.append(dtype_g_np_assign)
-
-- dtype_np_attr_call = ir.Expr.getattr(dtype_g_np_var, return_type.dtype.name, loc)
-+ return_type_name = numpy_support.as_dtype(
-+ return_type.dtype).type.__name__
-+ if return_type_name == 'bool':
-+ return_type_name = 'bool_'
-+ dtype_np_attr_call = ir.Expr.getattr(dtype_g_np_var, return_type_name, loc)
- dtype_attr_var = ir.Var(scope, mk_unique_var("$np_attr_attr"), loc)
- self.typemap[dtype_attr_var.name] = types.functions.NumberClass(return_type.dtype)
- dtype_attr_assign = ir.Assign(dtype_np_attr_call, dtype_attr_var, loc)
-Index: numba-0.56.4/numba/tests/test_array_methods.py
-===================================================================
---- numba-0.56.4.orig/numba/tests/test_array_methods.py
-+++ numba-0.56.4/numba/tests/test_array_methods.py
-@@ -1193,7 +1193,7 @@ class TestArrayMethods(MemoryLeakMixin,
- pyfunc = array_sum_dtype_kws
- cfunc = jit(nopython=True)(pyfunc)
- all_dtypes = [np.float64, np.float32, np.int64, np.int32, np.uint32,
-- np.uint64, np.complex64, np.complex128, TIMEDELTA_M]
-+ np.uint64, np.complex64, np.complex128]
- all_test_arrays = [
- [np.ones((7, 6, 5, 4, 3), arr_dtype),
- np.ones(1, arr_dtype),
-@@ -1207,8 +1207,7 @@ class TestArrayMethods(MemoryLeakMixin,
- np.dtype('uint32'): [np.float64, np.int64, np.float32],
- np.dtype('uint64'): [np.float64, np.int64],
- np.dtype('complex64'): [np.complex64, np.complex128],
-- np.dtype('complex128'): [np.complex128],
-- np.dtype(TIMEDELTA_M): [np.dtype(TIMEDELTA_M)]}
-+ np.dtype('complex128'): [np.complex128]}
-
- for arr_list in all_test_arrays:
- for arr in arr_list:
-@@ -1216,15 +1215,15 @@ class TestArrayMethods(MemoryLeakMixin,
- subtest_str = ("Testing np.sum with {} input and {} output"
- .format(arr.dtype, out_dtype))
- with self.subTest(subtest_str):
-- self.assertPreciseEqual(pyfunc(arr, dtype=out_dtype),
-- cfunc(arr, dtype=out_dtype))
-+ self.assertPreciseEqual(pyfunc(arr, dtype=out_dtype),
-+ cfunc(arr, dtype=out_dtype))
-
- def test_sum_axis_dtype_kws(self):
- """ test sum with axis and dtype parameters over a whole range of dtypes """
- pyfunc = array_sum_axis_dtype_kws
- cfunc = jit(nopython=True)(pyfunc)
- all_dtypes = [np.float64, np.float32, np.int64, np.int32, np.uint32,
-- np.uint64, np.complex64, np.complex128, TIMEDELTA_M]
-+ np.uint64, np.complex64, np.complex128]
- all_test_arrays = [
- [np.ones((7, 6, 5, 4, 3), arr_dtype),
- np.ones(1, arr_dtype),
-@@ -1238,9 +1237,7 @@ class TestArrayMethods(MemoryLeakMixin,
- np.dtype('uint32'): [np.float64, np.int64, np.float32],
- np.dtype('uint64'): [np.float64, np.uint64],
- np.dtype('complex64'): [np.complex64, np.complex128],
-- np.dtype('complex128'): [np.complex128],
-- np.dtype(TIMEDELTA_M): [np.dtype(TIMEDELTA_M)],
-- np.dtype(TIMEDELTA_Y): [np.dtype(TIMEDELTA_Y)]}
-+ np.dtype('complex128'): [np.complex128]}
-
- for arr_list in all_test_arrays:
- for arr in arr_list:
-Index: numba-0.56.4/numba/tests/test_comprehension.py
-===================================================================
---- numba-0.56.4.orig/numba/tests/test_comprehension.py
-+++ numba-0.56.4/numba/tests/test_comprehension.py
-@@ -11,6 +11,7 @@ from numba import jit, typed
- from numba.core import types, utils
- from numba.core.errors import TypingError, LoweringError
- from numba.core.types.functions import _header_lead
-+from numba.np.numpy_support import numpy_version
- from numba.tests.support import tag, _32bit, captured_stdout
-
-
-@@ -360,6 +361,7 @@ class TestArrayComprehension(unittest.Te
- self.check(comp_nest_with_array_conditional, 5,
- assert_allocate_list=True)
-
-+ @unittest.skipUnless(numpy_version < (1, 24), 'Removed in NumPy 1.24')
- def test_comp_nest_with_dependency(self):
- def comp_nest_with_dependency(n):
- l = np.array([[i * j for j in range(i+1)] for i in range(n)])
-Index: numba-0.56.4/numba/tests/test_linalg.py
-===================================================================
---- numba-0.56.4.orig/numba/tests/test_linalg.py
-+++ numba-0.56.4/numba/tests/test_linalg.py
-@@ -1122,6 +1122,32 @@ class TestLinalgSvd(TestLinalgBase):
- Tests for np.linalg.svd.
- """
-
-+ # This checks that A ~= U*S*V**H, i.e. SV decomposition ties out. This is
-+ # required as NumPy uses only double precision LAPACK routines and
-+ # computation of SVD is numerically sensitive. Numba uses type-specific
-+ # routines and therefore sometimes comes out with a different answer to
-+ # NumPy (orthonormal bases are not unique, etc.).
-+
-+ def check_reconstruction(self, a, got, expected):
-+ u, sv, vt = got
-+
-+ # Check they are dimensionally correct
-+ for k in range(len(expected)):
-+ self.assertEqual(got[k].shape, expected[k].shape)
-+
-+ # Columns in u and rows in vt dictates the working size of s
-+ s = np.zeros((u.shape[1], vt.shape[0]))
-+ np.fill_diagonal(s, sv)
-+
-+ rec = np.dot(np.dot(u, s), vt)
-+ resolution = np.finfo(a.dtype).resolution
-+ np.testing.assert_allclose(
-+ a,
-+ rec,
-+ rtol=10 * resolution,
-+ atol=100 * resolution # zeros tend to be fuzzy
-+ )
-+
- @needs_lapack
- def test_linalg_svd(self):
- """
-@@ -1150,34 +1176,8 @@ class TestLinalgSvd(TestLinalgBase):
- # plain match failed, test by reconstruction
- use_reconstruction = True
-
-- # if plain match fails then reconstruction is used.
-- # this checks that A ~= U*S*V**H
-- # i.e. SV decomposition ties out
-- # this is required as numpy uses only double precision lapack
-- # routines and computation of svd is numerically
-- # sensitive, numba using the type specific routines therefore
-- # sometimes comes out with a different answer (orthonormal bases
-- # are not unique etc.).
- if use_reconstruction:
-- u, sv, vt = got
--
-- # check they are dimensionally correct
-- for k in range(len(expected)):
-- self.assertEqual(got[k].shape, expected[k].shape)
--
-- # regardless of full_matrices cols in u and rows in vt
-- # dictates the working size of s
-- s = np.zeros((u.shape[1], vt.shape[0]))
-- np.fill_diagonal(s, sv)
--
-- rec = np.dot(np.dot(u, s), vt)
-- resolution = np.finfo(a.dtype).resolution
-- np.testing.assert_allclose(
-- a,
-- rec,
-- rtol=10 * resolution,
-- atol=100 * resolution # zeros tend to be fuzzy
-- )
-+ self.check_reconstruction(a, got, expected)
-
- # Ensure proper resource management
- with self.assertNoNRTLeak():
-@@ -1238,8 +1238,11 @@ class TestLinalgSvd(TestLinalgBase):
- got = func(X, False)
- np.testing.assert_allclose(X, X_orig)
-
-- for e_a, g_a in zip(expected, got):
-- np.testing.assert_allclose(e_a, g_a)
-+ try:
-+ for e_a, g_a in zip(expected, got):
-+ np.testing.assert_allclose(e_a, g_a)
-+ except AssertionError:
-+ self.check_reconstruction(X, got, expected)
-
-
- class TestLinalgQr(TestLinalgBase):
-Index: numba-0.56.4/numba/tests/test_mathlib.py
-===================================================================
---- numba-0.56.4.orig/numba/tests/test_mathlib.py
-+++ numba-0.56.4/numba/tests/test_mathlib.py
-@@ -516,7 +516,7 @@ class TestMathLib(TestCase):
- with warnings.catch_warnings():
- warnings.simplefilter("error", RuntimeWarning)
- self.assertRaisesRegexp(RuntimeWarning,
-- 'overflow encountered in .*_scalars',
-+ 'overflow encountered in .*scalar',
- naive_hypot, val, val)
-
- def test_hypot_npm(self):
-Index: numba-0.56.4/numba/tests/test_np_functions.py
-===================================================================
---- numba-0.56.4.orig/numba/tests/test_np_functions.py
-+++ numba-0.56.4/numba/tests/test_np_functions.py
-@@ -932,11 +932,11 @@ class TestNPFunctions(MemoryLeakMixin, T
- yield np.inf, None
- yield np.PINF, None
- yield np.asarray([-np.inf, 0., np.inf]), None
-- yield np.NINF, np.zeros(1, dtype=np.bool)
-- yield np.inf, np.zeros(1, dtype=np.bool)
-- yield np.PINF, np.zeros(1, dtype=np.bool)
-+ yield np.NINF, np.zeros(1, dtype=np.bool_)
-+ yield np.inf, np.zeros(1, dtype=np.bool_)
-+ yield np.PINF, np.zeros(1, dtype=np.bool_)
- yield np.NINF, np.empty(12)
-- yield np.asarray([-np.inf, 0., np.inf]), np.zeros(3, dtype=np.bool)
-+ yield np.asarray([-np.inf, 0., np.inf]), np.zeros(3, dtype=np.bool_)
-
- pyfuncs = [isneginf, isposinf]
- for pyfunc in pyfuncs:
-@@ -4775,6 +4775,7 @@ def foo():
- eval(compile(funcstr, '', 'exec'))
- return locals()['foo']
-
-+ @unittest.skipIf(numpy_version >= (1, 24), "NumPy < 1.24 required")
- def test_MachAr(self):
- attrs = ('ibeta', 'it', 'machep', 'eps', 'negep', 'epsneg', 'iexp',
- 'minexp', 'xmin', 'maxexp', 'xmax', 'irnd', 'ngrd',
-@@ -4817,7 +4818,8 @@ def foo():
- cfunc = jit(nopython=True)(iinfo)
- cfunc(np.float64(7))
-
-- @unittest.skipUnless(numpy_version >= (1, 22), "Needs NumPy >= 1.22")
-+ @unittest.skipUnless((1, 22) <= numpy_version < (1, 24),
-+ "Needs NumPy >= 1.22, < 1.24")
- @TestCase.run_test_in_subprocess
- def test_np_MachAr_deprecation_np122(self):
- # Tests that Numba is replaying the NumPy 1.22 deprecation warning
-Index: numba-0.56.4/setup.py
-===================================================================
---- numba-0.56.4.orig/setup.py
-+++ numba-0.56.4/setup.py
-@@ -23,7 +23,7 @@ min_python_version = "3.7"
- max_python_version = "3.11" # exclusive
- min_numpy_build_version = "1.11"
- min_numpy_run_version = "1.18"
--max_numpy_run_version = "1.24"
-+max_numpy_run_version = "1.25" # exclusive
- min_llvmlite_version = "0.39.0dev0"
- max_llvmlite_version = "0.40"
-
-Index: numba-0.56.4/numba/__init__.py
-===================================================================
---- numba-0.56.4.orig/numba/__init__.py
-+++ numba-0.56.4/numba/__init__.py
-@@ -142,8 +142,8 @@ def _ensure_critical_deps():
-
- if numpy_version < (1, 18):
- raise ImportError("Numba needs NumPy 1.18 or greater")
-- elif numpy_version > (1, 23):
-- raise ImportError("Numba needs NumPy 1.23 or less")
-+ elif numpy_version > (1, 24):
-+ raise ImportError("Numba needs NumPy 1.24 or less")
-
- try:
- import scipy
diff --git a/python-numba.changes b/python-numba.changes
index bcb4201..5c4c252 100644
--- a/python-numba.changes
+++ b/python-numba.changes
@@ -1,3 +1,26 @@
+-------------------------------------------------------------------
+Fri May 26 13:28:26 UTC 2023 - Steve Kowalik
+
+- Update to 0.57.0:
+ * Support for Python 3.11 (minimum is moved to 3.8)
+ * Support for NumPy 1.24 (minimum is moved to 1.21)
+ * Python language support enhancements:
+ + Exception classes now support arguments that are not compile time
+ constant.
+ + The built-in functions hasattr and getattr are supported for compile
+ time constant attributes.
+ + The built-in functions str and repr are now implemented similarly to
+ their Python implementations. Custom __str__ and __repr__ functions
+ can be associated with types and work as expected.
+ + Numba’s unicode functionality in str.startswith now supports kwargs
+ start and end.
+ + min and max now support boolean types.
+ + Support is added for the dict(iterable) constructor.
+- Dropped patches:
+ * numba-pr8620-np1.24.patch
+ * update-tbb-backend-calls-2021.6.patch
+- Rebased existing patch.
+
-------------------------------------------------------------------
Wed Apr 12 05:53:24 UTC 2023 - Steve Kowalik
diff --git a/python-numba.spec b/python-numba.spec
index 716b34a..a25ef1a 100644
--- a/python-numba.spec
+++ b/python-numba.spec
@@ -17,13 +17,9 @@
%define skip_python2 1
-# Not compatible with Python 3.11 yet. If this changes, and the python311
-# flavor is active, make sure to expand the multibuild test flavors
-# https://github.com/numba/numba/issues/8304
-%define skip_python311 1
%define plainpython python
# upper bound is exclusive: min-numpy_ver <= numpy < max_numpy_ver
-%define min_numpy_ver 1.18
+%define min_numpy_ver 1.21
%define max_numpy_ver 1.25
%global flavor @BUILD_FLAVOR@%{nil}
@@ -43,22 +39,24 @@
%define skip_python311 1
%bcond_without test
%endif
+%if "%{flavor}" == "test-py311"
+%define psuffix -test-py311
+%define skip_python39 1
+%define skip_python310 1
+%bcond_without test
+%endif
Name: python-numba%{?psuffix}
-Version: 0.56.4
+Version: 0.57.0
Release: 0
Summary: NumPy-aware optimizing compiler for Python using LLVM
License: BSD-2-Clause
URL: https://numba.pydata.org/
# SourceRepository: https://github.com/numba/numba
Source: https://files.pythonhosted.org/packages/source/n/numba/numba-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM numba-pr8620-np1.24.patch gh#numba/numba#8620 + raising upper bound in setup.py and numba/__init__.py
-Patch1: numba-pr8620-np1.24.patch
# PATCH-FIX-OPENSUSE skip tests failing due to OBS specifics
Patch3: skip-failing-tests.patch
-# PATCH-FIX-OPENSUSE update-tbb-backend-calls-2021.6.patch, based on gh#numba/numba#7608
-Patch4: update-tbb-backend-calls-2021.6.patch
-BuildRequires: %{python_module devel >= 3.7}
+BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module numpy-devel >= %{min_numpy_ver} with %python-numpy-devel < %{max_numpy_ver}}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
@@ -67,7 +65,7 @@ BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: python-rpm-macros
BuildRequires: (tbb-devel >= 2021)
-Requires: (python-llvmlite >= 0.39 with python-llvmlite < 0.40)
+Requires: (python-llvmlite >= 0.40 with python-llvmlite < 0.41)
Requires: (python-numpy >= %{min_numpy_ver} with python-numpy < %{max_numpy_ver})
Requires(post): update-alternatives
Requires(postun):update-alternatives
@@ -147,7 +145,6 @@ sed 's|^%{buildroot}||' devel-files0-%{$python_bin_suffix}.files > devel-files-%
sed 's|^%{buildroot}|%%exclude |' devel-files0-%{$python_bin_suffix}.files > devel-files-exclude-%{$python_bin_suffix}.files
}
%python_clone -a %{buildroot}%{_bindir}/numba
-%python_clone -a %{buildroot}%{_bindir}/pycc
%endif
%check
@@ -164,7 +161,7 @@ popd
%if !%{with test}
%post
-%python_install_alternative numba pycc
+%python_install_alternative numba
%postun
%python_uninstall_alternative numba
@@ -173,7 +170,6 @@ popd
%license LICENSE
%doc CHANGE_LOG README.rst
%python_alternative %{_bindir}/numba
-%python_alternative %{_bindir}/pycc
%{python_sitearch}/numba/
%{python_sitearch}/numba-%{version}.dist-info
diff --git a/skip-failing-tests.patch b/skip-failing-tests.patch
index 1e72984..0732fbd 100644
--- a/skip-failing-tests.patch
+++ b/skip-failing-tests.patch
@@ -3,9 +3,11 @@
numba/tests/test_parfors_passes.py | 1 +
2 files changed, 4 insertions(+), 2 deletions(-)
---- a/numba/tests/test_parfors.py
-+++ b/numba/tests/test_parfors.py
-@@ -1174,6 +1174,7 @@ class TestParforNumPy(TestParforsBase):
+Index: numba-0.57.0/numba/tests/test_parfors.py
+===================================================================
+--- numba-0.57.0.orig/numba/tests/test_parfors.py
++++ numba-0.57.0/numba/tests/test_parfors.py
+@@ -1190,6 +1190,7 @@ class TestParforNumPy(TestParforsBase):
self.check_variants(test_impl2, data_gen)
self.count_parfors_variants(test_impl2, data_gen)
@@ -13,16 +15,16 @@
def test_ndarray_fill(self):
def test_impl(x):
x.fill(7.0)
-@@ -4396,7 +4397,7 @@ class TestParforsVectorizer(TestPrangeBa
- # to check vsqrtpd operates on zmm
- match_vsqrtpd_on_zmm = re.compile('\n\s+vsqrtpd\s+.*zmm.*\n')
+@@ -4479,7 +4480,7 @@ class TestParforsVectorizer(TestPrangeBa
+
+ return asm
- @linux_only
+ @unittest.skip("Our x86_64 asm is most probably different from the upstream one.")
def test_vectorizer_fastmath_asm(self):
""" This checks that if fastmath is set and the underlying hardware
is suitable, and the function supplied is amenable to fastmath based
-@@ -4439,7 +4440,7 @@ class TestParforsVectorizer(TestPrangeBa
+@@ -4519,7 +4520,7 @@ class TestParforsVectorizer(TestPrangeBa
# check no zmm addressing is present
self.assertTrue('zmm' not in v)
@@ -31,8 +33,10 @@
def test_unsigned_refusal_to_vectorize(self):
""" This checks that if fastmath is set and the underlying hardware
is suitable, and the function supplied is amenable to fastmath based
---- a/numba/tests/test_parfors_passes.py
-+++ b/numba/tests/test_parfors_passes.py
+Index: numba-0.57.0/numba/tests/test_parfors_passes.py
+===================================================================
+--- numba-0.57.0.orig/numba/tests/test_parfors_passes.py
++++ numba-0.57.0/numba/tests/test_parfors_passes.py
@@ -516,6 +516,7 @@ class TestConvertLoopPass(BaseTest):
str(raises.exception),
)
@@ -41,10 +45,10 @@
def test_init_prange(self):
def test_impl():
n = 20
-Index: numba-0.56.2/numba/tests/test_cli.py
+Index: numba-0.57.0/numba/tests/test_cli.py
===================================================================
---- numba-0.56.2.orig/numba/tests/test_cli.py
-+++ numba-0.56.2/numba/tests/test_cli.py
+--- numba-0.57.0.orig/numba/tests/test_cli.py
++++ numba-0.57.0/numba/tests/test_cli.py
@@ -264,6 +264,7 @@ class TestGDBCLIInfoBrokenGdbs(TestCase)
self.assertIn("No such file or directory", stdout)
self.assertIn(path, stdout)
diff --git a/update-tbb-backend-calls-2021.6.patch b/update-tbb-backend-calls-2021.6.patch
deleted file mode 100644
index 4b07df2..0000000
--- a/update-tbb-backend-calls-2021.6.patch
+++ /dev/null
@@ -1,72 +0,0 @@
----
- numba/np/ufunc/tbbpool.cpp | 29 ++++++++++++++++++++++++-----
- 1 file changed, 24 insertions(+), 5 deletions(-)
-
---- a/numba/np/ufunc/tbbpool.cpp
-+++ b/numba/np/ufunc/tbbpool.cpp
-@@ -12,6 +12,7 @@ Implement parallel vectorize workqueue o
- #undef _XOPEN_SOURCE
- #endif
-
-+#include
- #include
- #include
- #include
-@@ -27,10 +28,28 @@ Implement parallel vectorize workqueue o
- * from here:
- * https://github.com/intel/tbb/blob/2019_U5/include/tbb/tbb_stddef.h#L29
- */
--#if (TBB_INTERFACE_VERSION >= 12060) || (TBB_INTERFACE_VERSION < 12010)
--#error "TBB version is incompatible, 2021.1 through to 2021.5 required, i.e. 12010 <= TBB_INTERFACE_VERSION < 12060"
-+#if TBB_INTERFACE_VERSION < 12010
-+#error "TBB version is too old, 2021 update 1, i.e. TBB_INTERFACE_VERSION >= 12010 required"
- #endif
-
-+static tbb::task_scheduler_handle tbb_tsh_attach()
-+{
-+#if TBB_INTERFACE_VERSION >= 12060
-+ return tbb::attach();
-+#else
-+ return tbb::task_scheduler_handle::get();
-+#endif
-+}
-+
-+static void tbb_tsh_release(tbb::task_scheduler_handle& tsh)
-+{
-+#if TBB_INTERFACE_VERSION >= 12060
-+ tsh.release();
-+#else
-+ tbb::task_scheduler_handle::release(tsh);
-+#endif
-+}
-+
- #define _DEBUG 0
- #define _TRACE_SPLIT 0
-
-@@ -235,7 +254,7 @@ static void prepare_fork(void)
- {
- if (!tbb::finalize(tsh, std::nothrow))
- {
-- tbb::task_scheduler_handle::release(tsh);
-+ tbb_tsh_release(tsh);
- puts("Unable to join threads to shut down before fork(). "
- "This can break multithreading in child processes.\n");
- }
-@@ -260,7 +279,7 @@ static void reset_after_fork(void)
-
- if(need_reinit_after_fork)
- {
-- tsh = tbb::task_scheduler_handle::get();
-+ tbb_tsh_attach();
- set_main_thread();
- tsh_was_initialized = true;
- need_reinit_after_fork = false;
-@@ -298,7 +317,7 @@ static void launch_threads(int count)
- if(count < 1)
- count = tbb::task_arena::automatic;
-
-- tsh = tbb::task_scheduler_handle::get();
-+ tsh = tbb_tsh_attach();
- tsh_was_initialized = true;
-
- tg = new tbb::task_group;