sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.33k stars 453 forks source link

Upgrade: Singular 4.2.0, pysingular 0.9.7 #25993

Closed jdemeyer closed 3 years ago

jdemeyer commented 6 years ago

Tarball: see checksums.ini on the branch

Use make SAGE_SPKG="sage-spkg -o" singular-clean sagelib-clean build to automatically download and install.

"Critical" because it enables supporting newer versions of FLINT.

We use the Singular development branch (spielwiese) + PR https://github.com/Singular/Singular/pull/1058 in order to build documentation. The tarball is made from https://github.com/mkoeppe/Singular/tree/Release-4-2-0-p1%2Bsage

Upstream: Fixed upstream, but not in a stable release.

CC: @simon-king-jena @timokau @slel @isuruf @saraedum @dkrenn @sagetrac-araichev @cheuberg @behackl @dimpase @videlec

Component: packages: standard

Keywords: upgrade, Singular, pysingular

Author: Antonio Rojas, Markus Wageringel, Matthias Koeppe

Branch: ec471e0

Reviewer: Matthias Koeppe, Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/25993

jdemeyer commented 6 years ago

Dependencies: #24735

jdemeyer commented 6 years ago

Description changed:

--- 
+++ 
@@ -1 +1,64 @@
+**Tarball**: http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/singular-4.1.1p3.tar.gz

+This is breaking `p_group_cohomology`:
+
+```
+
+sage -t src/sage/tests/modular_group_cohomology.py
+**********************************************************************
+File "src/sage/tests/modular_group_cohomology.py", line 52, in sage.tests.modular_group_cohomology
+Failed example:
+H.essential_ideal() # optional - p_group_cohomology
+Exception raised:
+Traceback (most recent call last):
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 573, in _run
+self.compile_and_execute(example, compiler, test.globs)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 983, in compile_and_execute
+exec(compiled, globs)
+File "<doctest sage.tests.modular_group_cohomology[12]>", line 1, in <module>
+H.essential_ideal() # optional - p_group_cohomology
+File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
+File "pGroupCohomology/cohomology.pyx", line 5180, in pGroupCohomology.cohomology.COHO.essential_ideal
+File "pGroupCohomology/cohomology.pyx", line 9760, in pGroupCohomology.cohomology.COHO._lower_bound_depth
+File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
+File "pGroupCohomology/cohomology.pyx", line 9826, in pGroupCohomology.cohomology.COHO.depth
+File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
+File "pGroupCohomology/cohomology.pyx", line 8041, in pGroupCohomology.cohomology.COHO.filter_regular_parameters
+File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
+File "pGroupCohomology/cohomology.pyx", line 8788, in pGroupCohomology.cohomology.COHO.find_small_last_parameter
+File "pGroupCohomology/cohomology.pyx", line 8694, in pGroupCohomology.cohomology.COHO.find_small_last_parameter
+File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
+File "pGroupCohomology/cohomology.pyx", line 8380, in pGroupCohomology.cohomology.COHO._get_obvious_parameter
+File "pGroupCohomology/cohomology.pyx", line 6471, in pGroupCohomology.cohomology.COHO.standard_monomials
+File "pGroupCohomology/cohomology.pyx", line 6356, in pGroupCohomology.cohomology.COHO._makeStdMon
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 655, in __call__
+return self._obj.parent().function_call(self._name, [self._obj] + list(args), kwds)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 576, in function_call
+return self.new(s)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 345, in new
+return self(code)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 798, in __call__
+return SingularElement(self, type, x, False)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 1284, in __init__
+raise_(TypeError, TypeError(x), sys.exc_info()[2])
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 1279, in __init__
+self._name = parent._create(value, type)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 759, in _create
+self.set(type, name, value)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 702, in set
+self.eval(cmd)
+File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 660, in eval
+raise SingularError('Singular error:\n%s'%s)
+TypeError: Singular error:
+? ncols(`int`) failed
+? expected ncols(`matrix`)
+? expected ncols(`smatrix`)
+? expected ncols(`ideal`)
+? expected ncols(`module`)
+? expected ncols(`intmat`)
+? expected ncols(`bigintmat`)
+? error occurred in or before STDIN line 5765: ``
+**********************************************************************
+```
+
+(a few more similar error in the same file)
jdemeyer commented 6 years ago

