diff options
author | Michał Górny <mgorny@gentoo.org> | 2021-10-17 10:55:24 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2021-10-17 10:58:00 +0200 |
commit | 928bad03a2036835b06485966330e71dff77ca54 (patch) | |
tree | 292f9f25beb49363aa9f45d36ca25084a3aac924 /dev-python/immutables | |
parent | dev-python/imageio: Remove old (diff) | |
download | gentoo-928bad03a2036835b06485966330e71dff77ca54.tar.gz gentoo-928bad03a2036835b06485966330e71dff77ca54.tar.bz2 gentoo-928bad03a2036835b06485966330e71dff77ca54.zip |
dev-python/immutables: Remove old
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/immutables')
-rw-r--r-- | dev-python/immutables/Manifest | 1 | ||||
-rw-r--r-- | dev-python/immutables/files/immutables-0.15-32bit-hash.patch | 76 | ||||
-rw-r--r-- | dev-python/immutables/immutables-0.15-r1.ebuild | 22 | ||||
-rw-r--r-- | dev-python/immutables/immutables-0.15.ebuild | 17 |
4 files changed, 0 insertions, 116 deletions
diff --git a/dev-python/immutables/Manifest b/dev-python/immutables/Manifest index 7f80750bbb7b..a6f990f5294b 100644 --- a/dev-python/immutables/Manifest +++ b/dev-python/immutables/Manifest @@ -1,2 +1 @@ -DIST immutables-0.15.tar.gz 81297 BLAKE2B cb58142c3b833d529046f09a468b3e3964e3d36e4eaf0825f88b920e6795cd042e2fc837ea6d72000bbc9cbc2fd1de911e08b4f6d189e692748b49e848dfb3fb SHA512 cd0ee20f6d6218eaf13499e40971b6750009ff01a1aefcb7dd45c77ae841296b9d9184013e6e7fe5bdef93587f85cdb8ff459af29424a0077538666260572b8e DIST immutables-0.16.tar.gz 84916 BLAKE2B e699aaa1135fa9f7db9589276dc0801a67c5f98bd3c5b247913d8263f9baf02a8772d7715cc3eb2c9392694d48d3808d50f45e9fe8e66c4d507586d0e3fdc319 SHA512 5b883cfe43f8a042b617e719dccd3cbdded3b1d1df160ba26b6bb2f0816a7171698bdd2ba3d450e76f135b236e777052a22c09b8bd1a9183227f1ccc90617cf8 diff --git a/dev-python/immutables/files/immutables-0.15-32bit-hash.patch b/dev-python/immutables/files/immutables-0.15-32bit-hash.patch deleted file mode 100644 index 234dfa028c08..000000000000 --- a/dev-python/immutables/files/immutables-0.15-32bit-hash.patch +++ /dev/null @@ -1,76 +0,0 @@ -From fa355239e70411179c70b16ed4ff7113d8008dad Mon Sep 17 00:00:00 2001 -From: Elvis Pranskevichus <elvis@edgedb.com> -Date: Wed, 4 Aug 2021 19:25:44 -0700 -Subject: [PATCH] Fix test_none_collisions on 32-bit systems (#69) - -There are two issues at play here: - -1. Python version of `map_hash` unnecessarily performs hash truncation - even if the hash is already 32-bit wide, which potentially converts - it from signed int to unsigned long. - -2. The `test_none_collisions` test generates a collision node with - hash greater than 2^32. - -Both of these are problematic on 32-bit systems, where `sizeof(Py_hash_t)` -is 4, and so anything that doesn't fit into `Py_hash_t` gets bit-mangled, -breaking the `hash(x) != x` invariance that the test relies upon. - -Fixes: #53 -Fixes: #50 ---- - .github/workflows/tests.yml | 10 +++++++++- - immutables/map.py | 5 ++++- - tests/test_none_keys.py | 14 +++++++++----- - 3 files changed, 22 insertions(+), 7 deletions(-) - -diff --git a/immutables/map.py b/immutables/map.py -index 2c1ffa91..0ad28588 100644 ---- a/immutables/map.py -+++ b/immutables/map.py -@@ -19,7 +19,10 @@ - - def map_hash(o): - x = hash(o) -- return (x & 0xffffffff) ^ ((x >> 32) & 0xffffffff) -+ if sys.hash_info.width > 32: -+ return (x & 0xffffffff) ^ ((x >> 32) & 0xffffffff) -+ else: -+ return x - - - def map_mask(hash, shift): -diff --git a/tests/test_none_keys.py b/tests/test_none_keys.py -index 8c0bb379..26d4220b 100644 ---- a/tests/test_none_keys.py -+++ b/tests/test_none_keys.py -@@ -1,3 +1,4 @@ -+import ctypes - import unittest - - from immutables.map import map_hash, map_mask, Map as PyMap -@@ -6,16 +7,19 @@ - - none_hash = map_hash(None) - assert(none_hash != 1) --assert((none_hash >> 32) == 0) -+assert(none_hash.bit_length() <= 32) - --not_collision = 0xffffffff & (~none_hash) -+none_hash_u = ctypes.c_size_t(none_hash).value -+not_collision = 0xffffffff & (~none_hash_u) - - mask = 0x7ffffffff --none_collisions = [none_hash & (mask >> shift) -+none_collisions = [none_hash_u & (mask >> shift) - for shift in reversed(range(0, 32, 5))] - assert(len(none_collisions) == 7) --none_collisions = [h | (not_collision & (mask << shift)) -- for shift, h in zip(range(5, 37, 5), none_collisions)] -+none_collisions = [ -+ ctypes.c_ssize_t(h | (not_collision & (mask << shift))).value -+ for shift, h in zip(range(5, 37, 5), none_collisions) -+] - - - class NoneCollision(HashKey): diff --git a/dev-python/immutables/immutables-0.15-r1.ebuild b/dev-python/immutables/immutables-0.15-r1.ebuild deleted file mode 100644 index 25e5896535f7..000000000000 --- a/dev-python/immutables/immutables-0.15-r1.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2019-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit distutils-r1 - -DESCRIPTION="A high-performance immutable mapping type for Python" -HOMEPAGE="https://github.com/MagicStack/immutables" -SRC_URI="https://github.com/MagicStack/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc x86" - -PATCHES=( - # https://github.com/MagicStack/immutables/commit/fa355239e70411179c70b16ed4ff7113d8008dad - "${FILESDIR}"/${P}-32bit-hash.patch -) - -distutils_enable_tests pytest diff --git a/dev-python/immutables/immutables-0.15.ebuild b/dev-python/immutables/immutables-0.15.ebuild deleted file mode 100644 index 2b0a05431a20..000000000000 --- a/dev-python/immutables/immutables-0.15.ebuild +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2019-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} ) -inherit distutils-r1 - -DESCRIPTION="A high-performance immutable mapping type for Python" -HOMEPAGE="https://github.com/MagicStack/immutables" -SRC_URI="https://github.com/MagicStack/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86" - -distutils_enable_tests pytest |