Accepting request 932339 from devel:languages:python:numeric

OBS-URL: https://build.opensuse.org/request/show/932339
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-numba?expand=0&rev=29
This commit is contained in:
Dominique Leuenberger 2021-11-20 08:37:53 +00:00 committed by Git OBS Bridge
commit 0d6025847d
9 changed files with 372 additions and 168 deletions

View File

@ -8,11 +8,11 @@ Fix for #3876 without needing to patch LLVM.
numba/__init__.py | 5 +++++ numba/__init__.py | 5 +++++
1 file changed, 5 insertions(+) 1 file changed, 5 insertions(+)
diff --git a/numba/__init__.py b/numba/__init__.py Index: numba-0.54.1/numba/__init__.py
index c62ad06289..114e9a597e 100644 ===================================================================
--- a/numba/__init__.py --- numba-0.54.1.orig/numba/__init__.py
+++ b/numba/__init__.py +++ numba-0.54.1/numba/__init__.py
@@ -102,6 +102,11 @@ def _ensure_llvm(): @@ -119,6 +119,11 @@ def _ensure_llvm():
"Please update llvmlite." % "Please update llvmlite." %
(_min_llvm_version + llvm_version_info)) (_min_llvm_version + llvm_version_info))
raise ImportError(msg) raise ImportError(msg)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:55c11d7edbba2ba715f2b56f5294cad55cfd87bff98e2627c3047c2d5cc52d16
size 2212284

3
numba-0.54.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f9dfc803c864edcc2381219b800abf366793400aea55e26d4d5b7d953e14f43f
size 2232957

View File