Branch: u/jdemeyer/ticket/25993

jdemeyer commented 6 years ago

Description changed:

--- 
+++ 
@@ -3,7 +3,6 @@
 This is breaking `p_group_cohomology`:

- sage -t src/sage/tests/modular_group_cohomology.py


File "src/sage/tests/modular_group_cohomology.py", line 52, in sage.tests.modular_group_cohomology @@ -62,3 +61,5 @@


 (a few more similar error in the same file)
+
+It's not clear to me whether this is a Singular bug or a p_group_cohomology bug.
jdemeyer commented 6 years ago

Commit: ec53e6f

jdemeyer commented 6 years ago

Last 10 new commits:

0f55b76More real -> Float porting
aea0544Don't check for exact Singular version
4e52b5eUse p_Divide for lcm as suggested by upstream
50b9ae2Backport patch to move singular's NTL handling out of libsingular
7b56ef2Document patch
930ba2eRemove duplicate cimport
f31d9daMove patch documentation inside patch itself
07ef11brest -> reminder
a9e5aedMinor fixes to Singular interface
ec53e6fUpgrade to Singular 4.1.1p3
simon-king-jena commented 6 years ago
comment:5

Sigh. So I have to upgrade the group cohomology package earlier than I thought. I'll see what I can do (after grading some exam).

simon-king-jena commented 6 years ago
comment:6

The ticket description prominently tells that the group cohomology package is failing, but the title of the ticket is about upgrading Singular.

So, just to be sure about the topic of this ticket:

simon-king-jena commented 6 years ago

Replying to @jdemeyer:

It's not clear to me whether this is a Singular bug or a p_group_cohomology bug.

Most likely it is an API change.

jdemeyer commented 6 years ago
comment:8

This ticket is about upgrading Singular. If the p_group_cohomology package must be changed, ideally it should be done in a way which makes it compatible both with Singular 4.1.1p3 as well as earlier versions. In that case, the upgrade of p_group_cohomology can be done on a different ticket and #25993 should depend on that.

Concerning the commit history, only the last commit belongs to this ticket. The rest belongs to #24735 which is an upgrade of Singular to 4.1.1p2.

simon-king-jena commented 6 years ago
comment:9

Replying to @jdemeyer:

Concerning the commit history, only the last commit belongs to this ticket. The rest belongs to #24735 which is an upgrade of Singular to 4.1.1p2.

I see. Do you know if the breakage already happens in p2?

simon-king-jena commented 6 years ago
comment:10

PS: I recently added a patch to Singular which backports a bugfix that is important to me. Is that bugfix in Singular-4.1.1?

jdemeyer commented 6 years ago
comment:11

Replying to @simon-king-jena:

I see. Do you know if the breakage already happens in p2?

I know that it does not occur. That's also a good reason to do the upgrade in two steps: first to 4.1.1p2 which works fine and then to 4.1.1p3 (or a later version) once p_group_cohomology is fixed.

simon-king-jena commented 6 years ago
comment:12

Replying to @jdemeyer:

Replying to @simon-king-jena:

I see. Do you know if the breakage already happens in p2?

I know that it does not occur. That's also a good reason to do the upgrade in two steps: first to 4.1.1p2 which works fine and then to 4.1.1p3 (or a later version) once p_group_cohomology is fixed.

Thank you! That sounds like a good plan. And do you know about the backported bug fix?

jdemeyer commented 6 years ago
comment:13

Replying to @simon-king-jena:

I recently added a patch to Singular which backports a bugfix that is important to me. Is that bugfix in Singular-4.1.1?

