Accepting request 950311 from devel:languages:python:numeric

OBS-URL: https://build.opensuse.org/request/show/950311
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-numba?expand=0&rev=32
This commit is contained in:
Dominique Leuenberger 2022-02-02 21:40:07 +00:00 committed by Git OBS Bridge
commit 596e418106
5 changed files with 23 additions and 64 deletions

View File

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

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

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

View File

@ -1,58 +0,0 @@
From e6df66d52152156ba8bcda64b37f4995bda72d2f Mon Sep 17 00:00:00 2001
From: Graham Markall <gmarkall@nvidia.com>
Date: Fri, 14 Jan 2022 21:24:40 +0000
Subject: [PATCH] Fix #7713: Ensure _prng_random_hash return has correct
bitwidth
When the hash width is 32 bits, get_next_int32 needs to be used because
that returns a 32-bit integer, as opposed to get_next_int, which returns
a 64-bit integer regardless of the supplied bitwidth.
This commit also alters the signature of _prng_random_hash to use
_Py_hash_t as the return type - it will be equal to types.intp, but the
intent should be clearer.
---
numba/cpython/hashing.py | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/numba/cpython/hashing.py b/numba/cpython/hashing.py
index 5a8673b04b..227fc4e1c5 100644
--- a/numba/cpython/hashing.py
+++ b/numba/cpython/hashing.py
@@ -18,7 +18,8 @@
from numba.core import errors
from numba.core import types, utils
from numba.core.unsafe.bytes import grab_byte, grab_uint64_t
-from numba.cpython.randomimpl import get_state_ptr, get_next_int, const_int
+from numba.cpython.randomimpl import (const_int, get_next_int, get_next_int32,
+ get_state_ptr)
_py38_or_later = utils.PYVERSION >= (3, 8)
_py310_or_later = utils.PYVERSION >= (3, 10)
@@ -137,11 +138,23 @@ def _prng_random_hash(tyctx):
def impl(cgctx, builder, signature, args):
state_ptr = get_state_ptr(cgctx, builder, "internal")
- bits = const_int(types.intp.bitwidth)
- value = get_next_int(cgctx, builder, state_ptr, bits, False)
+ bits = const_int(_hash_width)
+
+ # Why not just use get_next_int() with the correct bitwidth?
+ # get_next_int() always returns an i64, because the bitwidth it is
+ # passed may not be a compile-time constant, so it needs to allocate
+ # the largest unit of storage that may be required. Therefore, if the
+ # hash width is 32, then we need to use get_next_int32() to ensure we
+ # don't return a wider-than-expected hash, even if everything above
+ # the low 32 bits would have been zero.
+ if _hash_width == 32:
+ value = get_next_int32(cgctx, builder, state_ptr)
+ else:
+ value = get_next_int(cgctx, builder, state_ptr, bits, False)
+
return value
- sig = types.intp()
+ sig = _Py_hash_t()
return sig, impl

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Sat Jan 29 13:23:43 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 0.55.1
* This is a bugfix release that closes all the remaining issues
from the accelerated release of 0.55.0 and also any release
critical regressions discovered since then.
* CUDA target deprecation notices:
- Support for CUDA toolkits < 10.2 is deprecated and will be
removed in Numba 0.56.
- Support for devices with Compute Capability < 5.3 is
deprecated and will be removed in Numba 0.56.
- Drop numba-pr7748-random32bitwidth.patch
- Explicitly declare supported platforms (avoid failing tests on
ppc64)
-------------------------------------------------------------------
Fri Jan 14 16:55:37 UTC 2022 - Ben Greiner <code@bnavigator.de>

View File

@ -28,7 +28,7 @@
%bcond_with test
%endif
Name: python-numba%{psuffix}
Version: 0.55.0
Version: 0.55.1
Release: 0
Summary: NumPy-aware optimizing compiler for Python using LLVM
License: BSD-2-Clause
@ -36,8 +36,6 @@ URL: https://numba.pydata.org/
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
Patch0: fix-max-name-size.patch
# PATCH-FIX-UPSTREAM numba-pr7748-random32bitwidth.patch -- gh#numba/numba#7748
Patch1: numba-pr7748-random32bitwidth.patch
# PATCH-FIX-OPENSUSE skip tests failing due to OBS specifics
Patch3: skip-failing-tests.patch
BuildRequires: %{python_module devel >= 3.7}
@ -70,6 +68,9 @@ 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