@ -1,72 +0,0 @@
diff --git a/numba/misc/llvm_pass_timings.py b/numba/misc/llvm_pass_timings.py
index 205bb3396..b3263dd45 100644
--- a/numba/misc/llvm_pass_timings.py
+++ b/numba/misc/llvm_pass_timings.py
@@ -239,12 +239,14 @@ class ProcessedPassTimings:
missing[k] = 0.0
# parse timings
n = r"\s*((?:[0-9]+\.)?[0-9]+)"
- pat = f"\\s+{n}\\s*\\({n}%\\)" * (len(headers) - 1) + r"\s*(.*)"
+ pat = f"\\s+(?:{n}\\s*\\({n}%\\)|-+)" * (len(headers) - 1)
+ pat += r"\s*(.*)"
for ln in line_iter:
m = re.match(pat, ln)
if m is not None:
raw_data = list(m.groups())
- data = {k: float(v) for k, v in zip(attrs, raw_data)}
+ data = {k: float(v) if v is not None else 0.0
+ for k, v in zip(attrs, raw_data)}
data.update(missing)
pass_name = raw_data[-1]
rec = PassTimingRecord(
diff --git a/numba/tests/test_llvm_pass_timings.py b/numba/tests/test_llvm_pass_timings.py
index a7e9135cd..25b77e2c5 100644
--- a/numba/tests/test_llvm_pass_timings.py
+++ b/numba/tests/test_llvm_pass_timings.py
@@ -5,6 +5,30 @@ from numba.tests.support import TestCase, override_config
from numba.misc import llvm_pass_timings as lpt
+timings_raw1 = """
+===-------------------------------------------------------------------------===
+ ... Pass execution timing report ...
+===-------------------------------------------------------------------------===
+ Total Execution Time: 0.0001 seconds (0.0001 wall clock)
+
+ ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
+ 0.0001 ( 90.1%) 0.0001 ( 90.1%) 0.0001 ( 90.1%) 0.0001 ( 90.1%) A1
+ 0.0000 ( 9.9%) 0.0000 ( 9.9%) 0.0000 ( 9.9%) 0.0000 ( 9.9%) A2
+ 0.0001 (100.0%) 0.0001 (100.0%) 0.0001 (100.0%) 0.0001 (100.0%) Total
+
+""" # noqa: E501
+
+timings_raw2 = """
+ Total Execution Time: 0.0001 seconds (0.0001 wall clock)
+
+ ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
+ 0.0001 ( 90.1%) ----- 0.0001 ( 90.1%) 0.0001 ( 90.1%) A1
+ 0.0000 ( 9.9%) ----- 0.0000 ( 9.9%) 0.0000 ( 9.9%) A2
+ 0.0001 (100.0%) ----- 0.0001 (100.0%) 0.0001 (100.0%) Total
+
+""" # noqa: E501
+
+
class TestLLVMPassTimings(TestCase):
def test_usage(self):
@@ -61,6 +85,15 @@ class TestLLVMPassTimings(TestCase):
self.assertGreaterEqual(last, cur)
cur = last
+ def test_parse_raw(self):
+ timings1 = lpt.ProcessedPassTimings(timings_raw1)
+ self.assertAlmostEqual(timings1.get_total_time(), 0.0001)
+ self.assertIsInstance(timings1.summary(), str)
+
+ timings2 = lpt.ProcessedPassTimings(timings_raw2)
+ self.assertAlmostEqual(timings2.get_total_time(), 0.0001)
+ self.assertIsInstance(timings2.summary(), str)
+
class TestLLVMPassTimingsDisabled(TestCase):
def test_disabled_behavior(self):

View File

@ -0,0 +1,230 @@
From 3a2c5042fa85ac9b8fe398d605d6d373d27f42bb Mon Sep 17 00:00:00 2001
From: Stuart Archibald <stuartarchibald@users.noreply.github.com>
Date: Thu, 14 Oct 2021 09:35:24 +0100
Subject: [PATCH 1/7] Update build matrix for NumPy 1.21 as per NEP-029.
As title.
---
azure-pipelines.yml | 68 ++++++++++++++--------------
buildscripts/azure/azure-windows.yml | 8 ++--
2 files changed, 38 insertions(+), 38 deletions(-)
Index: numba-0.54.1/setup.py
===================================================================
--- numba-0.54.1.orig/setup.py
+++ numba-0.54.1/setup.py
@@ -22,8 +22,7 @@ except ImportError:
min_python_version = "3.7"
max_python_version = "3.10" # exclusive
min_numpy_build_version = "1.11"
-min_numpy_run_version = "1.17"
-max_numpy_run_version = "1.21"
+min_numpy_run_version = "1.18"
min_llvmlite_version = "0.37.0rc1"
max_llvmlite_version = "0.38"
@@ -360,7 +359,7 @@ packages = find_packages(include=["numba
build_requires = ['numpy >={}'.format(min_numpy_build_version)]
install_requires = [
'llvmlite >={},<{}'.format(min_llvmlite_version, max_llvmlite_version),
- 'numpy >={},<{}'.format(min_numpy_run_version, max_numpy_run_version),
+ 'numpy >={}'.format(min_numpy_run_version),
'setuptools',
]
Index: numba-0.54.1/numba/__init__.py
===================================================================
--- numba-0.54.1.orig/numba/__init__.py
+++ numba-0.54.1/numba/__init__.py
@@ -137,10 +137,8 @@ def _ensure_critical_deps():
if PYVERSION < (3, 7):
raise ImportError("Numba needs Python 3.7 or greater")
- if numpy_version < (1, 17):
- raise ImportError("Numba needs NumPy 1.17 or greater")
- elif numpy_version > (1, 20):
- raise ImportError("Numba needs NumPy 1.20 or less")
+ if numpy_version < (1, 18):
+ raise ImportError("Numba needs NumPy 1.18 or greater")
try:
import scipy
Index: numba-0.54.1/README.rst
===================================================================
--- numba-0.54.1.orig/README.rst
+++ numba-0.54.1/README.rst
@@ -50,7 +50,7 @@ Dependencies
* Python versions: 3.7-3.9
* llvmlite 0.37.*
-* NumPy >=1.17,<1.21 (can build with 1.11 for ABI compatibility).
+* NumPy >=1.18 (can build with 1.11 for ABI compatibility).
Optionally:
Index: numba-0.54.1/docs/source/user/5minguide.rst
===================================================================
--- numba-0.54.1.orig/docs/source/user/5minguide.rst
+++ numba-0.54.1/docs/source/user/5minguide.rst
@@ -18,7 +18,7 @@ Out of the box Numba works with the foll
support on M1/Arm64.
* GPUs: Nvidia CUDA.
* CPython
-* NumPy 1.17 - latest
+* NumPy 1.18 - latest
How do I get it?
----------------
Index: numba-0.54.1/numba/np/ufunc/_internal.c
===================================================================
--- numba-0.54.1.orig/numba/np/ufunc/_internal.c
+++ numba-0.54.1/numba/np/ufunc/_internal.c
@@ -275,6 +275,7 @@ static PyMemberDef dufunc_members[] = {
*/
static struct _ufunc_dispatch {
+ /* Note that the following may also hold `_PyCFunctionFastWithKeywords` */
PyCFunctionWithKeywords ufunc_reduce;
PyCFunctionWithKeywords ufunc_accumulate;
PyCFunctionWithKeywords ufunc_reduceat;
@@ -285,7 +286,7 @@ static struct _ufunc_dispatch {
} ufunc_dispatch;
static int
-init_ufunc_dispatch(void)
+init_ufunc_dispatch(int *numpy_uses_fastcall)
{
int result = 0;
PyMethodDef * crnt = PyUFunc_Type.tp_methods;
@@ -328,6 +329,16 @@ init_ufunc_dispatch(void)
result = -1; /* Unknown method */
}
if (result < 0) break;
+
+ /* Check whether NumPy uses fastcall (ufunc.at never uses it) */
+ if (strncmp(crnt_name, "at", 3) != 0) {
+ if (*numpy_uses_fastcall == -1) {
+ *numpy_uses_fastcall = crnt->ml_flags & METH_FASTCALL;
+ }
+ else if (*numpy_uses_fastcall != (crnt->ml_flags & METH_FASTCALL)) {
+ return -1;
+ }
+ }
}
if (result == 0) {
/* Sanity check. */
@@ -343,6 +354,7 @@ init_ufunc_dispatch(void)
return result;
}
+
static PyObject *
dufunc_reduce(PyDUFuncObject * self, PyObject * args, PyObject *kws)
{
@@ -367,6 +379,47 @@ dufunc_outer(PyDUFuncObject * self, PyOb
return ufunc_dispatch.ufunc_outer((PyObject*)self->ufunc, args, kws);
}
+
+/*
+ * The following are the vectorcall versions of the above, since NumPy
+ * uses the FASTCALL/Vectorcall protocol starting with version 1.21.
+ * The only NumPy versions supporting vectorcall use Python 3.7 or higher.
+ */
+static PyObject *
+dufunc_reduce_fast(PyDUFuncObject * self,
+ PyObject *const *args, Py_ssize_t len_args, PyObject *kwnames)
+{
+ return ((_PyCFunctionFastWithKeywords)ufunc_dispatch.ufunc_reduce)(
+ (PyObject*)self->ufunc, args, len_args, kwnames);
+}
+
+static PyObject *
+dufunc_reduceat_fast(PyDUFuncObject * self,
+ PyObject *const *args, Py_ssize_t len_args, PyObject *kwnames)
+{
+ return ((_PyCFunctionFastWithKeywords)ufunc_dispatch.ufunc_reduceat)(
+ (PyObject*)self->ufunc, args, len_args, kwnames);
+}
+
+
+static PyObject *
+dufunc_accumulate_fast(PyDUFuncObject * self,
+ PyObject *const *args, Py_ssize_t len_args, PyObject *kwnames)
+{
+ return ((_PyCFunctionFastWithKeywords)ufunc_dispatch.ufunc_accumulate)(
+ (PyObject*)self->ufunc, args, len_args, kwnames);
+}
+
+
+static PyObject *
+dufunc_outer_fast(PyDUFuncObject * self,
+ PyObject *const *args, Py_ssize_t len_args, PyObject *kwnames)
+{
+ return ((_PyCFunctionFastWithKeywords)ufunc_dispatch.ufunc_outer)(
+ (PyObject*)self->ufunc, args, len_args, kwnames);
+}
+
+
#if NPY_API_VERSION >= 0x00000008
static PyObject *
dufunc_at(PyDUFuncObject * self, PyObject * args)
@@ -567,6 +620,41 @@ static struct PyMethodDef dufunc_methods
{NULL, NULL, 0, NULL} /* sentinel */
};
+
+/*
+ * If Python is new enough, NumPy may use fastcall. In that case we have to
+ * also use fastcall for simplicity and speed.
+ */
+static struct PyMethodDef dufunc_methods_fast[] = {
+ {"reduce",
+ (PyCFunction)dufunc_reduce_fast,
+ METH_FASTCALL | METH_KEYWORDS, NULL },
+ {"accumulate",
+ (PyCFunction)dufunc_accumulate_fast,
+ METH_FASTCALL | METH_KEYWORDS, NULL },
+ {"reduceat",
+ (PyCFunction)dufunc_reduceat_fast,
+ METH_FASTCALL | METH_KEYWORDS, NULL },
+ {"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,
+ "Abstract method: subclasses should overload _compile_for_args() to compile the ufunc at the given arguments' types."},
+ {"_add_loop",
+ (PyCFunction)dufunc__add_loop,
+ METH_VARARGS,
+ NULL},
+ {NULL, NULL, 0, NULL} /* sentinel */
+};
+
+
static PyObject *
dufunc_getfrozen(PyDUFuncObject * self, void * closure)
{
@@ -680,8 +768,15 @@ MOD_INIT(_internal)
return MOD_ERROR_VAL;
PyDUFunc_Type.tp_new = PyType_GenericNew;
- if (init_ufunc_dispatch() <= 0)
+
+ int numpy_uses_fastcall = -1;
+ if (init_ufunc_dispatch(&numpy_uses_fastcall) <= 0)
return MOD_ERROR_VAL;
+
+ if (numpy_uses_fastcall) {
+ PyDUFunc_Type.tp_methods = dufunc_methods_fast;
+ }
+
if (PyType_Ready(&PyDUFunc_Type) < 0)
return MOD_ERROR_VAL;
Py_INCREF(&PyDUFunc_Type);

View File

@ -1,52 +0,0 @@
From 4811aeceb2dde05124697909b87cf4ad2ae07c65 Mon Sep 17 00:00:00 2001
From: Stuart Archibald <stuartarchibald@users.noreply.github.com>
Date: Wed, 17 Mar 2021 12:29:16 +0000
Subject: [PATCH 1/2] Ignore warnings from packaging module when testing import
behaviour.
As title.
Fixes #6831
---
numba/tests/test_import.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/numba/tests/test_import.py b/numba/tests/test_import.py
index 7cc9082046..a46ad2df6c 100644
--- a/numba/tests/test_import.py
+++ b/numba/tests/test_import.py
@@ -58,7 +58,9 @@ def test_no_accidental_warnings(self):
# checks that importing Numba isn't accidentally triggering warnings due
# to e.g. deprecated use of import locations from Python's stdlib
code = "import numba"
- flags = ["-Werror",]
+ # See: https://github.com/numba/numba/issues/6831
+ # bug in setuptools/packaging causing a deprecation warning
+ flags = ["-Werror", "-Wignore::DeprecationWarning:packaging:"]
self.run_in_subproc(code, flags)
def test_import_star(self):
From 94fc06e77b648b1cb5021cd6d460aa42808a0393 Mon Sep 17 00:00:00 2001
From: Stuart Archibald <stuartarchibald@users.noreply.github.com>
Date: Wed, 17 Mar 2021 16:42:14 +0000
Subject: [PATCH 2/2] Respond to feedback
As title]
---
numba/tests/test_import.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/numba/tests/test_import.py b/numba/tests/test_import.py
index a46ad2df6c..a0ca5725eb 100644
--- a/numba/tests/test_import.py
+++ b/numba/tests/test_import.py
@@ -60,7 +60,7 @@ def test_no_accidental_warnings(self):
code = "import numba"
# See: https://github.com/numba/numba/issues/6831
# bug in setuptools/packaging causing a deprecation warning
- flags = ["-Werror", "-Wignore::DeprecationWarning:packaging:"]
+ flags = ["-Werror", "-Wignore::DeprecationWarning:packaging.version:"]
self.run_in_subproc(code, flags)
def test_import_star(self):

View File

@ -1,3 +1,109 @@
-------------------------------------------------------------------
Thu Nov 18 18:42:21 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to 0.54.1
* This is a bugfix release for 0.54.0. It fixes a regression in
structured array type handling, a potential leak on
initialization failure in the CUDA target, a regression caused
by Numbas vendored cloudpickle module resetting dynamic
classes and a few minor testing/infrastructure related
problems.
- Release summary for 0.54.0
* This release includes a significant number of new features,
important refactoring, critical bug fixes and a number of
dependency upgrades.
* Python language support enhancements:
- Basic support for f-strings.
- dict comprehensions are now supported.
- The sum built-in function is implemented.
* NumPy features/enhancements, The following functions are now
supported:
- np.clip
- np.iscomplex
- np.iscomplexobj
- np.isneginf
- np.isposinf
- np.isreal
- np.isrealobj
- np.isscalar
- np.random.dirichlet
- np.rot90
- np.swapaxes
* Also np.argmax has gained support for the axis keyword argument
and its now possible to use 0d NumPy arrays as scalars in
__setitem__ calls.
Internal changes:
* Debugging support through DWARF has been fixed and enhanced.
* Numba now optimises the way in which locals are emitted to help
reduce time spend in LLVMs SROA passes.
CUDA target changes:
* Support for emitting lineinfo to be consumed by profiling tools
such as Nsight Compute
* Improved fastmath code generation for various trig, division,
and other functions
* Faster compilation using lazy addition of libdevice to compiled
units
* Support for IPC on Windows
* Support for passing tuples to CUDA ufuncs
* Performance warnings:
- When making implicit copies by calling a kernel on arrays in
host memory
- When occupancy is poor due to kernel or ufunc/gufunc
configuration
* Support for implementing warp-aggregated intrinsics:
- Using support for more CUDA functions: activemask(),
lanemask_lt()
- The ffs() function now works correctly!
* Support for @overload in the CUDA target
Intel kindly sponsored research and development that lead to a
number of new features and internal support changes:
* Dispatchers can now be retargetted to a new target via a user
defined context manager.
* Support for custom NumPy array subclasses has been added
(including an overloadable memory allocator).
* An inheritance based model for targets that permits targets to
share @overload implementations.
* Per function compiler flags with inheritance behaviours.
* The extension API now has support for overloading class methods
via the @overload_classmethod decorator.
Deprecations:
* The ROCm target (for AMD ROC GPUs) has been moved to an
“unmaintained” status and a seperate repository stub has been
created for it at: https://github.com/numba/numba-rocm
CUDA target deprecations and breaking changes:
* Relaxed strides checking is now the default when computing the
contiguity of device arrays.
* The inspect_ptx() method is deprecated. For use cases that
obtain PTX for further compilation outside of Numba, use
compile_ptx() instead.
* Eager compilation of device functions (the case when
device=True and a signature is provided) is deprecated.
Version support/dependency changes:
* LLVM 11 is now supported on all platforms via llvmlite.
* The minimum supported Python version is raised to 3.7.
* NumPy version 1.20 is supported.
* The minimum supported NumPy version is raised to 1.17 for
runtime (compilation however remains compatible with NumPy
1.11).
* Vendor cloudpickle v1.6.0 now used for all pickle operations.
* TBB >= 2021 is now supported and all prior versions are
unsupported (not easily possible to maintain the ABI breaking
changes).
- Full release notes;
https://numba.readthedocs.io/en/0.54.1/release-notes.html
- Drop patches merged upstream:
* packaging-ignore-setuptools-deprecation.patch
* numba-pr6851-llvm-timings.patch
- Refresh skip-failing-tests.patch, fix-max-name-size.patch
- Add numba-pr7483-numpy1_21.patch gh#numba/numba#7176,
gh#numba/numba#7483
------------------------------------------------------------------- -------------------------------------------------------------------
Wed Mar 17 16:51:46 UTC 2021 - Ben Greiner <code@bnavigator.de> Wed Mar 17 16:51:46 UTC 2021 - Ben Greiner <code@bnavigator.de>

View File

@ -1,5 +1,5 @@
# #
# spec file for package python-numba-test # spec file
# #
# Copyright (c) 2021 SUSE LLC # Copyright (c) 2021 SUSE LLC
# #
@ -18,7 +18,6 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}} %{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1 %define skip_python2 1
# NEP 29: python36-numpy and -scipy no longer in TW
%define skip_python36 1 %define skip_python36 1
%global flavor @BUILD_FLAVOR@%{nil} %global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test" %if "%{flavor}" == "test"
@ -29,7 +28,7 @@
%bcond_with test %bcond_with test
%endif %endif
Name: python-numba%{psuffix} Name: python-numba%{psuffix}
Version: 0.53.0 Version: 0.54.1
Release: 0 Release: 0
Summary: NumPy-aware optimizing compiler for Python using LLVM Summary: NumPy-aware optimizing compiler for Python using LLVM
License: BSD-2-Clause License: BSD-2-Clause
@ -37,22 +36,20 @@ URL: https://numba.pydata.org/
Source: https://files.pythonhosted.org/packages/source/n/numba/numba-%{version}.tar.gz Source: https://files.pythonhosted.org/packages/source/n/numba/numba-%{version}.tar.gz
# PATCH-FIX-UPSTREAM fix-max-name-size.patch -- fix for gh#numba/numba#3876 -- from gh#numba/numba#4373 # PATCH-FIX-UPSTREAM fix-max-name-size.patch -- fix for gh#numba/numba#3876 -- from gh#numba/numba#4373
Patch0: fix-max-name-size.patch Patch0: fix-max-name-size.patch
# PATCH-FIX-UPSTREAM packaging-ignore-setuptools-deprecation.patch -- gh#numba/numba#6837 # PATCH-FIX-UPSTREAM support numpy 1.21 -- gh#numba/numba#7176, gh#numba/numba#7483
Patch1: https://github.com/numba/numba/pull/6837.patch#/packaging-ignore-setuptools-deprecation.patch Patch1: numba-pr7483-numpy1_21.patch
# PATCH-FIX-USPTREAM ignore empty system time column on llvm timings -- gh#numba/numba#6851
Patch2: numba-pr6851-llvm-timings.patch
# PATCH-FIX-OPENSUSE skip tests failing due to OBS specifics # PATCH-FIX-OPENSUSE skip tests failing due to OBS specifics
Patch3: skip-failing-tests.patch Patch3: skip-failing-tests.patch
BuildRequires: %{python_module devel} BuildRequires: %{python_module devel >= 3.7}
BuildRequires: %{python_module numpy-devel >= 1.15} BuildRequires: %{python_module numpy-devel >= 1.18}
BuildRequires: %{python_module setuptools} BuildRequires: %{python_module setuptools}
BuildRequires: fdupes BuildRequires: fdupes
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: python-rpm-macros BuildRequires: python-rpm-macros
BuildRequires: tbb-devel BuildRequires: tbb-devel >= 2021
Requires: python-llvmlite < 0.37 Requires: python-llvmlite < 0.38
Requires: python-llvmlite >= 0.36 Requires: python-llvmlite >= 0.37
Requires: python-numpy >= 1.15 Requires: python-numpy >= 1.18
Requires: python-scipy >= 0.16 Requires: python-scipy >= 0.16
Requires(post): update-alternatives Requires(post): update-alternatives
Requires(preun):update-alternatives Requires(preun):update-alternatives
@ -106,24 +103,20 @@ This package contains files for developing applications using numba.
%setup -q -n numba-%{version} %setup -q -n numba-%{version}
%autopatch -p1 %autopatch -p1
# Incompatilbe numpy versions (?)
# Check these with every version update! (Last check 0.53)
# https://github.com/numba/numba/issues/5251
# https://numba.discourse.group/t/helping-test-numba-0-53-0-rc/519/34
rm numba/tests/test_np_functions.py
rm numba/tests/test_array_reductions.py
# timeouts randomly in OBS # timeouts randomly in OBS
rm numba/tests/test_typedlist.py rm numba/tests/test_typedlist.py
# if we reduced the amount of tests too much: # if we reduced the amount of tests too much:
#sed -i -e '/check_testsuite_size/ s/5000/3000/' numba/tests/test_runtests.py # sed -i -e '/check_testsuite_size/ s/5000/3000/' numba/tests/test_runtests.py
# our setup imports distutils. Not sure why, but should not be a problem. # our setup imports distutils. Not sure why, but should not be a problem.
sed -i -e "/def test_laziness/,/def/ {/'distutils',/ d}" numba/tests/test_import.py sed -i -e "/def test_laziness/,/def/ {/'distutils',/ d}" numba/tests/test_import.py
sed -i -e '1{/env python/ d}' numba/misc/appdirs.py sed -i -e '1{/env python/ d}' numba/misc/appdirs.py
%build %build
%if !%{with test}
export CFLAGS="%{optflags} -fPIC" export CFLAGS="%{optflags} -fPIC"
%python_build %python_build
%endif
%install %install
%if !%{with test} %if !%{with test}
@ -154,7 +147,7 @@ mv numba_temp numba
%post %post
%{python_install_alternative numba pycc} %{python_install_alternative numba pycc}
%preun %postun
%python_uninstall_alternative numba %python_uninstall_alternative numba
%files %{python_files} -f devel-files-exclude-%{python_bin_suffix}.files %files %{python_files} -f devel-files-exclude-%{python_bin_suffix}.files

View File

@ -1,39 +1,38 @@
Index: numba-0.53.0/numba/tests/test_parfors.py Index: numba-0.54.0/numba/tests/test_parfors.py
=================================================================== ===================================================================
--- numba-0.53.0.orig/numba/tests/test_parfors.py --- numba-0.54.0.orig/numba/tests/test_parfors.py
+++ numba-0.53.0/numba/tests/test_parfors.py +++ numba-0.54.0/numba/tests/test_parfors.py
@@ -1649,7 +1649,7 @@ class TestParfors(TestParforsBase): @@ -1146,6 +1146,7 @@ class TestParforNumPy(TestParforsBase):
msg = ("The reshape API may only include one negative argument.") self.check_variants(test_impl2, data_gen)
self.assertIn(msg, str(raised.exception)) self.count_parfors_variants(test_impl2, data_gen)
- @skip_parfors_unsupported
+ @unittest.skip("Fails on type check in OBS") + @unittest.skip("Fails on type check in OBS")
def test_ndarray_fill(self): def test_ndarray_fill(self):
def test_impl(x): def test_impl(x):
x.fill(7.0) x.fill(7.0)
@@ -2842,7 +2842,7 @@ class TestParforsVectorizer(TestPrangeBa @@ -3890,7 +3891,7 @@ class TestParforsVectorizer(TestPrangeBa
# to check vsqrtpd operates on zmm # to check vsqrtpd operates on zmm
match_vsqrtpd_on_zmm = re.compile('\n\s+vsqrtpd\s+.*zmm.*\n') match_vsqrtpd_on_zmm = re.compile('\n\s+vsqrtpd\s+.*zmm.*\n')
- @linux_only - @linux_only
+ @unittest.skip("Our x86_64 asm is most probably different from the Travis one.") + @unittest.skip("Our x86_64 asm is most probably different from the upstream one.")
def test_vectorizer_fastmath_asm(self): def test_vectorizer_fastmath_asm(self):
""" This checks that if fastmath is set and the underlying hardware """ This checks that if fastmath is set and the underlying hardware
is suitable, and the function supplied is amenable to fastmath based is suitable, and the function supplied is amenable to fastmath based
@@ -2885,7 +2885,7 @@ class TestParforsVectorizer(TestPrangeBa @@ -3933,7 +3934,7 @@ class TestParforsVectorizer(TestPrangeBa
# check no zmm addressing is present # check no zmm addressing is present
self.assertTrue('zmm' not in v) self.assertTrue('zmm' not in v)
- @linux_only - @linux_only
+ @unittest.skip("Our x86_64 asm is most probably different from the Travis one.") + @unittest.skip("Our x86_64 asm is most probably different from the upstream one.")
def test_unsigned_refusal_to_vectorize(self): def test_unsigned_refusal_to_vectorize(self):
""" This checks that if fastmath is set and the underlying hardware """ This checks that if fastmath is set and the underlying hardware
is suitable, and the function supplied is amenable to fastmath based is suitable, and the function supplied is amenable to fastmath based
Index: numba-0.53.0/numba/tests/test_parfors_passes.py Index: numba-0.54.0/numba/tests/test_parfors_passes.py
=================================================================== ===================================================================
--- numba-0.53.0.orig/numba/tests/test_parfors_passes.py --- numba-0.54.0.orig/numba/tests/test_parfors_passes.py
+++ numba-0.53.0/numba/tests/test_parfors_passes.py +++ numba-0.54.0/numba/tests/test_parfors_passes.py
@@ -512,6 +512,7 @@ class TestConvertLoopPass(BaseTest): @@ -516,6 +516,7 @@ class TestConvertLoopPass(BaseTest):
str(raises.exception), str(raises.exception),
) )