Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-numba for openSUSE:Factory checked in at 2022-07-13 13:45:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-numba (Old) and /work/SRC/openSUSE:Factory/.python-numba.new.1523 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-numba" Wed Jul 13 13:45:09 2022 rev:33 rq:988613 version:0.55.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-numba/python-numba.changes 2022-02-02 22:45:01.110065843 +0100 +++ /work/SRC/openSUSE:Factory/.python-numba.new.1523/python-numba.changes 2022-07-13 13:45:21.442029193 +0200 @@ -1,0 +2,14 @@ +Mon Jul 11 16:05:33 UTC 2022 - Ben Greiner <[email protected]> + +- Update to 0.55.2 + * This is a maintenance release to support NumPy 1.22 and Apple + M1. + * Backport #8027: Support for NumPy 1.22 + * update max NumPy for 0.55.2 + * Backport #8052 Ensure pthread is linked in when building for + ppc64le. + * Backport #8102 to fix numpy requirements + * Backport #8109 Pin TBB support with respect to incompatible + 2021.6 API. + +------------------------------------------------------------------- Old: ---- numba-0.55.1.tar.gz New: ---- numba-0.55.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-numba.spec ++++++ --- /var/tmp/diff_new_pack.Sw8E8l/_old 2022-07-13 13:45:22.034030032 +0200 +++ /var/tmp/diff_new_pack.Sw8E8l/_new 2022-07-13 13:45:22.034030032 +0200 @@ -19,6 +19,9 @@ %{?!python_module:%define python_module() python3-%{**}} %define skip_python2 1 %define plainpython python +# upper bound is exclusive: min-numpy_ver <= numpy < max_numpy_ver +%define min_numpy_ver 1.18 +%define max_numpy_ver 1.23 %global flavor @BUILD_FLAVOR@%{nil} %if "%{flavor}" == "test" %define psuffix -test @@ -28,7 +31,7 @@ %bcond_with test %endif Name: python-numba%{psuffix} -Version: 0.55.1 +Version: 0.55.2 Release: 0 Summary: NumPy-aware optimizing compiler for Python using LLVM License: BSD-2-Clause @@ -39,16 +42,16 @@ # PATCH-FIX-OPENSUSE skip tests failing due to OBS specifics Patch3: skip-failing-tests.patch BuildRequires: %{python_module devel >= 3.7} -BuildRequires: %{python_module numpy-devel >= 1.18 with %python-numpy-devel < 1.22} +BuildRequires: %{python_module numpy-devel >= %{min_numpy_ver} with %python-numpy-devel < %{max_numpy_ver}} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: python-rpm-macros -BuildRequires: tbb-devel >= 2021 +BuildRequires: (tbb-devel >= 2021 with tbb-devel < 2021.6) Requires: (python-llvmlite >= 0.38 with python-llvmlite < 0.39) -Requires: (python-numpy >= 1.18 with python-numpy < 1.22) +Requires: (python-numpy >= %{min_numpy_ver} with python-numpy < %{max_numpy_ver}) Requires(post): update-alternatives -Requires(preun):update-alternatives +Requires(postun):update-alternatives Recommends: python-Jinja2 Recommends: python-Pygments Recommends: python-cffi @@ -60,8 +63,8 @@ BuildRequires: %{python_module Pygments} BuildRequires: %{python_module cffi} BuildRequires: %{python_module ipython} -BuildRequires: %{python_module numba >= %{version}} -BuildRequires: %{python_module numba-devel >= %{version}} +BuildRequires: %{python_module numba = %{version}} +BuildRequires: %{python_module numba-devel = %{version}} BuildRequires: %{python_module pip} BuildRequires: %{python_module psutil} BuildRequires: %{python_module pytest} @@ -94,8 +97,8 @@ Summary: Development files for numba applications Requires: %{name} = %{version} Requires: python-devel -Requires: python-numpy-devel >= 1.11 Requires: %{plainpython}(abi) = %{python_version} +Requires: (python-numpy-devel >= %{min_numpy_ver} with python-numpy-devel < %{max_numpy_ver}) %description devel This package contains files for developing applications using numba. @@ -143,7 +146,7 @@ %if !%{with test} %post -%{python_install_alternative numba pycc} +%python_install_alternative numba pycc %postun %python_uninstall_alternative numba ++++++ numba-0.55.1.tar.gz -> numba-0.55.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/CHANGE_LOG new/numba-0.55.2/CHANGE_LOG --- old/numba-0.55.1/CHANGE_LOG 2022-01-27 16:38:45.397385000 +0100 +++ new/numba-0.55.2/CHANGE_LOG 2022-05-25 21:14:46.939496800 +0200 @@ -1,3 +1,33 @@ +Version 0.55.2 (25 May, 2022) +----------------------------- + +This is a maintenance release to support NumPy 1.22 and Apple M1. + +Pull-Requests: + +* PR `#8067 <https://github.com/numba/numba/pull/8067>`_: Backport #8027: Support for NumPy 1.22 (`stuartarchibald <https://github.com/stuartarchibald>`_) +* PR `#8069 <https://github.com/numba/numba/pull/8069>`_: Install llvmlite 0.38 for Numba 0.55.* (`esc <https://github.com/esc>`_) +* PR `#8075 <https://github.com/numba/numba/pull/8075>`_: update max NumPy for 0.55.2 (`esc <https://github.com/esc>`_) +* PR `#8078 <https://github.com/numba/numba/pull/8078>`_: Backport #7804: update local references from master -> main (`esc <https://github.com/esc>`_) +* PR `#8082 <https://github.com/numba/numba/pull/8082>`_: Backport #8080: fix windows failure due to timeout (`Siu Kwan Lam <https://github.com/sklam>`_) +* PR `#8084 <https://github.com/numba/numba/pull/8084>`_: Pin meta.yaml to llvmlite 0.38 series (`Siu Kwan Lam <https://github.com/sklam>`_) +* PR `#8093 <https://github.com/numba/numba/pull/8093>`_: Backport #7904: Support m1 (`esc <https://github.com/esc>`_) +* PR `#8094 <https://github.com/numba/numba/pull/8094>`_: Backport #8052 Ensure pthread is linked in when building for ppc64le. (`Siu Kwan Lam <https://github.com/sklam>`_) +* PR `#8098 <https://github.com/numba/numba/pull/8098>`_: Backport #8097: Exclude libopenblas 0.3.20 on osx-arm64 (`esc <https://github.com/esc>`_) +* PR `#8100 <https://github.com/numba/numba/pull/8100>`_: Backport #7786 for 0.55.2: Remove dependency on intel-openmp for OSX (`stuartarchibald <https://github.com/stuartarchibald>`_) +* PR `#8103 <https://github.com/numba/numba/pull/8103>`_: Backport #8102 to fix numpy requirements (`Siu Kwan Lam <https://github.com/sklam>`_) +* PR `#8114 <https://github.com/numba/numba/pull/8114>`_: Backport #8109 Pin TBB support with respect to incompatible 2021.6 API. (`stuartarchibald <https://github.com/stuartarchibald>`_) + +Total PRs: 12 + +Authors: + +* `esc <https://github.com/esc>`_ +* `Siu Kwan Lam <https://github.com/sklam>`_ +* `stuartarchibald <https://github.com/stuartarchibald>`_ + +Total authors: 3 + Version 0.55.1 (27 January, 2022) --------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/PKG-INFO new/numba-0.55.2/PKG-INFO --- old/numba-0.55.1/PKG-INFO 2022-01-27 23:04:11.793878800 +0100 +++ new/numba-0.55.2/PKG-INFO 2022-05-25 21:14:57.059358000 +0200 @@ -1,10 +1,9 @@ Metadata-Version: 2.1 Name: numba -Version: 0.55.1 +Version: 0.55.2 Summary: compiling Python code using LLVM Home-page: https://numba.pydata.org License: BSD -Platform: UNKNOWN Classifier: Development Status :: 4 - Beta Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License @@ -72,7 +71,7 @@ * Python versions: 3.7-3.10 * llvmlite 0.38.* -* NumPy >=1.18,<1.22 (can build with 1.11 for ABI compatibility). +* NumPy >=1.18,<1.23 (can build with 1.11 for ABI compatibility). Optionally: @@ -110,8 +109,6 @@ Continuous Integration ====================== -.. image:: https://dev.azure.com/numba/numba/_apis/build/status/numba.numba?branchName=master - :target: https://dev.azure.com/numba/numba/_build/latest?definitionId=1?branchName=master +.. image:: https://dev.azure.com/numba/numba/_apis/build/status/numba.numba?branchName=main + :target: https://dev.azure.com/numba/numba/_build/latest?definitionId=1?branchName=main :alt: Azure Pipelines - - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/README.rst new/numba-0.55.2/README.rst --- old/numba-0.55.1/README.rst 2022-01-27 16:29:53.090034500 +0100 +++ new/numba-0.55.2/README.rst 2022-05-25 21:14:46.939496800 +0200 @@ -50,7 +50,7 @@ * Python versions: 3.7-3.10 * llvmlite 0.38.* -* NumPy >=1.18,<1.22 (can build with 1.11 for ABI compatibility). +* NumPy >=1.18,<1.23 (can build with 1.11 for ABI compatibility). Optionally: @@ -88,6 +88,6 @@ Continuous Integration ====================== -.. image:: https://dev.azure.com/numba/numba/_apis/build/status/numba.numba?branchName=master - :target: https://dev.azure.com/numba/numba/_build/latest?definitionId=1?branchName=master +.. image:: https://dev.azure.com/numba/numba/_apis/build/status/numba.numba?branchName=main + :target: https://dev.azure.com/numba/numba/_build/latest?definitionId=1?branchName=main :alt: Azure Pipelines diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/docs/source/_ext/ghfiles.py new/numba-0.55.2/docs/source/_ext/ghfiles.py --- old/numba-0.55.1/docs/source/_ext/ghfiles.py 2021-03-26 14:28:28.960990400 +0100 +++ new/numba-0.55.2/docs/source/_ext/ghfiles.py 2022-05-25 21:14:46.787499000 +0200 @@ -16,9 +16,9 @@ """ Make hyperlink to Github """ full_path = path.join(top, text) if path.isfile(full_path): - ref = "https://www.github.com/numba/numba/blob/master/" + text + ref = "https://www.github.com/numba/numba/blob/main/" + text elif path.isdir(full_path): - ref = "https://www.github.com/numba/numba/tree/master/" + text + ref = "https://www.github.com/numba/numba/tree/main/" + text else: logger.warn("Failed to find file in repomap: " + text) ref = "https://www.github.com/numba/numba" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/docs/source/developer/contributing.rst new/numba-0.55.2/docs/source/developer/contributing.rst --- old/numba-0.55.1/docs/source/developer/contributing.rst 2021-12-13 14:48:56.747190700 +0100 +++ new/numba-0.55.2/docs/source/developer/contributing.rst 2022-05-25 21:14:46.939496800 +0200 @@ -99,8 +99,7 @@ .. note:: This installs an environment based on Python 3.8, but you can of course choose another version supported by Numba. To test additional features, - you may also need to install ``tbb`` and/or ``llvm-openmp`` and - ``intel-openmp``. + you may also need to install ``tbb`` and/or ``llvm-openmp``. To activate the environment for the current shell session:: @@ -277,7 +276,7 @@ Stability ''''''''' -The repository's ``master`` branch is expected to be stable at all times. +The repository's ``main`` branch is expected to be stable at all times. This translates into the fact that the test suite passes without errors on all supported platforms (see below). This also means that a pull request also needs to pass the test suite before it is merged in. @@ -287,7 +286,7 @@ Platform support '''''''''''''''' -Every commit to the master branch is automatically tested on all of the +Every commit to the main branch is automatically tested on all of the platforms Numba supports. This includes ARMv8, POWER8, and NVIDIA GPUs. The build system however is internal to Anaconda, so we also use `Azure <https://dev.azure.com/numba/numba/_build>`_ to provide public continuous @@ -465,4 +464,4 @@ .. _typeguard: https://typeguard.readthedocs.io/en/latest/ -.. _runtests.py: https://github.com/numba/numba/blob/master/runtests.py +.. _runtests.py: https://github.com/numba/numba/blob/main/runtests.py diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/docs/source/developer/live_variable_analysis.rst new/numba-0.55.2/docs/source/developer/live_variable_analysis.rst --- old/numba-0.55.1/docs/source/developer/live_variable_analysis.rst 2021-03-26 14:28:28.983677600 +0100 +++ new/numba-0.55.2/docs/source/developer/live_variable_analysis.rst 2022-05-25 21:14:46.795498800 +0200 @@ -10,7 +10,7 @@ requires cooperation by the compiler. The Numba IR encodes the location where a decref must be inserted. These locations are determined by live variable analysis. The corresponding source code is the ``_insert_var_dels()`` -method in https://github.com/numba/numba/blob/master/numba/interpreter.py. +method in https://github.com/numba/numba/blob/main/numba/interpreter.py. In Python semantic, once a variable is defined inside a function, it is alive diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/docs/source/developer/numba-runtime.rst new/numba-0.55.2/docs/source/developer/numba-runtime.rst --- old/numba-0.55.1/docs/source/developer/numba-runtime.rst 2021-12-13 14:48:56.748500300 +0100 +++ new/numba-0.55.2/docs/source/developer/numba-runtime.rst 2022-05-25 21:14:46.795498800 +0200 @@ -101,7 +101,7 @@ -------------------- The start of `numba/core/runtime/nrt.h -<https://github.com/numba/numba/blob/master/numba/core/runtime/nrt.h>`_ +<https://github.com/numba/numba/blob/main/numba/core/runtime/nrt.h>`_ has these lines: .. code-block:: C diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/docs/source/user/installing.rst new/numba-0.55.2/docs/source/user/installing.rst --- old/numba-0.55.1/docs/source/user/installing.rst 2022-01-27 16:38:45.403106200 +0100 +++ new/numba-0.55.2/docs/source/user/installing.rst 2022-05-25 21:14:46.943496700 +0200 @@ -5,8 +5,8 @@ Compatibility ------------- -Numba is compatible with Python 3.7--3.10, and Numpy versions 1.18 up -to 1.21. +Numba is compatible with Python 3.7--3.10, and Numpy versions 1.18 up +to 1.22. Our supported platforms are: @@ -143,6 +143,7 @@ * Linux ``ARM``: no conda packages, use the system compiler * Mac OSX: ``clang_osx-64`` and ``clangxx_osx-64`` or the system compiler at ``/usr/bin/clang`` (Mojave onwards) + * Mac OSX (M1): ``clang_osx-arm64`` and ``clangxx_osx-arm64`` * Windows: a version of Visual Studio appropriate for the Python version in use @@ -168,9 +169,9 @@ * For Linux and Windows it is necessary to provide OpenMP C headers and runtime libraries compatible with the compiler tool chain mentioned above, and for these to be accessible to the compiler via standard flags. - * For OSX the conda packages ``llvm-openmp`` and ``intel-openmp`` provide - suitable C headers and libraries. If the compilation requirements are not - met the OpenMP threading backend will not be compiled + * For OSX the conda package ``llvm-openmp`` provides suitable C headers and + libraries. If the compilation requirements are not met the OpenMP threading + backend will not be compiled. .. envvar:: NUMBA_DISABLE_TBB (default: not set) @@ -212,10 +213,9 @@ * ``llvm-openmp`` (OSX) - provides headers for compiling OpenMP support into Numba's threading backend - * ``intel-openmp`` (OSX) - provides OpenMP library support for Numba's - threading backend. * ``tbb-devel`` - provides TBB headers/libraries for compiling TBB support - into Numba's threading backend (version >= 2021 required). + into Numba's threading backend (2021 <= version < 2021.6 required). + * ``importlib_metadata`` (for Python versions < 3.9) * Optional runtime are: @@ -226,8 +226,10 @@ * ``jinja2`` - for "pretty" type annotation output (HTML) via the ``numba`` CLI * ``cffi`` - permits use of CFFI bindings in Numba compiled functions - * ``intel-openmp`` - (OSX) provides OpenMP library support for Numba's OpenMP - threading backend + * ``llvm-openmp`` - (OSX) provides OpenMP library support for Numba's OpenMP + threading backend. + * ``intel-openmp`` - (OSX) provides an alternative OpenMP library for use with + Numba's OpenMP threading backend. * ``ipython`` - if in use, caching will use IPython's cache directories/caching still works * ``pyyaml`` - permits the use of a ``.numba_config.yaml`` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/docs/source/user/threading-layer.rst new/numba-0.55.2/docs/source/user/threading-layer.rst --- old/numba-0.55.1/docs/source/user/threading-layer.rst 2021-12-13 14:48:56.760486600 +0100 +++ new/numba-0.55.2/docs/source/user/threading-layer.rst 2022-05-25 21:14:46.799498800 +0200 @@ -157,8 +157,9 @@ | | Windows | MS OpenMP libraries (very likely this will| | | | already exist) | | | | | -| | OSX | The ``intel-openmp`` package (``$ conda | -| | | install intel-openmp``) | +| | OSX | Either the ``intel-openmp`` package or the| +| | | ``llvm-openmp`` package | +| | | (``conda install`` the package as named). | +----------------------+-----------+-------------------------------------------+ | ``workqueue`` | All | None | +----------------------+-----------+-------------------------------------------+ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/__init__.py new/numba-0.55.2/numba/__init__.py --- old/numba-0.55.1/numba/__init__.py 2022-01-27 16:29:53.096627000 +0100 +++ new/numba-0.55.2/numba/__init__.py 2022-05-25 21:14:46.943496700 +0200 @@ -136,8 +136,8 @@ if numpy_version < (1, 18): raise ImportError("Numba needs NumPy 1.18 or greater") - elif numpy_version > (1, 21): - raise ImportError("Numba needs NumPy 1.21 or less") + elif numpy_version > (1, 22): + raise ImportError("Numba needs NumPy 1.22 or less") try: import scipy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/_version.py new/numba-0.55.2/numba/_version.py --- old/numba-0.55.1/numba/_version.py 2022-01-27 23:04:11.794193700 +0100 +++ new/numba-0.55.2/numba/_version.py 2022-05-25 21:14:57.059358000 +0200 @@ -4,8 +4,8 @@ # unpacked source archive. Distribution tarballs contain a pre-generated copy # of this file. -version_version = '0.55.1' -version_full = '76720bf88350c70b99ab3d4272d01bd9f14eeace' +version_version = '0.55.2' +version_full = '2298ad6186d177f39c564046890263b0f1c74ecc' def get_versions(default={}, verbose=False): return {'version': version_version, 'full': version_full} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/core/config.py new/numba-0.55.2/numba/core/config.py --- old/numba-0.55.1/numba/core/config.py 2022-01-27 16:38:45.405955300 +0100 +++ new/numba-0.55.2/numba/core/config.py 2022-05-25 21:14:46.947496700 +0200 @@ -14,6 +14,7 @@ import llvmlite.binding as ll + IS_WIN32 = sys.platform.startswith('win32') IS_OSX = sys.platform.startswith('darwin') MACHINE_BITS = tuple.__itemsize__ * 8 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/misc/help/inspector.py new/numba-0.55.2/numba/misc/help/inspector.py --- old/numba-0.55.1/numba/misc/help/inspector.py 2021-11-25 16:24:33.802848000 +0100 +++ new/numba-0.55.2/numba/misc/help/inspector.py 2022-05-25 21:14:46.847498200 +0200 @@ -23,7 +23,7 @@ "Cannot find git commit hash. Source links could be inaccurate.", category=errors.NumbaWarning, ) - return 'master' + return 'main' return full diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/misc/numba_sysinfo.py new/numba-0.55.2/numba/misc/numba_sysinfo.py --- old/numba-0.55.1/numba/misc/numba_sysinfo.py 2021-12-15 08:20:43.352752700 +0100 +++ new/numba-0.55.2/numba/misc/numba_sysinfo.py 2022-05-25 21:14:46.963496400 +0200 @@ -10,6 +10,7 @@ from datetime import datetime from io import StringIO from subprocess import check_output, PIPE, CalledProcessError +import numpy as np import llvmlite.binding as llvmbind from llvmlite import __version__ as llvmlite_version from numba import cuda as cu, __version__ as version_number @@ -61,6 +62,12 @@ _cu_nvidia_bindings = 'NVIDIA CUDA Bindings' _cu_nvidia_bindings_used = 'NVIDIA CUDA Bindings In Use' _cu_detect_out, _cu_lib_test = 'CUDA Detect Output', 'CUDA Lib Test' +# NumPy info +_numpy_version = 'NumPy Version' +_numpy_supported_simd_features = 'NumPy Supported SIMD features' +_numpy_supported_simd_dispatch = 'NumPy Supported SIMD dispatch' +_numpy_supported_simd_baseline = 'NumPy Supported SIMD baseline' +_numpy_AVX512_SKX_detected = 'NumPy AVX512_SKX detected' # SVML info _svml_state, _svml_loaded = 'SVML State', 'SVML Lib Loaded' _llvm_svml_patched = 'LLVM SVML Patched' @@ -381,6 +388,23 @@ "(device and driver present, runtime problem?)\n" f"(cuda) {type(e)}: {e}") + # NumPy information + sys_info[_numpy_version] = np.version.full_version + try: + # NOTE: These consts were added in NumPy 1.20 + from numpy.core._multiarray_umath import (__cpu_features__, + __cpu_dispatch__, + __cpu_baseline__,) + except ImportError: + sys_info[_numpy_AVX512_SKX_detected] = False + else: + feat_filtered = [k for k, v in __cpu_features__.items() if v] + sys_info[_numpy_supported_simd_features] = feat_filtered + sys_info[_numpy_supported_simd_dispatch] = __cpu_dispatch__ + sys_info[_numpy_supported_simd_baseline] = __cpu_baseline__ + sys_info[_numpy_AVX512_SKX_detected] = \ + __cpu_features__.get("AVX512_SKX", False) + # SVML information # Replicate some SVML detection logic from numba.__init__ here. # If SVML load fails in numba.__init__ the splitting of the logic @@ -569,6 +593,20 @@ ("CUDA Libraries Test Output:",), (info.get(_cu_lib_test, "None"),), ("",), + ("__NumPy Information__",), + ("NumPy Version", info.get(_numpy_version, '?')), + ("NumPy Supported SIMD features", + DisplaySeq(info.get(_numpy_supported_simd_features, []) + or ('None found.',))), + ("NumPy Supported SIMD dispatch", + DisplaySeq(info.get(_numpy_supported_simd_dispatch, []) + or ('None found.',))), + ("NumPy Supported SIMD baseline", + DisplaySeq(info.get(_numpy_supported_simd_baseline, []) + or ('None found.',))), + ("NumPy AVX512_SKX support detected", + info.get(_numpy_AVX512_SKX_detected, '?')), + ("",), ("__SVML Information__",), ("SVML State, config.USING_SVML", info.get(_svml_state, '?')), ("SVML Library Loaded", info.get(_svml_loaded, '?')), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/np/arraymath.py new/numba-0.55.2/numba/np/arraymath.py --- old/numba-0.55.1/numba/np/arraymath.py 2021-12-13 14:48:56.859820800 +0100 +++ new/numba-0.55.2/numba/np/arraymath.py 2022-05-25 21:14:46.967496400 +0200 @@ -8,6 +8,7 @@ from enum import IntEnum from functools import partial import operator +import warnings import numpy as np @@ -28,7 +29,7 @@ from numba.core.extending import intrinsic from numba.core.errors import (RequireLiteralValue, TypingError, NumbaValueError, NumbaNotImplementedError, - NumbaTypeError) + NumbaTypeError, NumbaDeprecationWarning) from numba.core.overload_glue import glue_lowering from numba.cpython.unsafe.tuple import tuple_setitem @@ -4042,14 +4043,36 @@ iinfo = namedtuple('iinfo', _iinfo_supported) -@overload(np.MachAr) -def MachAr_impl(): - f = np.MachAr() - _mach_ar_data = tuple([getattr(f, x) for x in _mach_ar_supported]) +# 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(): + np122plus = numpy_version >= (1, 22) + w = None + with warnings.catch_warnings(record=True) as w: + msg = r'`np.MachAr` is deprecated \(NumPy 1.22\)' + warnings.filterwarnings("always", message=msg, + category=DeprecationWarning, + module=r'.*numba.*arraymath') + np_MachAr = np.MachAr + + @overload(np_MachAr) + def MachAr_impl(): + f = np_MachAr() + _mach_ar_data = tuple([getattr(f, x) for x in _mach_ar_supported]) + + if np122plus and w: + wmsg = w[0] + warnings.warn_explicit(wmsg.message.args[0], + NumbaDeprecationWarning, + wmsg.filename, + wmsg.lineno) - def impl(): - return MachAr(*_mach_ar_data) - return impl + def impl(): + return MachAr(*_mach_ar_data) + return impl + + +_gen_np_machar() def generate_xinfo(np_func, container, attr): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/np/ufunc/tbbpool.cpp new/numba-0.55.2/numba/np/ufunc/tbbpool.cpp --- old/numba-0.55.1/numba/np/ufunc/tbbpool.cpp 2021-12-15 08:20:43.356799100 +0100 +++ new/numba-0.55.2/numba/np/ufunc/tbbpool.cpp 2022-05-25 21:14:46.967496400 +0200 @@ -27,8 +27,8 @@ * from here: * https://github.com/intel/tbb/blob/2019_U5/include/tbb/tbb_stddef.h#L29 */ -#if TBB_INTERFACE_VERSION < 12010 -#error "TBB version is too old, 2021 update 1, i.e. TBB_INTERFACE_VERSION >= 12010 required" +#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" #endif #define _DEBUG 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/np/ufunc_db.py new/numba-0.55.2/numba/np/ufunc_db.py --- old/numba-0.55.1/numba/np/ufunc_db.py 2021-12-13 14:48:56.873009700 +0100 +++ new/numba-0.55.2/numba/np/ufunc_db.py 2022-05-25 21:14:46.855498000 +0200 @@ -230,9 +230,12 @@ 'QQ->Q': npyfuncs.np_int_udiv_impl, 'ff->f': npyfuncs.np_real_floor_div_impl, 'dd->d': npyfuncs.np_real_floor_div_impl, - 'FF->F': npyfuncs.np_complex_floor_div_impl, - 'DD->D': npyfuncs.np_complex_floor_div_impl, } + if numpy_version < (1, 22): # removed in 1.22+ + ufunc_db[np.floor_divide].update({ + 'FF->F': npyfuncs.np_complex_floor_div_impl, + 'DD->D': npyfuncs.np_complex_floor_div_impl, + }) ufunc_db[np.remainder] = { 'bb->b': npyfuncs.np_int_srem_impl, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/pycc/cc.py new/numba-0.55.2/numba/pycc/cc.py --- old/numba-0.55.1/numba/pycc/cc.py 2021-03-26 14:28:29.235933500 +0100 +++ new/numba-0.55.2/numba/pycc/cc.py 2022-05-25 21:14:46.859498000 +0200 @@ -174,6 +174,10 @@ extra_ldflags = self._extra_ldflags.get(sys.platform, []) if not extra_ldflags: extra_ldflags = self._extra_ldflags.get(os.name, []) + # helperlib uses pthread on linux. make sure we are linking to it. + if sys.platform.startswith("linux"): + if "-pthread" not in extra_ldflags: + extra_ldflags.append('-pthread') return extra_ldflags def _compile_mixins(self, build_dir): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/testing/main.py new/numba-0.55.2/numba/testing/main.py --- old/numba-0.55.1/numba/testing/main.py 2021-11-25 16:24:33.825022200 +0100 +++ new/numba-0.55.2/numba/testing/main.py 2022-05-25 21:14:46.971496300 +0200 @@ -207,7 +207,7 @@ parser.add_argument('-g', '--gitdiff', dest='gitdiff', type=git_diff_str, default=False, nargs='?', help=('Run tests from changes made against ' - 'origin/master as identified by `git diff`. ' + 'origin/release0.55 as identified by `git diff`. ' 'If set to "ancestor", the diff compares ' 'against the common ancestor.')) return parser @@ -399,9 +399,9 @@ path = os.path.join('numba', 'tests') if use_common_ancestor: print(f"Git diff by common ancestor") - target = 'origin/master...HEAD' + target = 'origin/release0.55...HEAD' else: - target = 'origin/master..HEAD' + target = 'origin/release0.55..HEAD' gdiff_paths = repo.git.diff(target, path, name_only=True).split() # normalise the paths as they are unix style from repo.git.diff gdiff_paths = [os.path.normpath(x) for x in gdiff_paths] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/tests/npyufunc/test_errors.py new/numba-0.55.2/numba/tests/npyufunc/test_errors.py --- old/numba-0.55.1/numba/tests/npyufunc/test_errors.py 2021-03-26 14:28:29.273475600 +0100 +++ new/numba-0.55.2/numba/tests/npyufunc/test_errors.py 2022-05-25 21:14:46.863498000 +0200 @@ -5,7 +5,8 @@ from numba import vectorize, guvectorize -from numba.tests.support import TestCase, CheckWarningsMixin +from numba.tests.support import (TestCase, CheckWarningsMixin, + skip_m1_fenv_errors) import unittest @@ -115,6 +116,7 @@ ["divide by zero encountered", "invalid value encountered"]) + @skip_m1_fenv_errors def test_remainder_float(self): self.check_divmod_float(remainder, [0.0, float('nan'), float('nan'), 1.0], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/tests/support.py new/numba-0.55.2/numba/tests/support.py --- old/numba-0.55.1/numba/tests/support.py 2021-12-15 08:20:43.359256300 +0100 +++ new/numba-0.55.2/numba/tests/support.py 2022-05-25 21:14:46.971496300 +0200 @@ -4,6 +4,7 @@ import cmath import contextlib +from collections import defaultdict import enum import gc import math @@ -107,6 +108,13 @@ "parameter area' in " "LowerCall_64SVR4")) +# fenv.h on M1 may have various issues: +# https://github.com/numba/numba/issues/7822#issuecomment-1065356758 +_uname = platform.uname() +IS_OSX_ARM64 = _uname.system == 'Darwin' and _uname.machine == 'arm64' +skip_m1_fenv_errors = unittest.skipIf(IS_OSX_ARM64, + "fenv.h-like functionality unreliable on OSX arm64") + try: import scipy.linalg.cython_lapack has_lapack = True @@ -1023,3 +1031,48 @@ pipeline.finalize() return [pipeline] + + +def print_azure_matrix(): + """This is a utility function that prints out the map of NumPy to Python + versions and how many of that combination are being tested across all the + declared config for azure-pipelines. It is useful to run when updating the + azure-pipelines config to be able to quickly see what the coverage is.""" + import yaml + from yaml import Loader + base_path = os.path.dirname(os.path.abspath(__file__)) + azure_pipe = os.path.join(base_path, '..', '..', 'azure-pipelines.yml') + if not os.path.isfile(azure_pipe): + self.skipTest("'azure-pipelines.yml' is not available") + with open(os.path.abspath(azure_pipe), 'rt') as f: + data = f.read() + pipe_yml = yaml.load(data, Loader=Loader) + + templates = pipe_yml['jobs'] + # first look at the items in the first two templates, this is osx/linux + py2np_map = defaultdict(lambda: defaultdict(int)) + for tmplt in templates[:2]: + matrix = tmplt['parameters']['matrix'] + for setup in matrix.values(): + py2np_map[setup['NUMPY']][setup['PYTHON']]+=1 + + # next look at the items in the windows only template + winpath = ['..', '..', 'buildscripts', 'azure', 'azure-windows.yml'] + azure_windows = os.path.join(base_path, *winpath) + if not os.path.isfile(azure_windows): + self.skipTest("'azure-windows.yml' is not available") + with open(os.path.abspath(azure_windows), 'rt') as f: + data = f.read() + windows_yml = yaml.load(data, Loader=Loader) + + # There's only one template in windows and its keyed differently to the + # above, get its matrix. + matrix = windows_yml['jobs'][0]['strategy']['matrix'] + for setup in matrix.values(): + py2np_map[setup['NUMPY']][setup['PYTHON']]+=1 + + print("NumPy | Python | Count") + print("-----------------------") + for npver, pys in sorted(py2np_map.items()): + for pyver, count in pys.items(): + print(f" {npver} | {pyver:<4} | {count}") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/tests/test_dataflow.py new/numba-0.55.2/numba/tests/test_dataflow.py --- old/numba-0.55.1/numba/tests/test_dataflow.py 2021-11-25 16:24:33.842269200 +0100 +++ new/numba-0.55.2/numba/tests/test_dataflow.py 2022-05-25 21:14:46.871497900 +0200 @@ -89,17 +89,6 @@ def setUp(self): self.cache = CompilationCache() - # All tests here should run without warnings - self.w_cm = warnings.catch_warnings() - self.w_cm.__enter__() - warnings.simplefilter("error") - # some builds of NumPy use a Cython that reports spurious - # ufunc object size mismatch warnings. These are safe to - # ignore and not generated by later Cython versions. - warnings.filterwarnings("ignore", message="numpy.ufunc size changed") - - def tearDown(self): - self.w_cm.__exit__(None, None, None) def test_assignments(self, flags=force_pyobj_flags): pyfunc = assignments diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/tests/test_np_functions.py new/numba-0.55.2/numba/tests/test_np_functions.py --- old/numba-0.55.1/numba/tests/test_np_functions.py 2021-12-13 14:48:56.911090900 +0100 +++ new/numba-0.55.2/numba/tests/test_np_functions.py 2022-05-25 21:14:46.979496200 +0200 @@ -4,6 +4,7 @@ import math import platform from functools import partial +import warnings import numpy as np @@ -12,12 +13,12 @@ from numba.core import types from numba.typed import List, Dict from numba.np.numpy_support import numpy_version -from numba.core.errors import TypingError +from numba.core.errors import TypingError, NumbaDeprecationWarning from numba.core.config import IS_WIN32, IS_32BITS from numba.core.utils import pysignature from numba.np.extensions import cross2d from numba.tests.support import (TestCase, CompilationCache, MemoryLeakMixin, - needs_blas) + needs_blas, needs_subprocess) import unittest @@ -4612,6 +4613,32 @@ cfunc = jit(nopython=True)(iinfo) cfunc(np.float64(7)) + @unittest.skipUnless(numpy_version >= (1, 22), "Needs NumPy >= 1.22") + @needs_subprocess + def test_np_MachAr_deprecation_np122_impl(self): + # Tests that Numba is replaying the NumPy 1.22 deprecation warning + # raised on the getattr of 'MachAr' on the NumPy module. + # Needs to be run in a subprocess as the warning is generated from the + # typing part of the `np.MachAr` overload, which may already have been + # executed for the given types and so an empty in memory cache is + # needed. + msg = r'`np.MachAr` is deprecated \(NumPy 1.22\)' + with warnings.catch_warnings(record=True) as w: + warnings.filterwarnings("always", message=msg, + category=NumbaDeprecationWarning,) + f = njit(lambda : np.MachAr().eps) + f() + + self.assertEqual(len(w), 1) + self.assertIn('`np.MachAr` is deprecated', str(w[0])) + + @unittest.skipUnless(numpy_version >= (1, 22), "Needs NumPy >= 1.22") + def test_np_MachAr_deprecation_np122(self): + test_name = 'test_np_MachAr_deprecation_np122_impl' + self.subprocess_test_runner(test_module=self.__module__, + test_class=type(self).__name__, + test_name=test_name,) + if __name__ == '__main__': unittest.main() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/tests/test_serialize.py new/numba-0.55.2/numba/tests/test_serialize.py --- old/numba-0.55.1/numba/tests/test_serialize.py 2021-11-25 16:24:33.874896300 +0100 +++ new/numba-0.55.2/numba/tests/test_serialize.py 2022-05-25 21:14:46.883497700 +0200 @@ -241,7 +241,7 @@ mp = get_context('spawn') proc = mp.Process(target=check_main_class_reset_on_unpickle) proc.start() - proc.join(timeout=10) + proc.join(timeout=60) self.assertEqual(proc.exitcode, 0) def test_dynamic_class_reset_on_unpickle_new_proc(self): @@ -256,7 +256,7 @@ mp = get_context('spawn') proc = mp.Process(target=check_unpickle_dyn_class_new_proc, args=(saved,)) proc.start() - proc.join(timeout=10) + proc.join(timeout=60) self.assertEqual(proc.exitcode, 0) def test_dynamic_class_issue_7356(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/tests/test_sysinfo.py new/numba-0.55.2/numba/tests/test_sysinfo.py --- old/numba-0.55.1/numba/tests/test_sysinfo.py 2021-11-25 16:24:33.879285300 +0100 +++ new/numba-0.55.2/numba/tests/test_sysinfo.py 2022-05-25 21:14:46.887497700 +0200 @@ -33,6 +33,7 @@ nsi._python_impl, nsi._python_version, nsi._llvm_version, + nsi._numpy_version, ), bool: ( nsi._cu_dev_init, @@ -43,6 +44,7 @@ nsi._tbb_thread, nsi._openmp_thread, nsi._wkq_thread, + nsi._numpy_AVX512_SKX_detected, ), list: ( nsi._errors, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/numba/tests/test_ufuncs.py new/numba-0.55.2/numba/tests/test_ufuncs.py --- old/numba-0.55.1/numba/tests/test_ufuncs.py 2021-12-13 14:48:56.930454000 +0100 +++ new/numba-0.55.2/numba/tests/test_ufuncs.py 2022-05-25 21:14:46.887497700 +0200 @@ -1277,6 +1277,8 @@ b = np.arange(10, dtype='f8') self.assertPreciseEqual(foo(a, b), (a + b) + (a + b)) + @unittest.skipIf(numpy_support.numpy_version >= (1, 22), + "Complex floor division support removed in NumPy 1.22") def test_issue_713(self): def foo(x,y): return np.floor_divide(x,y) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/setup.py new/numba-0.55.2/setup.py --- old/numba-0.55.1/setup.py 2022-01-27 16:29:53.106441500 +0100 +++ new/numba-0.55.2/setup.py 2022-05-25 21:14:46.983496200 +0200 @@ -23,7 +23,7 @@ max_python_version = "3.11" # exclusive min_numpy_build_version = "1.11" min_numpy_run_version = "1.18" -max_numpy_run_version = "1.22" +max_numpy_run_version = "1.23" min_llvmlite_version = "0.38.0rc1" max_llvmlite_version = "0.39" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/numba-0.55.1/test/test.py new/numba-0.55.2/test/test.py --- old/numba-0.55.1/test/test.py 2020-06-23 15:17:50.977127000 +0200 +++ new/numba-0.55.2/test/test.py 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -from numba import jit -import foo - -@jit(nopython=True) -def baz(x): - y = 0 - for i in range(x): - y += foo.bar(i) - return y - -if __name__ == "__main__": - print (baz(10))