That's hard to say if you don't say which patch you mean. In any case, all patches which are currently (in Sage 8.3.rc3) applied to Singular are included in Singular 4.1.1p2.

Note that you said 4.1.1 but I guess you really care about 4.1.1p2 or 4.1.1p3. Despite what the version numbers suggest, experience shows that Singular adds non-trivial changes in such patch-releases.

simon-king-jena commented 6 years ago
comment:14

Replying to @jdemeyer:

Replying to @simon-king-jena:

I recently added a patch to Singular which backports a bugfix that is important to me. Is that bugfix in Singular-4.1.1?

That's hard to say if you don't say which patch you mean. In any case, all patches which are currently (in Sage 8.3.rc3) applied to Singular are included in Singular 4.1.1p2.

It is backport_std.patch

Note that you said 4.1.1 but I guess you really care about 4.1.1p2 or 4.1.1p3. Despite what the version numbers suggest, experience shows that Singular adds non-trivial changes in such patch-releases.

I see. I thought that the "p something" patch level is Sage's addition of patches, not Singular's.

jdemeyer commented 6 years ago

Upstream: Fixed upstream, but not in a stable release.

jdemeyer commented 6 years ago

Description changed:

--- 
+++ 
@@ -1,3 +1,5 @@
+We need to add a fix for https://www.singular.uni-kl.de:8005/trac/ticket/834
+
 **Tarball**: http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/singular-4.1.1p3.tar.gz

 This is breaking `p_group_cohomology`:
jdemeyer commented 6 years ago
comment:16

Replying to @simon-king-jena:

I see. I thought that the "p something" patch level is Sage's addition of patches, not Singular's.

No, Sage's p levels have a dot. So you can have a Singular package version number like 4.1.1p2.p0 (where 4.1.1p2 comes from Singular upstream and .p0 from Sage). I know, it's confusing :-)

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 6 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

83c8ac2Upgrade to Singular 4.1.1p3
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 6 years ago

Changed commit from ec53e6f to 83c8ac2

jdemeyer commented 6 years ago
comment:18

Replying to @simon-king-jena:

It is backport_std.patch

Sorry, I don't know what you mean. Where should I find this patch?

simon-king-jena commented 6 years ago
comment:19

Replying to @jdemeyer:

Replying to @simon-king-jena:

It is backport_std.patch

Sorry, I don't know what you mean. Where should I find this patch?

25889

jdemeyer commented 6 years ago
comment:20

Replying to @simon-king-jena:

Sigh. So I have to upgrade the group cohomology package earlier than I thought.

At least this time, it's not the fault of Sage but Singular :-)

simon-king-jena commented 6 years ago
comment:21

I created #26001 to deal with the now needed upgrade of the group cohomology package. I suggest that I bae #26001 on top of #24735 (which by now is positively reviewed) and make the new ticket a dependency for the upgrade of Singular to version 4.1.1.p3.

simon-king-jena commented 6 years ago

Changed dependencies from #24735 to #24735 #26001

timokau commented 6 years ago
comment:22

Is this supposed to pass the non-optional doctests already? I cherry-picket the last two commits (Upgrade to Singular 4.1.1p3 and Minor fixes to Singular interface) and added the patch to singular in an attempt to update nix's Singular to p3. I'm getting a segfault while running the doctests:

File "/nix/store/pzc940fjxrhq17j58krwry2y7wi9czh8-sage-src-8.3/src/sage/rings/polynomial/plural.pyx", line 396, in sage.rings.polynomial.plural.NCPolynomialRing_plural.__dealloc__
Failed example:
    R2 = A2.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y}, order=TermOrder('degrevlex', 2))
