summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Orlitzky <mjo@gentoo.org>2024-11-24 09:23:12 -0500
committerMichael Orlitzky <mjo@gentoo.org>2024-11-24 09:33:56 -0500
commitaa676b404b96cc55e5596728261f37794591dc72 (patch)
treef815f59b44fea701f3d3cfc51405237526adf773 /sci-mathematics
parentapp-i18n/fcitx-chinese-addons: Stabilize 5.1.7 amd64, #944495 (diff)
downloadgentoo-aa676b404b96cc55e5596728261f37794591dc72.tar.gz
gentoo-aa676b404b96cc55e5596728261f37794591dc72.tar.bz2
gentoo-aa676b404b96cc55e5596728261f37794591dc72.zip
sci-mathematics/gap: backport another upstream patch
In particular, this fixes bug 944744, a test failure with the new dev-gap/grape. Closes: https://bugs.gentoo.org/944744 Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
Diffstat (limited to 'sci-mathematics')
-rw-r--r--sci-mathematics/gap/files/gap-4.13.1-more-hash-fixes.patch50
-rw-r--r--sci-mathematics/gap/gap-4.13.1-r2.ebuild (renamed from sci-mathematics/gap/gap-4.13.1-r1.ebuild)5
2 files changed, 54 insertions, 1 deletions
diff --git a/sci-mathematics/gap/files/gap-4.13.1-more-hash-fixes.patch b/sci-mathematics/gap/files/gap-4.13.1-more-hash-fixes.patch
new file mode 100644
index 000000000000..5a464a0fda49
--- /dev/null
+++ b/sci-mathematics/gap/files/gap-4.13.1-more-hash-fixes.patch
@@ -0,0 +1,50 @@
+From 19484a75098d43e75e3facfdd05dccefc358e43f Mon Sep 17 00:00:00 2001
+From: Max Horn <max@quendi.de>
+Date: Fri, 11 Oct 2024 14:54:29 +0200
+Subject: [PATCH] Fix hashing for integer plists (#5807)
+
+---
+ lib/dicthf.gi | 2 +-
+ tst/testbugfix/2024-10-11-orbit-hash.tst | 20 ++++++++++++++++++++
+ 2 files changed, 21 insertions(+), 1 deletion(-)
+ create mode 100644 tst/testbugfix/2024-10-11-orbit-hash.tst
+
+diff --git a/lib/dicthf.gi b/lib/dicthf.gi
+index e4349ac940..119d5329f6 100644
+--- a/lib/dicthf.gi
++++ b/lib/dicthf.gi
+@@ -164,7 +164,7 @@ function(m, v)
+ if not IsPlistRep(x) then
+ x := AsPlist(x);
+ fi;
+- return HashKeyWholeBag(x, 1);
++ return HashKeyBag(x, 1, 0, Length(x) * GAPInfo.BytesPerVariable);
+ end;
+
+ # alternative code w/o HashKeyBag
+diff --git a/tst/testbugfix/2024-10-11-orbit-hash.tst b/tst/testbugfix/2024-10-11-orbit-hash.tst
+new file mode 100644
+index 0000000000..3735537e6f
+--- /dev/null
++++ b/tst/testbugfix/2024-10-11-orbit-hash.tst
+@@ -0,0 +1,20 @@
++# Fix a bug reported by Leonard Soicher caused by a bug in
++# the hash function for lists of small positive integers.
++gap> n:=280;;
++gap> G:=OnePrimitiveGroup(NrMovedPoints,n,Size,604800*2);
++J_2.2
++gap> blocks := [ [ 1, 2, 3, 28, 108, 119, 155, 198, 216, 226 ],
++> [ 1, 2, 3, 118, 119, 140, 193, 213, 218, 226 ] ];;
++gap> Append(blocks[2],[1..1000]); for i in [1..1000] do Remove(blocks[2]); od;
++gap> Append(blocks[2],[1..1000]); for i in [1..1000] do Remove(blocks[2]); od;
++gap> ForAll(blocks,IsSet);
++true
++gap> orb1:=Orbit(G,blocks[1],OnSets);;
++gap> Length(orb1);
++12096
++gap> orb2:=Orbit(G,blocks[2],OnSets);;
++gap> Length(orb2);
++1008
++gap> orbs:=Orbits(G,blocks,OnSets);;
++gap> List(orbs,Length); # this code gave wrong results
++[ 12096, 1008 ]
diff --git a/sci-mathematics/gap/gap-4.13.1-r1.ebuild b/sci-mathematics/gap/gap-4.13.1-r2.ebuild
index 45cb0c98749e..49b0fd13f52a 100644
--- a/sci-mathematics/gap/gap-4.13.1-r1.ebuild
+++ b/sci-mathematics/gap/gap-4.13.1-r2.ebuild
@@ -65,7 +65,10 @@ RDEPEND="${DEPEND}"
# packages, use package.provided.
PDEPEND="${REQUIRED_PKGS} !minimal? ( ${AUTOLOADED_PKGS} )"
-PATCHES=( "${FILESDIR}/gap-4.13.1-hash-fixes.patch" )
+PATCHES=(
+ "${FILESDIR}/gap-4.13.1-hash-fixes.patch"
+ "${FILESDIR}/gap-4.13.1-more-hash-fixes.patch"
+)
pkg_setup() {
if use valgrind; then