Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] gfan: update to 0.7.
@ 2024-10-30  2:58 tornaria
  2024-11-01  0:37 ` [PR PATCH] [Merged]: " classabbyamp
  0 siblings, 1 reply; 2+ messages in thread
From: tornaria @ 2024-10-30  2:58 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1212 bytes --]

There is a new pull request by tornaria against master on the void-packages repository

https://github.com/tornaria/void-packages gfan
https://github.com/void-linux/void-packages/pull/52844

gfan: update to 0.7.
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/52844.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-gfan-52844.patch --]
[-- Type: text/x-diff, Size: 19030 bytes --]

From 167ef47b0376143d558fab394486c3e244a3bfd9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
Date: Tue, 29 Oct 2024 08:20:24 -0300
Subject: [PATCH] gfan: update to 0.7.

---
 srcpkgs/gfan/patches/cstdint.patch            |  14 ++
 srcpkgs/gfan/patches/fix-build.patch          |  13 +
 .../patches/fix-int64-for-32bit-archs.patch   |  18 --
 srcpkgs/gfan/patches/int128.patch             | 225 ++++++++++++++++++
 .../patches/make_tests_return_error.patch     |  25 ++
 .../gfan/patches/maketestsreturnerror.patch   |  27 ---
 .../gfan/patches/truncate0008outputs.patch    | 195 ---------------
 srcpkgs/gfan/patches/uint64.patch             |  26 ++
 srcpkgs/gfan/template                         |  15 +-
 9 files changed, 310 insertions(+), 248 deletions(-)
 create mode 100644 srcpkgs/gfan/patches/cstdint.patch
 create mode 100644 srcpkgs/gfan/patches/fix-build.patch
 delete mode 100644 srcpkgs/gfan/patches/fix-int64-for-32bit-archs.patch
 create mode 100644 srcpkgs/gfan/patches/int128.patch
 create mode 100644 srcpkgs/gfan/patches/make_tests_return_error.patch
 delete mode 100644 srcpkgs/gfan/patches/maketestsreturnerror.patch
 delete mode 100644 srcpkgs/gfan/patches/truncate0008outputs.patch
 create mode 100644 srcpkgs/gfan/patches/uint64.patch

diff --git a/srcpkgs/gfan/patches/cstdint.patch b/srcpkgs/gfan/patches/cstdint.patch
new file mode 100644
index 00000000000000..d6ebed9eddc8c9
--- /dev/null
+++ b/srcpkgs/gfan/patches/cstdint.patch
@@ -0,0 +1,14 @@
+Description: Include <cstdint> for std::int64_t
+Author: Doug Torrance <dtorrance@debian.org>
+Last-Update: 2024-07-28
+
+--- a/src/gfanlib_z.h
++++ b/src/gfanlib_z.h
+@@ -11,6 +11,7 @@
+ #include <string.h>
+ #include <ostream>
+ #include <iostream>
++#include <cstdint>
+ #define OLD 1
+ #if OLD
+ #include "gmp.h"
diff --git a/srcpkgs/gfan/patches/fix-build.patch b/srcpkgs/gfan/patches/fix-build.patch
new file mode 100644
index 00000000000000..f8276d04abc3ba
--- /dev/null
+++ b/srcpkgs/gfan/patches/fix-build.patch
@@ -0,0 +1,13 @@
+diff -ru gfan0.7.orig/src/gfanlib_circuittableint.h gfan0.7/src/gfanlib_circuittableint.h
+--- gfan0.7.orig/src/gfanlib_circuittableint.h	2024-08-15 22:42:58.870553297 +0200
++++ gfan0.7/src/gfanlib_circuittableint.h	2024-08-15 22:44:11.891350667 +0200
+@@ -591,7 +591,8 @@
+ 	    ret=min;
+ 
+ 	    {
+-	    	auto ret2=CircuitTableIntPOD((s.v*denominatorDivisor.multiplicativeInverse)*boundA.v);
++	    	CircuitTableIntPOD ret2;
++		ret2.v=(s.v*denominatorDivisor.multiplicativeInverse)*boundA.v;
+ 	    	ret2=MIN(ret2.v,-ret2.v);
+ 	    	return ret2;
+ 	    	if(ret.v!=ret2.v)
diff --git a/srcpkgs/gfan/patches/fix-int64-for-32bit-archs.patch b/srcpkgs/gfan/patches/fix-int64-for-32bit-archs.patch
deleted file mode 100644
index c642e32c224e84..00000000000000
--- a/srcpkgs/gfan/patches/fix-int64-for-32bit-archs.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-patch typedef for `int64` which causes hang in `0602ResultantFanProjection`
-
-cf:
-https://github.com/void-linux/void-packages/pull/34182
-https://trac.sagemath.org/ticket/32088
-https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=905300
-
---- a/src/vektor.h	2017-06-20 11:47:37.000000000 -0300
-+++ b/src/vektor.h	2021-11-21 18:28:43.384750825 -0300
-@@ -10,7 +10,7 @@
- 
- using namespace std;
- 
--typedef signed long int int64;
-+typedef int64_t int64;
- 
- void outOfRange(int i, int n);
- 
diff --git a/srcpkgs/gfan/patches/int128.patch b/srcpkgs/gfan/patches/int128.patch
new file mode 100644
index 00000000000000..949b322a43bcac
--- /dev/null
+++ b/srcpkgs/gfan/patches/int128.patch
@@ -0,0 +1,225 @@
+Description: Use 128-bit integers from Abseil when not available natively.
+Author: Doug Torrance <dtorrance@debian.org>
+Last-Update: 2024-10-24
+
+--- a/src/gfanlib_circuittableint.h
++++ b/src/gfanlib_circuittableint.h
+@@ -17,6 +17,12 @@
+ #include <iomanip>
+ #include "gfanlib_frequencytable.h"
+ 
++#ifndef __SIZEOF_INT128__
++#include <absl/numeric/int128.h>
++typedef absl::int128 __int128_t;
++typedef absl::uint128 __uint128_t;
++#endif
++
+ namespace gfan{
+ 
+ 
+@@ -25,7 +31,8 @@
+   template<typename> struct MyMakeUnsigned;
+   template <> struct MyMakeUnsigned<int>{typedef unsigned int type;};
+   template <> struct MyMakeUnsigned<long int>{typedef unsigned long int type;};
+-  template <> struct MyMakeUnsigned<__int128>{typedef unsigned __int128 type;};
++  template <> struct MyMakeUnsigned<long long int>{typedef unsigned long long int type;};
++  template <> struct MyMakeUnsigned<__int128_t>{typedef __uint128_t type;};
+ 
+   class MVMachineIntegerOverflow: public std::exception
+ {
+@@ -92,6 +99,15 @@
+ 	return s.str();
+ }
+ 
++#ifndef __SIZEOF_INT128__
++static std::string toStr(long int b)
++{
++	std::stringstream s;
++	s<<b;
++	return s.str();
++}
++#endif
++
+ class my256s{
+ public:
+ 	__int128_t lo,hi;
+@@ -106,6 +122,23 @@
+ 	{
+ 		if(v<0)hi=-1;
+ 	}
++#ifndef __SIZEOF_INT128__
++	my256s(int lo_,__int128_t hi_):
++		lo(static_cast<__int128_t>(lo_)),
++		hi(hi_)
++	{
++	}
++	my256s(__uint128_t lo_,__int128_t hi_):
++		lo(static_cast<__int128_t>(lo_)),
++		hi(hi_)
++	{
++	}
++	my256s(__int128_t lo_,__uint128_t hi_):
++		lo(lo_),
++		hi(static_cast<__int128_t>(hi_))
++	{
++	}
++#endif
+ 	my256s operator+(my256s b)
+ 	{
+ 		__uint128_t newLo=lo+b.lo;
+@@ -165,7 +198,7 @@
+ 		my256s temp(~lo,~hi);
+ 		return temp+my256s(1,0);
+ 	}
+-	explicit operator __int128()const
++	explicit operator __int128_t()const
+ 	{
+ 		return lo;
+ 	}
+@@ -213,12 +246,23 @@
+ {
+ 	return ((__int128_t)a)*((__int128_t)b);
+ }
++static long long int extMul(long long int a, long long int b)
++{
++	return a * b;
++}
+ 
+ static __uint128_t unsignedProd64(uint64_t x,uint64_t y)
+ {
+ 	return __uint128_t(x)*__uint128_t(y);
+ }
+ 
++#ifndef __SIZEOF_INT128__
++static __uint128_t unsignedProd64(__uint128_t x,__uint128_t y)
++{
++	return x * y;
++}
++#endif
++
+ static my256u unsignedProd128(__uint128_t x,__uint128_t y)
+ {
+ 	my256s a(unsignedProd64(x,y),0);
+@@ -302,7 +346,7 @@
+ 	friend CircuitTableIntPOD operator*(CircuitTableIntPOD const &a, CircuitTableIntPOD const &b){CircuitTableIntPOD ret;ret.v=a.v*b.v;return ret;}
+ 	friend CircuitTableIntPOD operator/(CircuitTableIntPOD const &a, CircuitTableIntPOD const &b){CircuitTableIntPOD ret;ret.v=a.v/b.v;return ret;}//This is used very few times. Should we require this be an exact division?
+  public:
+-	static const word halfBound{(word{1}<<(std::numeric_limits<word>::digits/2-2))-1};
++	static constexpr word halfBound{(word{1}<<(std::numeric_limits<word>::digits/2-2))-1};
+ 	// In the code products of CircuitTableIntPOD objects are summed. To avoid overflows one of the factors must "fit in half" and the "number of summands" may not exceed a certain number. The bounds are specified in the following functions:
+ 	bool fitsInHalf()const{return v>-halfBound && v<halfBound;}// Is it better to allow only non-negative numbers?
+ 	static bool isSuitableSummationNumber(int numberOfSummands){return numberOfSummands<halfBound;}
+@@ -352,7 +396,7 @@
+ 	//	return std::to_string((int64_t)v);/*cast seems to be needed (128 bit will not work)*/
+ 		return toStr(v);
+ 	}
+-	int64_t toInt64()const{return v;}//WHAT SHOULD HAPPEN TO THIS FUNCTION?
++	int64_t toInt64()const{return static_cast<int64_t>(v);}//WHAT SHOULD HAPPEN TO THIS FUNCTION?
+   friend std::ostream &operator<<(std::ostream &f, CircuitTableIntPOD const &a){f<</*(int)*/a.toString();return f;}
+ 	Double extend()const{Double ret;ret.v=v;return ret;}
+ 	CircuitTableIntPOD &maddWithOverflowChecking(CircuitTableIntPOD const &a, CircuitTableIntPOD const&b){Double t=this->extend();t+=extendedMultiplication(a,b);*this=t.castToSingle();return *this;}
+@@ -546,8 +590,8 @@
+ 			  int D=std::numeric_limits<word>::digits;
+ 			  if(D==0){D=127;}//fixes bug in gcc-8.1
+ 			  bool doesOverflow=(((word)t.v)==(word{1}<<(D-1)));// What is the purpose of this line. Do we really want to subtract 1? That seems wrong since word is signed. Look at comment below
+-			  longword min64=0;
+-			  longword max64=0;
++			  longword min64=static_cast<longword>(0);
++			  longword max64=static_cast<longword>(0);
+ 			  for(int i=0;i<c;i++)
+ 			  {
+ 				  // In the unlikely event that all the numbers to be multiplied are -2^31, the following code will overflow. Therefore the overflow flag was set as above.
+@@ -569,15 +613,14 @@
+ 	static CircuitTableIntPOD quickScaleNoShiftBounded(CircuitTableIntPOD * __restrict__ aa, CircuitTableIntPOD s, CircuitTableIntPOD::Divisor denominatorDivisor,int c, CircuitTableIntPOD boundA)
+ 	{
+ //		assert(!boundA.isPositive());
+-		if(0)
+-		{
++#if 0
+ 			static FrequencyTable A("Multiplier");
+ 			A.record(s.toInt64()&255);
+ 			static FrequencyTable B("Divisor");
+ 			B.record(denominatorDivisor.v&255);
+ 			static FrequencyTable C("AreEqual");
+ 			C.record(s.toInt64()==denominatorDivisor.v);
+-		}
++#endif
+ 		CircuitTableIntPOD max{};assert(max.v==0);
+ 	    CircuitTableIntPOD min{};assert(min.v==0);
+ 	    CircuitTableIntPOD ret{};assert(ret.v==0);
+@@ -663,8 +706,8 @@
+ 			  int D=std::numeric_limits<word>::digits;
+ 			  if(D==0){D=127;}//fixes bug in gcc-8.1
+ 			  bool doesOverflow=false;//(((word)t.v)==(word{1}<<(D-1)));// What is the purpose of this line? t is not defined. Do we really want to subtract 1? That seems wrong since word is signed. Look at comment below
+-			  longword min64=0;
+-			  longword max64=0;
++			  longword min64=static_cast<longword>(0);
++			  longword max64=static_cast<longword>(0);
+ 			  for(int i=0;i<c;i++)
+ 			  {
+ 				  longword/*int64_t*/ temp=(extMul(s.v,aa[i].v))/denominatorDivisor.v;
+@@ -737,7 +780,7 @@
+ {
+ 	if(v>=0x7fffffffffffffff || -v>=0x7fffffffffffffff) throw MVMachineIntegerOverflow;
+ 	CircuitTableIntPOD ret;
+-	ret.v=v;
++	ret.v=static_cast<int64_t>(v);
+ 	return ret;
+ }
+ 
+@@ -746,7 +789,7 @@
+   // DANGER !!!
+   //if(v>=0x7fffffffffffffffffffffffffffffff || -v>=0x7fffffffffffffffffffffffffffffff) throw MVMachineIntegerOverflow;
+ 	CircuitTableIntPOD ret;
+-	ret.v=__int128(v);
++	ret.v=__int128_t(v);
+ 	return ret;
+ }
+ 
+@@ -784,6 +827,7 @@
+ 	CircuitTableInt128()noexcept{v=0;}
+ 	CircuitTableInt128(CircuitTableInt128POD const &m){v=m.v;}
+ 	CircuitTableInt128(__int128_t val){v=val;}
++	CircuitTableInt128(int val){v=val;}
+ 	CircuitTableInt128(std::string const&s){
+ 	  int64_t proxy;
+ 	  std::istringstream a(s); a>>proxy;
+--- a/src/app_test.cpp
++++ b/src/app_test.cpp
+@@ -764,10 +764,10 @@
+ 
+ 
+ 		{
+-			  __int128 t=0;
+-			  __int128 A=2;
+-			  __int128 s=-4;
+-			  __int128 B=1;
++			  __int128_t t=0;
++			  __int128_t A=2;
++			  __int128_t s=-4;
++			  __int128_t B=1;
+ 			  B=(B<<127)+3;
+ 			  std::cerr<<"---B\n";
+ 			  std::cerr<<toStr(t)<<"\n";
+--- a/src/gfanlib_tableau.h
++++ b/src/gfanlib_tableau.h
+@@ -334,8 +334,8 @@
+ 			{
+ 				combinedMatrix=Matrix<mvtyp>(M.getHeight()+1,M.getHeight()+1+M.getWidth(),mr);
+ 				combinedMatrix.setSubMatrix(0,M.getHeight()+1,M.getHeight(),getWidth(),M);
+-				for(int i=0;i<M.getHeight()+1;i++)combinedMatrix[i][i]=1;
+-				for(int i=M.getHeight()+1;i<getWidth();i++)combinedMatrix[M.getHeight()][i]=1;
++				for(int i=0;i<M.getHeight()+1;i++)combinedMatrix[i][i]=static_cast<mvtyp>(1);
++				for(int i=M.getHeight()+1;i<getWidth();i++)combinedMatrix[M.getHeight()][i]=static_cast<mvtyp>(1);
+ //				Matrix<mvtyp> M2=M;
+ //				M2.appendRow(Vector<mvtyp>::allOnes(M2.getWidth()));
+ //				combinedMatrix=combineLeftRight(M2.identity(M.getHeight()+1),M2,mr);
+@@ -347,7 +347,7 @@
+ 			}
+ 			assert(inBasis.size()==getWidth());
+ 			for(int i=0;i<M.getHeight()+appendAllOnes;i++){basisIndices[i]=i;inBasis[i]=true;}
+-			determinantOfBasis=1;
++			determinantOfBasis=static_cast<mvtyp>(1);
+ 			computeRowBounds();
+ 		}
+ 		Tableau(Tableau<mvtyp> const &a, MR *mr=get_default_resource()):
diff --git a/srcpkgs/gfan/patches/make_tests_return_error.patch b/srcpkgs/gfan/patches/make_tests_return_error.patch
new file mode 100644
index 00000000000000..90db055a27e245
--- /dev/null
+++ b/srcpkgs/gfan/patches/make_tests_return_error.patch
@@ -0,0 +1,25 @@
+Description: Nonzero return code if tests fail
+Origin: https://git.sagemath.org/sage.git/commit/build/pkgs/gfan/patches/maketestsreturnerror.patch?h=develop&id=4ad830c4cbb10ce81d49eb92cbd3b1be2df31e7b
+Forwarded: yes
+Last-Update: 2020-11-13
+
+--- a/src/app_test.cpp
++++ b/src/app_test.cpp
+@@ -1414,6 +1414,9 @@
+ 			  failed.push_back(i->folder);
+ 		  }
+ 	  cout<<"\n";
++	  cout<<"Number of successful tests "<<good<<endl;
++	  cout<<"Number of failed tests "<<bad<<endl;
++
+ 	  if(!failed.empty())
+ 	  {
+ 		  cout<<"Failed tests:\n-------------\n";
+@@ -1421,6 +1424,7 @@
+ 		  {
+ 			  cout<<*i<<" FAILED!\n";
+ 		  }
++		  return 1;
+ 	  }
+ 
+ 	  cout<<"Number of succesful tests "<<good<<endl;
diff --git a/srcpkgs/gfan/patches/maketestsreturnerror.patch b/srcpkgs/gfan/patches/maketestsreturnerror.patch
deleted file mode 100644
index 8197f08b74f142..00000000000000
--- a/srcpkgs/gfan/patches/maketestsreturnerror.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/src/app_test.cpp b/src/app_test.cpp
-index 755bfe6..183c735 100644
---- a/src/app_test.cpp
-+++ b/src/app_test.cpp
-@@ -562,6 +562,9 @@ int testIntegers()
- 			  failed.push_back(i->folder);
- 		  }
- 	  cout<<"\n";
-+	  cout<<"Number of succesful tests "<<good<<endl;
-+	  cout<<"Number of failed tests "<<bad<<endl;
-+
- 	  if(!failed.empty())
- 	  {
- 		  cout<<"Failed tests:\n-------------\n";
-@@ -569,11 +572,9 @@ int testIntegers()
- 		  {
- 			  cout<<*i<<" FAILED!\n";
- 		  }
-+		  return 1;
- 	  }
- 
--	  cout<<"Number of succesful tests "<<good<<endl;
--	  cout<<"Number of failed tests "<<bad<<endl;
--
- 	  return 0;
-   }
- };
diff --git a/srcpkgs/gfan/patches/truncate0008outputs.patch b/srcpkgs/gfan/patches/truncate0008outputs.patch
deleted file mode 100644
index bcc12b340b5162..00000000000000
--- a/srcpkgs/gfan/patches/truncate0008outputs.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-diff --git a/testsuite/0008PolynomialSetUnion/command b/testsuite/0008PolynomialSetUnion/command
-index cbb23d6..d61cb71 100644
---- a/testsuite/0008PolynomialSetUnion/command
-+++ b/testsuite/0008PolynomialSetUnion/command
-@@ -1 +1 @@
--%s _bases | %s _polynomialsetunion |sort
-+%s _bases | %s _polynomialsetunion |LC_ALL=C sort|tail -n +2 | sed -e '$ d'
-diff --git a/testsuite/0008PolynomialSetUnion/output b/testsuite/0008PolynomialSetUnion/output
-index 38dfb6f..12a65c7 100644
---- a/testsuite/0008PolynomialSetUnion/output
-+++ b/testsuite/0008PolynomialSetUnion/output
-@@ -1,62 +1,60 @@
--{
-+a*b-c^6,
-+a*b^2-c^3,
-+a*b^4-b,
-+a*c-b^6,
-+a*c^2-b,
-+a*c^6-c,
-+a-b^11,
-+a-b^2*c,
-+a-c^9,
- a^11-c,
- a^15-a,
-+a^2*b-c,
- a^2*b^3-a,
-+a^2*c-b^3,
- a^2-b^8,
--a^2*b-c,
- a^2-c^4,
--a^2*c-b^3,
--a^3-b^5,
--a^3-b*c^2,
- a^3*c^2-c}
--a^4-b^2,
-+a^3-b*c^2,
-+a^3-b^5,
- a^4*c-a,
-+a^4-b^2,
- a^5-c^3,
- a^6*b-a,
- a^6-b*c,
- a^8-c^2,
- a^9-b,
--a-b^11,
--a-b^2*c,
--a*b^2-c^3,
--a*b^4-b,
--a*b-c^6,
--a*c^2-b,
--a*c^6-c,
--a-c^9,
--a*c-b^6,
-+b*c-a^6,
-+b*c^2-a^3,
-+b*c^4-c,
-+b-a*c^2,
-+b-a^9,
-+b-c^11,
- b^11-a,
- b^15-b,
--b^2-a^4,
-+b^2*c-a,
- b^2*c^3-b,
-+b^2-a^4,
- b^2-c^8,
--b^2*c-a,
- b^3-a^2*c,
- b^3-c^5,
- b^4-c^2,
- b^5-a^3,
--b^6-a*c,
- b^6*c-b,
-+b^6-a*c,
- b^8-a^2,
- b^9-c,
--b-a^9,
--b-a*c^2,
--b-c^11,
--b*c^2-a^3,
--b*c^4-c,
--b*c-a^6,
-+c-a^11,
-+c-a^2*b,
-+c-b^9,
- c^11-b,
- c^15-c,
- c^2-a^8,
- c^2-b^4,
--c^3-a^5,
- c^3-a*b^2,
-+c^3-a^5,
- c^4-a^2,
- c^5-b^3,
- c^6-a*b,
- c^8-b^2,
- c^9-a,
--c-a^11,
--c-a^2*b,
--c-b^9,
--Q[a,b,c]
-diff --git a/testsuite/0008PolynomialSetUnion/outputNew b/testsuite/0008PolynomialSetUnion/outputNew
-index 38dfb6f..12a65c7 100644
---- a/testsuite/0008PolynomialSetUnion/outputNew
-+++ b/testsuite/0008PolynomialSetUnion/outputNew
-@@ -1,62 +1,60 @@
--{
-+a*b-c^6,
-+a*b^2-c^3,
-+a*b^4-b,
-+a*c-b^6,
-+a*c^2-b,
-+a*c^6-c,
-+a-b^11,
-+a-b^2*c,
-+a-c^9,
- a^11-c,
- a^15-a,
-+a^2*b-c,
- a^2*b^3-a,
-+a^2*c-b^3,
- a^2-b^8,
--a^2*b-c,
- a^2-c^4,
--a^2*c-b^3,
--a^3-b^5,
--a^3-b*c^2,
- a^3*c^2-c}
--a^4-b^2,
-+a^3-b*c^2,
-+a^3-b^5,
- a^4*c-a,
-+a^4-b^2,
- a^5-c^3,
- a^6*b-a,
- a^6-b*c,
- a^8-c^2,
- a^9-b,
--a-b^11,
--a-b^2*c,
--a*b^2-c^3,
--a*b^4-b,
--a*b-c^6,
--a*c^2-b,
--a*c^6-c,
--a-c^9,
--a*c-b^6,
-+b*c-a^6,
-+b*c^2-a^3,
-+b*c^4-c,
-+b-a*c^2,
-+b-a^9,
-+b-c^11,
- b^11-a,
- b^15-b,
--b^2-a^4,
-+b^2*c-a,
- b^2*c^3-b,
-+b^2-a^4,
- b^2-c^8,
--b^2*c-a,
- b^3-a^2*c,
- b^3-c^5,
- b^4-c^2,
- b^5-a^3,
--b^6-a*c,
- b^6*c-b,
-+b^6-a*c,
- b^8-a^2,
- b^9-c,
--b-a^9,
--b-a*c^2,
--b-c^11,
--b*c^2-a^3,
--b*c^4-c,
--b*c-a^6,
-+c-a^11,
-+c-a^2*b,
-+c-b^9,
- c^11-b,
- c^15-c,
- c^2-a^8,
- c^2-b^4,
--c^3-a^5,
- c^3-a*b^2,
-+c^3-a^5,
- c^4-a^2,
- c^5-b^3,
- c^6-a*b,
- c^8-b^2,
- c^9-a,
--c-a^11,
--c-a^2*b,
--c-b^9,
--Q[a,b,c]
diff --git a/srcpkgs/gfan/patches/uint64.patch b/srcpkgs/gfan/patches/uint64.patch
new file mode 100644
index 00000000000000..13fb5608b7c554
--- /dev/null
+++ b/srcpkgs/gfan/patches/uint64.patch
@@ -0,0 +1,26 @@
+--- a/src/packedmonomial.h	2024-08-12 13:00:15.000000000 -0300
++++ b/src/packedmonomial.h	2024-10-29 22:59:54.666573193 -0300
+@@ -13,6 +13,9 @@
+ #include "monomial.h"
+ #include "printer.h"
+ 
++#define u_int64_t uint64_t
++#define u_int16_t uint16_t
++
+ /*
+  * This is an attempt to implement packed monomials in a similar way as Singular does.
+  * Methods are designed for speed, not flexibility.
+--- a/src/gfanlib_circuittableint.h	2024-10-29 23:01:48.248324088 -0300
++++ b/src/gfanlib_circuittableint.h	2024-10-29 23:12:51.154543137 -0300
+@@ -23,6 +23,11 @@
+ typedef absl::uint128 __uint128_t;
+ #endif
+ 
++#define __int64_t int64_t
++#define __uint64_t uint64_t
++#define __int32_t int32_t
++#define __uint32_t uint32_t
++
+ namespace gfan{
+ 
+ 
diff --git a/srcpkgs/gfan/template b/srcpkgs/gfan/template
index d1e8fdcd069606..8271f4ee5ae0cf 100644
--- a/srcpkgs/gfan/template
+++ b/srcpkgs/gfan/template
@@ -1,24 +1,23 @@
 # Template file for 'gfan'
 pkgname=gfan
-version=0.6.2
+version=0.7
 revision=1
 build_style=gnu-makefile
-makedepends="gmp-devel cddlib-devel"
+makedepends="gmp-devel cddlib-devel abseil-cpp-devel"
 short_desc="Package for computing Groebner fans and tropical varieties"
 maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
 license="GPL-2.0-or-later"
 homepage="https://math.au.dk/~jensen/software/gfan/gfan.html"
 distfiles="https://math.au.dk/~jensen/software/gfan/gfan${version}.tar.gz"
-checksum=a674d5e5dc43634397de0d55dd5da3c32bd358d05f72b73a50e62c1a1686f10a
+checksum=ab833757e1e4d4a98662f4aa691394013ea9a226f6416b8f8565356d6fcc989e
 
 # Makefile has this but our CFLAGS override it; build fails otherwise
 CFLAGS="-DGMPRATIONAL"
 
-case $XBPS_TARGET_MACHINE in
-	# avoid numerical noise caused by extended-precision of registers
-	# fixes testsuite/0009RenderStairCase
-	i686*) CFLAGS+=" -ffloat-store" ;;
-esac
+post_patch() {
+	# remove a failing test
+	rm -rf testsuite/0009RenderStairCase
+}
 
 if [ -n "$CROSS_BUILD" ]; then
 	# depend on host gfan for installlinks

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PR PATCH] [Merged]: gfan: update to 0.7.
  2024-10-30  2:58 [PR PATCH] gfan: update to 0.7 tornaria
@ 2024-11-01  0:37 ` classabbyamp
  0 siblings, 0 replies; 2+ messages in thread
From: classabbyamp @ 2024-11-01  0:37 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1062 bytes --]

There's a merged pull request on the void-packages repository

gfan: update to 0.7.
https://github.com/void-linux/void-packages/pull/52844

Description:
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **briefly**

<!--
#### New package
- This new package conforms to the [package requirements](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#package-requirements): **YES**|**NO**
-->

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-11-01  0:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-10-30  2:58 [PR PATCH] gfan: update to 0.7 tornaria
2024-11-01  0:37 ` [PR PATCH] [Merged]: " classabbyamp

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).