Exception raised:
    Traceback (most recent call last):
      File "/nix/store/ic3b215ln47d0js46lyvc7zjizd9jfqp-python-2.7.15-env/lib/python2.7/site-packages/sage/doctest/forker.py", line 573, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/nix/store/ic3b215ln47d0js46lyvc7zjizd9jfqp-python-2.7.15-env/lib/python2.7/site-packages/sage/doctest/forker.py", line 983, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.rings.polynomial.plural.NCPolynomialRing_plural.__dealloc__[6]>", line 1, in <module>
        R2 = A2.g_algebra({y*x:x*y-z, z*x:x*z+Integer(2)*x, z*y:y*z-Integer(2)*y}, order=TermOrder('degrevlex', Integer(2)))
      File "/nix/store/ic3b215ln47d0js46lyvc7zjizd9jfqp-python-2.7.15-env/lib/python2.7/site-packages/sage/algebras/free_algebra.py", line 876, in g_algebra
        order=order, check=check)
      File "sage/structure/factory.pyx", line 368, in sage.structure.factory.UniqueFactory.__call__ (build/cythonized/sage/structure/factory.c:2046)
        return self.get_object(version, key, kwds)
      File "sage/structure/factory.pyx", line 411, in sage.structure.factory.UniqueFactory.get_object (build/cythonized/sage/structure/factory.c:2422)
        obj = self.create_object(version, key, **extra_args)
      File "sage/rings/polynomial/plural.pyx", line 173, in sage.rings.polynomial.plural.G_AlgFactory.create_object (build/cythonized/sage/rings/polynomial/plural.cpp:5046)
        return NCPolynomialRing_plural(base_ring, names, c, d, order,
      File "sage/rings/polynomial/plural.pyx", line 351, in sage.rings.polynomial.plural.NCPolynomialRing_plural.__init__ (build/cythonized/sage/rings/polynomial/plural.cpp:6406)
        test = ff.nctools__lib.ndcond(ring = self)
      File "sage/libs/singular/function.pyx", line 1330, in sage.libs.singular.function.SingularFunction.__call__ (build/cythonized/sage/libs/singular/function.cpp:15332)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1512, in sage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:17285)
        with opt_ctx: # we are preserving the global options state here
      File "sage/libs/singular/function.pyx", line 1514, in sage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:17197)
        sig_on()
    SignalError: Segmentation fault
antonio-rojas commented 6 years ago
comment:23

Note that this will also break the build of polymake (not sure if it affects the 3.1 version shipped by Sage)

http://www.singular.uni-kl.de:8002/trac/ticket/838

antonio-rojas commented 5 years ago
comment:25

4.1.1p4 is out, with fixes for the gcd in ZZ and the polymake issue. But (of course) with new problems: the stest function has changed signature and now only accepts two parameters [1]. After porting the Sage code I'm getting floating point exceptions

File "/usr/lib/python2.7/site-packages/sage/rings/quotient_ring_element.py", line 629, in sage.rings.quotient_ring_element.QuotientRingElement._richcmp_
Failed example:
    I = F*[x*y+y*z,x^2+x*y-y*x-y^2]*F
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/site-packages/sage/doctest/forker.py", line 671, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/lib/python2.7/site-packages/sage/doctest/forker.py", line 1086, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.rings.quotient_ring_element.QuotientRingElement._richcmp_[7]>", line 1, in <module>
        I = F*[x*y+y*z,x**Integer(2)+x*y-y*x-y**Integer(2)]*F
      File "sage/structure/element.pyx", line 1517, in sage.structure.element.Element.__mul__ (build/cythonized/sage/structure/element.c:12022)
        return (<Element>left)._mul_(right)
      File "sage/algebras/letterplace/free_algebra_element_letterplace.pyx", line 604, in sage.algebras.letterplace.free_algebra_element_letterplace.FreeAlgebraElement_letterplace._mul_ (build/cythonized/sage/algebras/letterplace/free_algebra_element_letterplace.cpp:9487)
        rshift = singular_system("stest",right._poly,left._poly.degree(), ring=A._current_ring)
      File "sage/libs/singular/function.pyx", line 1330, in sage.libs.singular.function.SingularFunction.__call__ (build/cythonized/sage/libs/singular/function.cpp:15055)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1512, in sage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:16879)
        with opt_ctx: # we are preserving the global options state here
      File "sage/libs/singular/function.pyx", line 1514, in sage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:16791)
        sig_on()
    FloatingPointError: Floating point exception

