From 0d9dfc143d287f3229b305a8c87ccb9316db81b5510696a7d4e109e7cc6f6004 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sat, 3 Feb 2024 07:06:15 +0000 Subject: [PATCH] - 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 * fix regressions with 0.57.0 + Support is added for the dict(iterable) constructor. - Clean up leftover Python 3.8 gubbins, look forward to Python 3.11 support. This release focuses on performance improvements, but also adds some new features and contains numerous bug fixes and stability * 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 - There will be less pressure on the atomic locks used to do - Removal of reference counting operations permits more inlining and the optimisation passes can in general do more * Intel also sponsored work to improve the performance of the numba.typed.List container, particularly in the case of * 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 * The inspect_cfg method on the JIT dispatcher object has been significantly enhanced and now includes highlighted output and * The BSD operating system is now unofficially supported (Stuart * Numerous features/functionality improvements to NumPy support, - the ndarray allocators, empty, ones and zeros, accepting a * Cudasim support for mapped array, memcopies and memset has OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-numba?expand=0&rev=77 --- _multibuild | 1 + numba-0.58.1.tar.gz | 3 -- numba-0.59.0.tar.gz | 3 ++ python-numba.changes | 81 +++++++++++++++++++++++----------------- python-numba.spec | 20 +++++++--- skip-failing-tests.patch | 30 +++++++-------- 6 files changed, 80 insertions(+), 58 deletions(-) delete mode 100644 numba-0.58.1.tar.gz create mode 100644 numba-0.59.0.tar.gz diff --git a/_multibuild b/_multibuild index 8cf2769..98d9f20 100644 --- a/_multibuild +++ b/_multibuild @@ -2,4 +2,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.0.tar.gz b/numba-0.59.0.tar.gz new file mode 100644 index 0000000..b4e3305 --- /dev/null +++ b/numba-0.59.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12b9b064a3e4ad00e2371fc5212ef0396c80f41caec9b5ec391c8b04b6eaf2a8 +size 2656773 diff --git a/python-numba.changes b/python-numba.changes index 6a7c554..78594e5 100644 --- a/python-numba.changes +++ b/python-numba.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +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 +40,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 +60,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 +69,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 +308,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 +322,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 +367,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 +403,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 +505,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 +776,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..fdf2cdd 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 @@ -30,23 +30,33 @@ %define psuffix -test-py39 %define skip_python310 1 %define skip_python311 1 +%define skip_python312 1 %bcond_without test %endif %if "%{flavor}" == "test-py310" %define psuffix -test-py310 %define skip_python39 1 %define skip_python311 1 +%define skip_python312 1 %bcond_without test %endif %if "%{flavor}" == "test-py311" %define psuffix -test-py311 %define skip_python39 1 %define skip_python310 1 +%define skip_python312 1 +%bcond_without test +%endif +%if "%{flavor}" == "test-py312" +%define psuffix -test-py312 +%define skip_python39 1 +%define skip_python310 1 +%define skip_python311 1 %bcond_without test %endif Name: python-numba%{?psuffix} -Version: 0.58.1 +Version: 0.59.0 Release: 0 Summary: NumPy-aware optimizing compiler for Python using LLVM License: BSD-2-Clause @@ -55,7 +65,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} @@ -67,7 +77,7 @@ BuildRequires: (tbb-devel >= 2021) Requires: (python-llvmlite >= 0.41 with python-llvmlite < 0.42) 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 diff --git a/skip-failing-tests.patch b/skip-failing-tests.patch index 0732fbd..624a4e1 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.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): +--- numba-0.59.0.orig/numba/tests/test_parfors.py ++++ numba-0.59.0/numba/tests/test_parfors.py +@@ -1198,6 +1198,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 +@@ -4639,7 +4640,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 +@@ -4680,7 +4681,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.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): +--- numba-0.59.0.orig/numba/tests/test_parfors_passes.py ++++ numba-0.59.0/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.0/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.0.orig/numba/tests/test_cli.py ++++ numba-0.59.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)