diff options
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | PKGBUILD | 10 | ||||
-rw-r--r-- | sagemath-cypari-2.1.2.patch | 155 | ||||
-rw-r--r-- | sagemath-flint-2.6.patch | 110 |
4 files changed, 2 insertions, 279 deletions
@@ -1,6 +1,6 @@ pkgbase = sagemath-git pkgdesc = Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab - pkgver = 9.3.beta1.r0.g222059565b + pkgver = 9.3.beta2.r0.g020bd59ec2 pkgrel = 1 url = http://www.sagemath.org arch = x86_64 @@ -98,8 +98,6 @@ pkgbase = sagemath-git source = test-optional.patch source = sagemath-singular-4.1.2.patch source = sagemath-gap-4.11.patch - source = sagemath-flint-2.6.patch - source = sagemath-cypari-2.1.2.patch source = sagemath-pari-2.13.patch sha256sums = SKIP sha256sums = 4fb46b12b5ee5e5bde87f646dc69a7b8929886be247e2d9a9ae1f12efbe5b580 @@ -107,8 +105,6 @@ pkgbase = sagemath-git sha256sums = 7da0dbcda15a327c21dc33853cb8f98cb86a283139f8735e3b20a71d49458a88 sha256sums = 881186d016a6eb47b919765b9d4e6abc4560fce54e08cf42bd948ba77e16aa85 sha256sums = 34f06f9776f84f6998b1350555316e0ffea76ed16e149916970f19ef750a467f - sha256sums = 5d00b24c1d36b41b8ea3f07b93fc0e00b42dd84d9bc4e9b3d26e5f2cfeba6405 - sha256sums = dc507eeb75eae1109273879771b4eb56172b7417e87a0693381106afd7554e04 sha256sums = 84875c90268436cb6a740a4e1bffd70b4895458ef9e1ee268a3c4aa0564e893f pkgname = sagemath-git @@ -7,7 +7,7 @@ pkgbase=sagemath-git pkgname=(sagemath-git sagemath-jupyter-git) -pkgver=9.3.beta1.r0.g222059565b +pkgver=9.3.beta2.r0.g020bd59ec2 pkgrel=1 pkgdesc="Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab" arch=(x86_64) @@ -41,8 +41,6 @@ source=(git://git.sagemath.org/sage.git#branch=develop test-optional.patch sagemath-singular-4.1.2.patch sagemath-gap-4.11.patch - sagemath-flint-2.6.patch - sagemath-cypari-2.1.2.patch sagemath-pari-2.13.patch) sha256sums=('SKIP' '4fb46b12b5ee5e5bde87f646dc69a7b8929886be247e2d9a9ae1f12efbe5b580' @@ -50,8 +48,6 @@ sha256sums=('SKIP' '7da0dbcda15a327c21dc33853cb8f98cb86a283139f8735e3b20a71d49458a88' '881186d016a6eb47b919765b9d4e6abc4560fce54e08cf42bd948ba77e16aa85' '34f06f9776f84f6998b1350555316e0ffea76ed16e149916970f19ef750a467f' - '5d00b24c1d36b41b8ea3f07b93fc0e00b42dd84d9bc4e9b3d26e5f2cfeba6405' - 'dc507eeb75eae1109273879771b4eb56172b7417e87a0693381106afd7554e04' '84875c90268436cb6a740a4e1bffd70b4895458ef9e1ee268a3c4aa0564e893f') pkgver() { @@ -67,12 +63,8 @@ prepare(){ # Upstream patches # Fixes for singular 4.1.2 https://trac.sagemath.org/ticket/25993 patch -p1 -i ../sagemath-singular-4.1.2.patch -# Fix segfault and tests with flint 2.6 https://trac.sagemath.org/ticket/29719 - patch -p1 -i ../sagemath-flint-2.6.patch # Fix gap.version() and doctests with GAP 4.11 https://trac.sagemath.org/ticket/29314 patch -p1 -i ../sagemath-gap-4.11.patch -# Fix gcd/lcm between pari and sage objects https://trac.sagemath.org/ticket/30849 - patch -p1 -i ../sagemath-cypari-2.1.2.patch # Port to PARI 2.13 https://trac.sagemath.org/ticket/30801 patch -p1 -i ../sagemath-pari-2.13.patch diff --git a/sagemath-cypari-2.1.2.patch b/sagemath-cypari-2.1.2.patch deleted file mode 100644 index bfbb02185dbd..000000000000 --- a/sagemath-cypari-2.1.2.patch +++ /dev/null @@ -1,155 +0,0 @@ -diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx -index 4c835d0..77a3a18 100644 ---- a/src/sage/rings/integer.pyx -+++ b/src/sage/rings/integer.pyx -@@ -4414,6 +4414,29 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): - sig_off() - return z - -+ def _gcd(self, Integer n): -+ """ -+ Return the greatest common divisor of self and `n`. -+ -+ EXAMPLES:: -+ -+ sage: 1._gcd(-1) -+ 1 -+ sage: 0._gcd(1) -+ 1 -+ sage: 0._gcd(0) -+ 0 -+ sage: 2._gcd(2^6) -+ 2 -+ sage: 21._gcd(2^6) -+ 1 -+ """ -+ cdef Integer z = PY_NEW(Integer) -+ sig_on() -+ mpz_gcd(z.value, self.value, n.value) -+ sig_off() -+ return z -+ - def denominator(self): - """ - Return the denominator of this integer, which of course is -@@ -6736,33 +6759,6 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): - raise ZeroDivisionError(f"inverse of Mod({self}, {m}) does not exist") - return ans - -- def gcd(self, n): -- """ -- Return the greatest common divisor of self and `n`. -- -- EXAMPLES:: -- -- sage: gcd(-1,1) -- 1 -- sage: gcd(0,1) -- 1 -- sage: gcd(0,0) -- 0 -- sage: gcd(2,2^6) -- 2 -- sage: gcd(21,2^6) -- 1 -- """ -- if not isinstance(n, Integer) and not isinstance(n, int): -- left, right = coercion_model.canonical_coercion(self, n) -- return left.gcd(right) -- cdef Integer m = as_Integer(n) -- cdef Integer g = PY_NEW(Integer) -- sig_on() -- mpz_gcd(g.value, self.value, m.value) -- sig_off() -- return g -- - def crt(self, y, m, n): - """ - Return the unique integer between `0` and `mn` that is congruent to -diff --git a/src/sage/structure/element.pyx b/src/sage/structure/element.pyx -index f145e66..1cf634e 100644 ---- a/src/sage/structure/element.pyx -+++ b/src/sage/structure/element.pyx -@@ -3908,16 +3908,79 @@ def is_PrincipalIdealDomainElement(x): - return isinstance(x, PrincipalIdealDomainElement) - - cdef class PrincipalIdealDomainElement(DedekindDomainElement): -+ def gcd(self, right): -+ r""" -+ Return the greatest common divisor of ``self`` and ``other``. -+ -+ TESTS: -+ -+ :trac:`30849`:: -+ -+ sage: 2.gcd(pari(3)) -+ 1 -+ sage: type(2.gcd(pari(3))) -+ <class 'sage.rings.integer.Integer'> -+ -+ sage: 2.gcd(pari('1/3')) -+ 1/3 -+ sage: type(2.gcd(pari('1/3'))) -+ <class 'sage.rings.rational.Rational'> -+ -+ sage: import gmpy2 -+ sage: 2.gcd(gmpy2.mpz(3)) -+ 1 -+ sage: type(2.gcd(gmpy2.mpz(3))) -+ <class 'sage.rings.integer.Integer'> -+ -+ sage: 2.gcd(gmpy2.mpq(1,3)) -+ 1/3 -+ sage: type(2.gcd(pari('1/3'))) -+ <class 'sage.rings.rational.Rational'> -+ """ -+ # NOTE: in order to handle nicely pari or gmpy2 integers we do not rely only on coercion -+ if not isinstance(right, Element): -+ right = py_scalar_to_element(right) -+ if not isinstance(right, Element): -+ right = right.sage() -+ if not ((<Element>right)._parent is self._parent): -+ from sage.arith.all import gcd -+ return coercion_model.bin_op(self, right, gcd) -+ return self._gcd(right) -+ - def lcm(self, right): - """ - Return the least common multiple of ``self`` and ``right``. -- """ -- if not isinstance(right, Element) or not ((<Element>right)._parent is self._parent): -+ -+ TESTS: -+ -+ :trac:`30849`:: -+ -+ sage: 2.lcm(pari(3)) -+ 6 -+ sage: type(2.lcm(pari(3))) -+ <class 'sage.rings.integer.Integer'> -+ -+ sage: 2.lcm(pari('1/3')) -+ 2 -+ sage: type(2.lcm(pari('1/3'))) -+ <class 'sage.rings.rational.Rational'> -+ -+ sage: import gmpy2 -+ sage: 2.lcm(gmpy2.mpz(3)) -+ 6 -+ sage: type(2.lcm(gmpy2.mpz(3))) -+ <class 'sage.rings.integer.Integer'> -+ """ -+ # NOTE: in order to handle nicely pari or gmpy2 integers we do not rely only on coercion -+ if not isinstance(right, Element): -+ right = py_scalar_to_element(right) -+ if not isinstance(right, Element): -+ right = right.sage() -+ if not ((<Element>right)._parent is self._parent): - from sage.arith.all import lcm - return coercion_model.bin_op(self, right, lcm) - return self._lcm(right) - -- - # This is pretty nasty low level stuff. The idea is to speed up construction - # of EuclideanDomainElements (in particular Integers) by skipping some tp_new - # calls up the inheritance tree. diff --git a/sagemath-flint-2.6.patch b/sagemath-flint-2.6.patch deleted file mode 100644 index 481e79a76bf1..000000000000 --- a/sagemath-flint-2.6.patch +++ /dev/null @@ -1,110 +0,0 @@ -diff --git a/src/doc/en/constructions/algebraic_geometry.rst b/src/doc/en/constructions/algebraic_geometry.rst -index a312548..3933bf0 100644 ---- a/src/doc/en/constructions/algebraic_geometry.rst -+++ b/src/doc/en/constructions/algebraic_geometry.rst -@@ -142,13 +142,17 @@ Other methods - sage: I = singular.ideal('x^4+x', 'y^4+y') - sage: L = singular.closed_points(I) - sage: # Here you have all the points : -- sage: print(L) -+ sage: L # random - [1]: -- _[1]=y+1 # 32-bit -- _[2]=x+1 # 32-bit -- _[1]=y # 64-bit -- _[2]=x # 64-bit -+ _[1]=y+1 -+ _[2]=x+1 - ... -+ sage: l=[L[k].sage() for k in [1..10]]; len(l) # there are 10 points -+ 10 -+ sage: r=sorted(l[0].ring().gens()); r -+ [y, x] -+ sage: r in [t.gens() for t in l] # one of them is given by [y,x] -+ True - - - Another way to compute rational points is to use Singular's - ``NSplaces`` command. Here's the Klein quartic over :math:`GF(8)` -diff --git a/src/doc/en/developer/coding_in_other.rst b/src/doc/en/developer/coding_in_other.rst -index ee71373..6693aed 100644 ---- a/src/doc/en/developer/coding_in_other.rst -+++ b/src/doc/en/developer/coding_in_other.rst -@@ -439,7 +439,7 @@ interface to Singular:: - '' - sage: L = singular.eval("POINTS;") - -- sage: print(L) -+ sage: print(L) # random - [1]: - [1]: - 0 -@@ -447,13 +447,6 @@ interface to Singular:: - 1 - [3]: - 0 -- [2]: -- [1]: -- -2 -- [2]: -- -1 -- [3]: -- 1 - ... - - From looking at the output, notice that our wrapper function will need -diff --git a/src/sage/modules/fg_pid/fgp_module.py b/src/sage/modules/fg_pid/fgp_module.py -index 1208768..8cb68d0 100644 ---- a/src/sage/modules/fg_pid/fgp_module.py -+++ b/src/sage/modules/fg_pid/fgp_module.py -@@ -127,7 +127,8 @@ which is coerced into M0. :: - Here we illustrate lifting an element of the image of f, i.e., finding - an element of M0 that maps to a given element of M1:: - -- sage: y = f.lift(3*M1.0); y -+ sage: y = f.lift(3*M1.0) -+ sage: y # random - (0, 13) - sage: f(y) - (3) -@@ -1285,7 +1286,7 @@ class FGP_Module_class(Module): - (0, 4) - sage: Q.coordinate_vector(x, reduce=True) - (0, 4) -- sage: Q.coordinate_vector(-x, reduce=False) -+ sage: Q.coordinate_vector(-x, reduce=False) # random - (0, -4) - sage: x == 4*Q.1 - True -@@ -1414,7 +1415,7 @@ class FGP_Module_class(Module): - Echelon basis matrix: - [ 0 12 0] - [ 0 0 4] -- sage: X -+ sage: X # random - [0 4 0] - [0 1 0] - [0 0 1] -diff --git a/src/sage/modules/free_module_morphism.py b/src/sage/modules/free_module_morphism.py -index 62379d2..2c163f5 100644 ---- a/src/sage/modules/free_module_morphism.py -+++ b/src/sage/modules/free_module_morphism.py -@@ -350,12 +350,14 @@ class FreeModuleMorphism(matrix_morphism.MatrixMorphism): - sage: V = X.span([[2, 0], [0, 8]], ZZ) - sage: W = (QQ**1).span([[1/12]], ZZ) - sage: f = V.hom([W([1/3]), W([1/2])], W) -- sage: f.lift([1/3]) -+ sage: l=f.lift([1/3]); l # random - (8, -16) -- sage: f.lift([1/2]) -- (12, -24) -- sage: f.lift([1/6]) -- (4, -8) -+ sage: f(l) -+ (1/3) -+ sage: f(f.lift([1/2])) -+ (1/2) -+ sage: f(f.lift([1/6])) -+ (1/6) - sage: f.lift([1/12]) - Traceback (most recent call last): - ... |