[1] https://github.com/Singular/Sources/commit/b00f8a34fb50dbff4746ce45d0680d242f28260c

jdemeyer commented 5 years ago
comment:26

Replying to @antonio-rojas:

4.1.1p4 is out

Really? I don't see it on ftp://jim.mathematik.uni-kl.de/pub/Math/Singular/SOURCES/4-1-1/

antonio-rojas commented 5 years ago
comment:27

Replying to @jdemeyer:

Replying to @antonio-rojas:

4.1.1p4 is out

Really? I don't see it on ftp://jim.mathematik.uni-kl.de/pub/Math/Singular/SOURCES/4-1-1/

That mirror seems to be outdated

https://service.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/

jdemeyer commented 5 years ago

Description changed:

--- 
+++ 
@@ -1,67 +1,5 @@
 We need to add a fix for https://www.singular.uni-kl.de:8005/trac/ticket/834

-**Tarball**: http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/singular-4.1.1p3.tar.gz
+**Tarball**: https://service.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/singular-4.1.1p4.tar.gz

-This is breaking `p_group_cohomology`:
-
-```
-sage -t src/sage/tests/modular_group_cohomology.py
-**********************************************************************
-File "src/sage/tests/modular_group_cohomology.py", line 52, in sage.tests.modular_group_cohomology
-Failed example:
-H.essential_ideal() # optional - p_group_cohomology
-Exception raised:
-Traceback (most recent call last):
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 573, in _run
-self.compile_and_execute(example, compiler, test.globs)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 983, in compile_and_execute
-exec(compiled, globs)
-File "<doctest sage.tests.modular_group_cohomology[12]>", line 1, in <module>
-H.essential_ideal() # optional - p_group_cohomology
-File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
-File "pGroupCohomology/cohomology.pyx", line 5180, in pGroupCohomology.cohomology.COHO.essential_ideal
-File "pGroupCohomology/cohomology.pyx", line 9760, in pGroupCohomology.cohomology.COHO._lower_bound_depth
-File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
-File "pGroupCohomology/cohomology.pyx", line 9826, in pGroupCohomology.cohomology.COHO.depth
-File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
-File "pGroupCohomology/cohomology.pyx", line 8041, in pGroupCohomology.cohomology.COHO.filter_regular_parameters
-File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
-File "pGroupCohomology/cohomology.pyx", line 8788, in pGroupCohomology.cohomology.COHO.find_small_last_parameter
-File "pGroupCohomology/cohomology.pyx", line 8694, in pGroupCohomology.cohomology.COHO.find_small_last_parameter
-File "pGroupCohomology/cohomology.pyx", line 1691, in pGroupCohomology.cohomology.permanent_result.__call__
-File "pGroupCohomology/cohomology.pyx", line 8380, in pGroupCohomology.cohomology.COHO._get_obvious_parameter
-File "pGroupCohomology/cohomology.pyx", line 6471, in pGroupCohomology.cohomology.COHO.standard_monomials
-File "pGroupCohomology/cohomology.pyx", line 6356, in pGroupCohomology.cohomology.COHO._makeStdMon
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 655, in __call__
-return self._obj.parent().function_call(self._name, [self._obj] + list(args), kwds)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 576, in function_call
-return self.new(s)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/interface.py", line 345, in new
-return self(code)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 798, in __call__
-return SingularElement(self, type, x, False)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 1284, in __init__
-raise_(TypeError, TypeError(x), sys.exc_info()[2])
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 1279, in __init__
-self._name = parent._create(value, type)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 759, in _create
-self.set(type, name, value)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 702, in set
-self.eval(cmd)
-File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 660, in eval
-raise SingularError('Singular error:\n%s'%s)
-TypeError: Singular error:
-? ncols(`int`) failed
-? expected ncols(`matrix`)
-? expected ncols(`smatrix`)
-? expected ncols(`ideal`)
-? expected ncols(`module`)
-? expected ncols(`intmat`)
-? expected ncols(`bigintmat`)
-? error occurred in or before STDIN line 5765: ``
-**********************************************************************
-```
-
-(a few more similar error in the same file)
-
-It's not clear to me whether this is a Singular bug or a p_group_cohomology bug.
+This is breaking `p_group_cohomology`, which is why #26001 is a dependency.
jdemeyer commented 5 years ago

