From ade0ddd981ff445b5d22db6a30c7dade0b5a4f24a49d6ec82aaec46851da4655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Thu, 6 Jun 2024 18:27:10 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main python-numba revision f798441103caf815a9096077252b93ed --- _multibuild | 2 +- numba-0.58.1.tar.gz | 3 -- numba-0.59.1.tar.gz | 3 ++ python-numba.changes | 113 +++++++++++++++++++++++++++------------ python-numba.spec | 52 ++++++++++-------- skip-failing-tests.patch | 42 +++++++++------ 6 files changed, 138 insertions(+), 77 deletions(-) delete mode 100644 numba-0.58.1.tar.gz create mode 100644 numba-0.59.1.tar.gz diff --git a/_multibuild b/_multibuild index 8cf2769..6d8cafe 100644 --- a/_multibuild +++ b/_multibuild @@ -1,5 +1,5 @@ - test-py39 test-py310 test-py311 + test-py312 diff --git a/numba-0.58.1.tar.gz b/numba-0.58.1.tar.gz deleted file mode 100644 index 01b7560..0000000 --- a/numba-0.58.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:487ded0633efccd9ca3a46364b40006dbdaca0f95e99b8b83e778d1195ebcbaa -size 2623830 diff --git a/numba-0.59.1.tar.gz b/numba-0.59.1.tar.gz new file mode 100644 index 0000000..e45b0d2 --- /dev/null +++ b/numba-0.59.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76f69132b96028d2774ed20415e8c528a34e3299a40581bae178f0994a2f370b +size 2652730 diff --git a/python-numba.changes b/python-numba.changes index 6a7c554..254ca88 100644 --- a/python-numba.changes +++ b/python-numba.changes @@ -1,3 +1,46 @@ +------------------------------------------------------------------- +Tue May 28 09:30:26 UTC 2024 - Daniel Garcia + +- Skip broken test on ppc64le + bsc#1225394, gh#numba/numba#8489 + +------------------------------------------------------------------- +Fri Mar 22 20:05:25 UTC 2024 - Dirk Müller + +- update to 0.59.1: + * Fixed caching of kernels that use target-specific overloads + * Fixed a performance regression introduced in Numba 0.59 which + made ``np.searchsorted`` considerably slower. + * This patch fixes two issues with ``np.searchsorted``. First, + a regression is fixed in the support of ``np.datetime64``. + Second, adopt ``NAT``-aware comparisons to fix mishandling + of ``NAT`` value. + * Allow use of Python 3.12 PEP-695 type parameter syntax + +------------------------------------------------------------------- +Fri Mar 8 15:37:58 UTC 2024 - Ben Greiner + +- Stop testing python39: dropped since ipython 8.19 + +------------------------------------------------------------------- +Wed Feb 21 15:35:47 UTC 2024 - Ben Greiner + +- Simplify test flavor logic +- Prepare for python39 flavor drop: Exclude build in empty test + flavors +- Don't test on 32bit-platforms + +------------------------------------------------------------------- +Sat Feb 3 07:04:27 UTC 2024 - Dirk Müller + +- update to 0.59.0 + * Python 3.12 support + * minimum supported version to 3.9 + * Add support for ufunc attributes and reduce + * Add a config variable to enable / disable the llvmlite memory + manager + * see https://numba.readthedocs.io/en/stable/release/0.59.0-notes.html#highlights + ------------------------------------------------------------------- Mon Nov 20 12:15:07 UTC 2023 - Markéta Machová @@ -29,7 +72,7 @@ Mon Aug 21 19:53:19 UTC 2023 - Ben Greiner Mon Aug 14 06:47:15 UTC 2023 - Dirk Müller - update to 0.57.1: - * fix regressions with 0.57.0 + * fix regressions with 0.57.0 - remove upper bound on numpy - upstream does not have it either ------------------------------------------------------------------- @@ -49,7 +92,7 @@ Fri May 26 13:28:26 UTC 2023 - Steve Kowalik + 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. + + Support is added for the dict(iterable) constructor. - Dropped patches: * numba-pr8620-np1.24.patch * update-tbb-backend-calls-2021.6.patch @@ -58,7 +101,7 @@ Fri May 26 13:28:26 UTC 2023 - Steve Kowalik ------------------------------------------------------------------- Wed Apr 12 05:53:24 UTC 2023 - Steve Kowalik -- Clean up leftover Python 3.8 gubbins, look forward to Python 3.11 support. +- Clean up leftover Python 3.8 gubbins, look forward to Python 3.11 support. ------------------------------------------------------------------- Tue Apr 11 08:30:00 UTC 2023 - Dominique Leuenberger @@ -297,12 +340,12 @@ Thu Nov 18 18:42:21 UTC 2021 - Ben Greiner * 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. @@ -311,7 +354,7 @@ Thu Nov 18 18:42:21 UTC 2021 - Ben Greiner 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. @@ -356,35 +399,35 @@ Wed Feb 17 09:49:48 UTC 2021 - Ben Greiner - Update to 0.52.0 https://numba.readthedocs.io/en/stable/release-notes.html - This release focuses on performance improvements, but also adds - some new features and contains numerous bug fixes and stability + This release focuses on performance improvements, but also adds + some new features and contains numerous bug fixes and stability improvements. Highlights of core performance improvements include: - * Intel kindly sponsored research and development into producing - a new reference count pruning pass. This pass operates at the - LLVM level and can prune a number of common reference counting - patterns. This will improve performance for two primary + * Intel kindly sponsored research and development into producing + a new reference count pruning pass. This pass operates at the + LLVM level and can prune a number of common reference counting + patterns. This will improve performance for two primary reasons: - - There will be less pressure on the atomic locks used to do + - There will be less pressure on the atomic locks used to do the reference counting. - - Removal of reference counting operations permits more - inlining and the optimisation passes can in general do more + - Removal of reference counting operations permits more + inlining and the optimisation passes can in general do more with what is present. (Siu Kwan Lam). - * Intel also sponsored work to improve the performance of the - numba.typed.List container, particularly in the case of + * Intel also sponsored work to improve the performance of the + numba.typed.List container, particularly in the case of __getitem__ and iteration (Stuart Archibald). - * Superword-level parallelism vectorization is now switched on - and the optimisation pipeline has been lightly analysed and - tuned so as to be able to vectorize more and more often + * Superword-level parallelism vectorization is now switched on + and the optimisation pipeline has been lightly analysed and + tuned so as to be able to vectorize more and more often (Stuart Archibald). Highlights of core feature changes include: - * The inspect_cfg method on the JIT dispatcher object has been - significantly enhanced and now includes highlighted output and + * The inspect_cfg method on the JIT dispatcher object has been + significantly enhanced and now includes highlighted output and interleaved line markers and Python source (Stuart Archibald). - * The BSD operating system is now unofficially supported (Stuart + * The BSD operating system is now unofficially supported (Stuart Archibald). - * Numerous features/functionality improvements to NumPy support, + * Numerous features/functionality improvements to NumPy support, including support for: - np.asfarray (Guilherme Leobas) - “subtyping” in record arrays (Lucio Fernandez-Arjona) @@ -392,28 +435,28 @@ Wed Feb 17 09:49:48 UTC 2021 - Ben Greiner - operator.contains with ndarray (@mugoh). - np.asarray_chkfinite (Rishabh Varshney). - NumPy 1.19 (Stuart Archibald). - - the ndarray allocators, empty, ones and zeros, accepting a + - the ndarray allocators, empty, ones and zeros, accepting a dtype specified as a string literal (Stuart Archibald). * Booleans are now supported as literal types (Alexey Kozlov). * On the CUDA target: * CUDA 9.0 is now the minimum supported version (Graham Markall). * Support for Unified Memory has been added (Max Katz). * Kernel launch overhead is reduced (Graham Markall). - * Cudasim support for mapped array, memcopies and memset has + * Cudasim support for mapped array, memcopies and memset has been * added (Mike Williams). * Access has been wired in to all libdevice functions (Graham Markall). - * Additional CUDA atomic operations have been added (Michae + * Additional CUDA atomic operations have been added (Michae Collison). - * Additional math library functions (frexp, ldexp, isfinite) + * Additional math library functions (frexp, ldexp, isfinite) (Zhihao * Yuan). * Support for power on complex numbers (Graham Markall). Deprecations to note: - * There are no new deprecations. However, note that - “compatibility” mode, which was added some 40 releases ago to - help transition from 0.11 to 0.12+, has been removed! Also, - the shim to permit the import of jitclass from Numba’s top - level namespace has now been removed as per the deprecation + * There are no new deprecations. However, note that + “compatibility” mode, which was added some 40 releases ago to + help transition from 0.11 to 0.12+, has been removed! Also, + the shim to permit the import of jitclass from Numba’s top + level namespace has now been removed as per the deprecation schedule. - NEP 29: Skip python36 build. Python 3.6 is dropped by NumPy 1.20 @@ -494,7 +537,7 @@ Fri Apr 24 14:07:35 UTC 2020 - Marketa Calabkova (Valentin Haenel). * Experimental support was added for first-class function types (Pearu Peterson). -- Refreshed patch skip-failing-tests.patch +- Refreshed patch skip-failing-tests.patch * the troublesome tests are skipped upstream on 32-bit - Unpin llvmlite @@ -765,7 +808,7 @@ Fri Oct 26 19:45:47 UTC 2018 - Todd R * Experimental support for executing a block of code inside a nopython mode function in object mode. * Parallel loops now allow arrays as reduction variables - * CUDA improvements: FMA, faster float64 atomics on supporting hardware, + * CUDA improvements: FMA, faster float64 atomics on supporting hardware, records in const memory, and improved datatime dtype support * More NumPy functions: vander, tri, triu, tril, fill_diagonal + General Enhancements: diff --git a/python-numba.spec b/python-numba.spec index 135601e..b560daf 100644 --- a/python-numba.spec +++ b/python-numba.spec @@ -1,7 +1,7 @@ # -# spec file +# spec file for package python-numba # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,32 +21,41 @@ %define min_numpy_ver 1.22 %define max_numpy_ver 1.27 +%{?sle15_python_module_pythons} + %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "" %define psuffix %{nil} %bcond_with test -%endif -%if "%{flavor}" == "test-py39" -%define psuffix -test-py39 -%define skip_python310 1 -%define skip_python311 1 +# Supported Platforms: https://numba.pydata.org/numba-doc/dev/user/installing.html#compatibility +ExclusiveArch: x86_64 %ix86 ppc64le %arm aarch64 +%else %bcond_without test -%endif -%if "%{flavor}" == "test-py310" -%define psuffix -test-py310 +%define psuffix -%{flavor} +%if "%{flavor}" != "test-py39" %define skip_python39 1 -%define skip_python311 1 -%bcond_without test %endif -%if "%{flavor}" == "test-py311" -%define psuffix -test-py311 -%define skip_python39 1 +%if "%{flavor}" != "test-py310" %define skip_python310 1 -%bcond_without test +%endif +%if "%{flavor}" != "test-py311" +%define skip_python311 1 +%endif +%if "%{flavor}" != "test-py312" +%define skip_python312 1 +%endif +# The obs server-side interpreter cannot use lua or rpm shrink +%if "%pythons" == "" || "%pythons" == " " || "%pythons" == " " || "%pythons" == " " || "%pythons" == " " || ( "%pythons" == "python311" && 0%{?skip_python311} ) +ExclusiveArch: donotbuild +%define python_module() %flavor-not-enabled-in-buildset-for-suse-%{?suse_version} +%else +# Tests fail on ppc64 big endian, not resolvable on s390x, wrong types on 32-bit. See also above compatibility list for building +ExcludeArch: s390x ppc64 %ix86 %arm +%endif %endif Name: python-numba%{?psuffix} -Version: 0.58.1 +Version: 0.59.1 Release: 0 Summary: NumPy-aware optimizing compiler for Python using LLVM License: BSD-2-Clause @@ -55,7 +64,7 @@ URL: https://numba.pydata.org/ Source: https://files.pythonhosted.org/packages/source/n/numba/numba-%{version}.tar.gz # PATCH-FIX-OPENSUSE skip tests failing due to OBS specifics Patch3: skip-failing-tests.patch -BuildRequires: %{python_module devel >= 3.8} +BuildRequires: %{python_module devel >= 3.9} BuildRequires: %{python_module numpy-devel >= %{min_numpy_ver} with %python-numpy-devel < %{max_numpy_ver}} BuildRequires: %{python_module pip} BuildRequires: %{python_module setuptools} @@ -64,10 +73,10 @@ BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: python-rpm-macros BuildRequires: (tbb-devel >= 2021) -Requires: (python-llvmlite >= 0.41 with python-llvmlite < 0.42) +Requires: (python-llvmlite >= 0.42 with python-llvmlite < 0.43) Requires: (python-numpy >= %{min_numpy_ver} with python-numpy < %{max_numpy_ver}) Requires(post): update-alternatives -Requires(postun):update-alternatives +Requires(postun): update-alternatives Recommends: python-Jinja2 Recommends: python-Pygments Recommends: python-cffi @@ -87,9 +96,6 @@ BuildRequires: %{python_module pytest} BuildRequires: %{python_module scipy >= 1.0} BuildRequires: %{python_module tbb} %endif -# Tests fail on ppc64 big endian, not resolvable on s390x -# Supported Platforms: https://numba.pydata.org/numba-doc/dev/user/installing.html#compatibility -ExclusiveArch: x86_64 %ix86 ppc64le %arm aarch64 %python_subpackages %description diff --git a/skip-failing-tests.patch b/skip-failing-tests.patch index 0732fbd..a8e5cac 100644 --- a/skip-failing-tests.patch +++ b/skip-failing-tests.patch @@ -3,11 +3,11 @@ numba/tests/test_parfors_passes.py | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) -Index: numba-0.57.0/numba/tests/test_parfors.py +Index: numba-0.59.1/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): +--- numba-0.59.1.orig/numba/tests/test_parfors.py ++++ numba-0.59.1/numba/tests/test_parfors.py +@@ -1199,6 +1199,7 @@ class TestParforNumPy(TestParforsBase): self.check_variants(test_impl2, data_gen) self.count_parfors_variants(test_impl2, data_gen) @@ -15,29 +15,29 @@ Index: numba-0.57.0/numba/tests/test_parfors.py def test_ndarray_fill(self): def test_impl(x): x.fill(7.0) -@@ -4479,7 +4480,7 @@ class TestParforsVectorizer(TestPrangeBa +@@ -4659,7 +4660,7 @@ class TestParforsVectorizer(TestPrangeBa return asm - @linux_only + @unittest.skip("Our x86_64 asm is most probably different from the upstream one.") + @TestCase.run_test_in_subprocess 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 -@@ -4519,7 +4520,7 @@ class TestParforsVectorizer(TestPrangeBa +@@ -4700,7 +4701,7 @@ class TestParforsVectorizer(TestPrangeBa # check no zmm addressing is present self.assertTrue('zmm' not in v) - @linux_only + @unittest.skip("Our x86_64 asm is most probably different from the upstream one.") + @TestCase.run_test_in_subprocess(envvars={'NUMBA_BOUNDSCHECK': '0'}) 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 -Index: numba-0.57.0/numba/tests/test_parfors_passes.py +Index: numba-0.59.1/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): +--- numba-0.59.1.orig/numba/tests/test_parfors_passes.py ++++ numba-0.59.1/numba/tests/test_parfors_passes.py +@@ -514,6 +514,7 @@ class TestConvertLoopPass(BaseTest): str(raises.exception), ) @@ -45,10 +45,10 @@ Index: numba-0.57.0/numba/tests/test_parfors_passes.py def test_init_prange(self): def test_impl(): n = 20 -Index: numba-0.57.0/numba/tests/test_cli.py +Index: numba-0.59.1/numba/tests/test_cli.py =================================================================== ---- numba-0.57.0.orig/numba/tests/test_cli.py -+++ numba-0.57.0/numba/tests/test_cli.py +--- numba-0.59.1.orig/numba/tests/test_cli.py ++++ numba-0.59.1/numba/tests/test_cli.py @@ -264,6 +264,7 @@ class TestGDBCLIInfoBrokenGdbs(TestCase) self.assertIn("No such file or directory", stdout) self.assertIn(path, stdout) @@ -57,3 +57,15 @@ Index: numba-0.57.0/numba/tests/test_cli.py def test_nonsense_gdb_binary(self): # Tests that a nonsense binary specified as gdb it picked up ok env = os.environ.copy() +Index: numba-0.59.1/numba/tests/test_mathlib.py +=================================================================== +--- numba-0.59.1.orig/numba/tests/test_mathlib.py ++++ numba-0.59.1/numba/tests/test_mathlib.py +@@ -508,6 +508,7 @@ class TestMathLib(TestCase): + float('-inf'), float('inf'), float('nan')] + self.run_unary(pyfunc, x_types, x_values, prec='exact') + ++ @unittest.skip("Fails on ppc64le https://github.com/numba/numba/issues/8489") + def test_ldexp(self): + pyfunc = ldexp + cfunc = njit(pyfunc)