Changed dependencies from #24735 #26001 to #26001

simon-king-jena commented 5 years ago
comment:29

Can you test if it is also breaking the new version of p_group_cohomology (see #26001), which is ready for review?

simon-king-jena commented 5 years ago
comment:30

Replying to @simon-king-jena:

Can you test if it is also breaking the new version of p_group_cohomology (see #26001), which is ready for review?

I did test: The upgrade to singular-4.1.1p3 is not problematic with the new version of p_group_cohomology. I cannot tell about p4, of course.

Anyway, some good news for the start of the new year...

jdemeyer commented 5 years ago

Changed dependencies from #26001 to none

jdemeyer commented 5 years ago

Description changed:

--- 
+++ 
@@ -1,5 +1,3 @@
 We need to add a fix for https://www.singular.uni-kl.de:8005/trac/ticket/834

 **Tarball**: https://service.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/singular-4.1.1p4.tar.gz
-
-This is breaking `p_group_cohomology`, which is why #26001 is a dependency.
jdemeyer commented 5 years ago

Changed upstream from Fixed upstream, but not in a stable release. to none

jdemeyer commented 5 years ago

Description changed:

--- 
+++ 
@@ -1,3 +1 @@
-We need to add a fix for https://www.singular.uni-kl.de:8005/trac/ticket/834
-
 **Tarball**: https://service.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/singular-4.1.1p4.tar.gz
7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Changed commit from 83c8ac2 to 4bd32fe

7ed8c4ca-6d56-4ae9-953a-41e42b4ed313 commented 5 years ago

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

4bd32feUpgrade to Singular 4.1.1p4
jdemeyer commented 5 years ago
comment:34

This version compiles, but leads to doctest failures, in particular

sage -t src/sage/rings/quotient_ring.py
**********************************************************************
File "src/sage/rings/quotient_ring.py", line 89, in sage.rings.quotient_ring
Failed example:
    Q3 = F.quo(F*[F.prod(m) for m in product(F.gens(), repeat=3)]*F)
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 671, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 1086, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.rings.quotient_ring[20]>", line 1, in <module>
        Q3 = F.quo(F*[F.prod(m) for m in product(F.gens(), repeat=Integer(3))]*F)
      File "/usr/local/src/sage-config/local/lib/python2.7/site-packages/sage/categories/monoids.py", line 158, in prod
        return prod(args, self.one())
      File "sage/misc/misc_c.pyx", line 144, in sage.misc.misc_c.prod (build/cythonized/sage/misc/misc_c.c:2570)
        prod = balanced_list_prod(x, 0, n, recursion_cutoff)
      File "sage/misc/misc_c.pyx", line 180, in sage.misc.misc_c.balanced_list_prod (build/cythonized/sage/misc/misc_c.c:2706)
        prod *= <object>PySequence_Fast_GET_ITEM(L, k)
      File "sage/structure/element.pyx", line 1517, in sage.structure.element.Element.__mul__ (build/cythonized/sage/structure/element.c:12023)
        return (<Element>left)._mul_(right)
      File "sage/algebras/letterplace/free_algebra_element_letterplace.pyx", line 604, in sage.algebras.letterplace.free_algebra_element_letterplace.FreeAlgebraElement_letterplace._mul_ (build/cythonized/sage/algebras/letterplace/free_algebra_element_letterplace.cpp:9525)
        rshift = singular_system("stest",right._poly,left._poly.degree(),A._degbound,A.__ngens, ring=A._current_ring)
      File "sage/libs/singular/function.pyx", line 1330, in sage.libs.singular.function.SingularFunction.__call__ (build/cythonized/sage/libs/singular/function.cpp:15057)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1528, in sage.libs.singular.function.call_function (build/cythonized/sage/libs/singular/function.cpp:17033)
        raise RuntimeError("error in Singular function call %r:\n%s" %
    RuntimeError: error in Singular function call 'system':
    wrong length of parameters(4), expected `poly`,`int`
**********************************************************************
antonio-rojas commented 5 years ago
comment:35

Yes, see comment:25. The letterplace algebra implementation has been completely rewritten in Singular, in particular "stest" can only be used with rings that are explicitely declared as letterplace. In the long term free_algebra_letterplace.pyx should be refactored to use the new implementation, but a faster short-term solution could be to implement an internal variable shifting method in Sage itself (to replace "stest" usage).

slel commented 5 years ago

Changed keywords from none to upgrade, Singular

slel commented 5 years ago
comment:36

It seems Singular 4-1-2 is out, see the GitHub "releases" page and one official sources directory at uni-kl:

So far no mention on the Singular home page or download page:

but I guess they will be updated soon.

antonio-rojas commented 5 years ago
comment:37

Relevant changes: system("stest") and system("freegb") are no longer a thing. There is a stest function now, but it's marked static so not accessible from outside the library.

simon-king-jena commented 5 years ago
comment:38

Replying to @antonio-rojas:

Relevant changes: system("stest") and system("freegb") are no longer a thing. There is a stest function now, but it's marked static so not accessible from outside the library.

That's quite unfortunate. freegb is needed for free commutative algebras in letterplace implementation. I am not sure if stest is needed there, too.

Any replacement for freegb?

antonio-rojas commented 5 years ago
comment:39

Replying to @simon-king-jena:

Replying to @antonio-rojas:

Relevant changes: system("stest") and system("freegb") are no longer a thing. There is a stest function now, but it's marked static so not accessible from outside the library.

That's quite unfortunate. freegb is needed for free commutative algebras in letterplace implementation. I am not sure if stest is needed there, too.

Any replacement for freegb?

Looks like one can simply use std now https://github.com/Singular/Sources/commit/6a0ad754

jdemeyer commented 5 years ago

Description changed:

--- 
+++ 
@@ -1 +1 @@
-**Tarball**: https://service.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-1/singular-4.1.1p4.tar.gz
+**Tarball**: https://service.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-2/singular-4.1.2p1.tar.gz
mwageringel commented 4 years ago
comment:42

Replying to @antonio-rojas:

Looks like one can simply use std now https://github.com/Singular/Sources/commit/6a0ad754

Indeed, std/twostd can be used for this, but one needs to work over a polynomial ring constructed via freeAlgebra, so that certain attributes like the degree bound are set for the computation.

However, I do not see how to make the degrees option work, as Singular's freeAlgebra function does not allow for block orders:

sage: F.<a,b,c> = FreeAlgebra(QQ, implementation='letterplace', degrees=(1,2,3))
sage: F.commutative_ring().term_order()
Block term order with blocks:
(Degree reverse lexicographic term order of length 3,
 Lexicographic term order of length 1)

sage: from sage.libs.singular.function_factory import ff
sage: A = ff.freegb__lib.freeAlgebra(F.commutative_ring(), 5)
...
RuntimeError: error in Singular function call 'freeAlgebra':
only for rings with a global ordering of one block

This is with Singular 4.1.2p1 (freeAlgebra does not exist in the Singular version that is currently in Sage).

The other failing doctests seem mostly harmless.