Opened 4 years ago

Closed 4 years ago

#21865 closed defect (fixed)

Upgrade Singular to version 4-1-0p1

Reported by: jhpalmieri Owned by:
Priority: blocker Milestone: sage-7.5
Component: packages: standard Keywords:
Cc: Merged in:
Authors: Jean-Pierre Flori Reviewers: François Bissey
Report Upstream: N/A Work issues:
Branch: efc51ca (Commits, GitHub, GitLab) Commit: efc51cab4ebdeda909653c8a27f4f5a0f7abdcc2
Dependencies: Stopgaps:

Status badges

Description (last modified by jpflori)

On the last update, the interrupt handling patch was wrongly removed, causing failures on OS X. It is now included upstream, so let's update to 4-1-0p1. This new version also allows us to simplify packaging.

New tarball: http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-0/singular-4.1.0p1.tar.gz

Change History (55)

comment:1 Changed 4 years ago by jhpalmieri

  • Description modified (diff)

comment:2 Changed 4 years ago by fbissey

This is the pexpect interface playing up again, isn't it? It was also on OS X last time.

comment:3 Changed 4 years ago by jdemeyer

First somebody needs to double-check that all patches which were removed in #21631 were actually upstreamed.

comment:4 Changed 4 years ago by jhpalmieri

Good call, Jeroen. It looks to me as though several of the patches were not applied or only partially applied. In particular, after applying the old interrupt.patch, that file passes tests. I'm rebuilding from scratch to check this.

By the way, from the other patches: from xalloc-omconfig.patch: the changes to xalloc/configure.ac were not upstreamed. From xalloc.pc.patch, the changes to xalloc/Makefile.am were not upstreamed. (I didn't check that carefully, to be honest, since interrupt.patch seemed like the likely culprit.)

comment:5 Changed 4 years ago by fbissey

interrupt.patch is not in current upstream at all. Do we have a PR for it?

comment:6 Changed 4 years ago by jhpalmieri

Just reinstating interrupt.patch yields one doctest error:

sage -t --long --warn-long 69.2 src/sage/tests/cmdline.py
**********************************************************************
File "src/sage/tests/cmdline.py", line 558, in sage.tests.cmdline.test_executable
Failed example:
    err
Expected:
    ''
Got:
    'fgets() failed'
**********************************************************************
1 item had failures:
   1 of 239 in sage.tests.cmdline.test_executable
    [238 tests, 1 failure, 48.69 s]
----------------------------------------------------------------------
sage -t --long --warn-long 69.2 src/sage/tests/cmdline.py  # 1 doctest failed
----------------------------------------------------------------------

comment:7 Changed 4 years ago by jpflori

Sorry, I was too fast on the update it seemed to me that Hans integrated the interrupt stuff...

As far as xalloc is concerned IIRC what is upstream should be mostly sufficient: the "omconfig" part was realy about bugs and should be fixed. I'm not sure anymore about the pkgconfig part, nor that I reported it upstream!

comment:8 follow-up: Changed 4 years ago by jpflori

comment:9 in reply to: ↑ 8 Changed 4 years ago by fbissey

Replying to jpflori:

The pkgconfig part is upstream as well:

Was going to say that. And definitely in 4.0.3p5 at least.

comment:10 follow-up: Changed 4 years ago by jpflori

About interrupts there was this upstream tichet:

  • www.singular.uni-kl.de:8002/trac/ticket/729

I cannot check things on this port from where I am :) IIRC there was also another ticket there.

We should ping Hans about this one. And also about the remaining stuff I mention here in debug mode:

comment:11 follow-up: Changed 4 years ago by jdemeyer

So, we should just wait for 4.0.3p5?

comment:12 Changed 4 years ago by jdemeyer

Interrupts in Singular are indeed still (slightly) broken.

It is possible to do it really robustly, but not in a very portable way. If you're willing to assume POSIX (which is what Sage does), I can fix it but I don't know whether upstream will accept that.

comment:13 in reply to: ↑ 10 Changed 4 years ago by jdemeyer

Replying to jpflori:

About interrupts there was this upstream tichet:

And this one: http://www.singular.uni-kl.de:8002/trac/ticket/727 (it is possible that these two tickets are duplicates)

comment:14 in reply to: ↑ 11 Changed 4 years ago by fbissey

Replying to jdemeyer:

So, we should just wait for 4.0.3p5?

4.0.3p6. 4.0.3p5 is already out (I have been using it in sage-on-gentoo for a few days already).

comment:15 Changed 4 years ago by jpflori

Or 4.1.0 as it seems upstream is preparing for it.

comment:18 Changed 4 years ago by fbissey

There isn't a matching "share" tarball, is this expected?

comment:19 Changed 4 years ago by fbissey

Must still be coming otherwise we are without singular.hlp unless we can build it without trouble.

comment:20 Changed 4 years ago by fbissey

Found it, hiding in the doc folder there is a doc.tbz2 file which seems to have all the useful content of share tarball, including singular.hlp.

comment:21 Changed 4 years ago by fbissey

OK we need to stop the madness about singular.hlp anyway. In 4.0+ it is naturally installed in $prefix/share/info as part of the building process (this is a info file with a funny extension). And singular.idx is installed in $prefix/share/singular without it having to be done by spkg-install as well.

So that part of spkg-install should disappear anyway and we should amend the location of singular.hlp in sage/interfaces/singular.py.

comment:22 Changed 4 years ago by jpflori

Great! and no need to repackage the upstream tarball!!!

comment:23 Changed 4 years ago by fbissey

I think we will be able to just use vanilla upstream - no more spkg-src yeah! I doing some building and testing on sage-on-gentoo to see if we have any new breakages. I'll probably report in a couple of hours.

comment:24 Changed 4 years ago by fbissey

The content of the doc.tbz2 has the wrong permissions, not an issue for sage (unless installed as root) but it is becoming one for me (files are 640 and folders 651 instead of 644 and 655).

comment:25 Changed 4 years ago by fbissey

Got a lot of failures going to 4.1.0. Some will be easy, other will need work again.

File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 103, in sage.interfaces.singular
Failed example:
    g = f.sage(); g
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib64/python2.7/site-packages/sage/doctest/forker.py", line 501, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/lib64/python2.7/site-packages/sage/doctest/forker.py", line 864, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.interfaces.singular[8]>", line 1, in <module>
        g = f.sage(); g
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/interface.py", line 1020, in sage
        return self._sage_(*args, **kwds)
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1940, in _sage_
        return self.sage_poly(R)
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1707, in sage_poly
        R = self.sage_global_ring()
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1586, in sage_global_ring
        q = ZZ(charstr[0])
      File "sage/structure/parent.pyx", line 953, in sage.structure.parent.Parent.__call__ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/structure/parent.c:9841)
        return mor._call_(x)
      File "sage/structure/coerce_maps.pyx", line 110, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/structure/coerce_maps.c:4874)
        raise
      File "sage/structure/coerce_maps.pyx", line 105, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/structure/coerce_maps.c:4735)
        return C._element_constructor(x)
      File "sage/rings/integer.pyx", line 680, in sage.rings.integer.Integer.__init__ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/rings/integer.c:5991)
        mpz_set_str_python(self.value, x, base)
      File "sage/rings/integer.pyx", line 6697, in sage.rings.integer.mpz_set_str_python (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/rings/integer.c:42335)
        raise TypeError("unable to convert %r to an integer" % s)
    TypeError: unable to convert 'QQ' to an integer
File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1158, in sage.interfaces.singular.Singular._tab_completion
Failed example:
    singular._tab_completion()
Expected:
    ['exteriorPower',
     ...
     'stdfglm']
Got:
    ['exteriorPower',
     'symmetricPower',
...
...
     'stdfglm',
     'flintZ']
File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1896, in sage.interfaces.singular.SingularElement._sage_
Failed example:
    singular('ringlist(basering)').sage()
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib64/python2.7/site-packages/sage/doctest/forker.py", line 501, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/lib64/python2.7/site-packages/sage/doctest/forker.py", line 864, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.interfaces.singular.SingularElement._sage_[9]>", line 1, in <module>
        singular('ringlist(basering)').sage()
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/interface.py", line 1020, in sage
        return self._sage_(*args, **kwds)
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1948, in _sage_
        return [ f._sage_(R) for f in self ]
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1963, in _sage_
        R = R or self.sage_global_ring()
      File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1586, in sage_global_ring
        q = ZZ(charstr[0])
      File "sage/structure/parent.pyx", line 953, in sage.structure.parent.Parent.__call__ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/structure/parent.c:9841)
        return mor._call_(x)
      File "sage/structure/coerce_maps.pyx", line 110, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/structure/coerce_maps.c:4874)
        raise
      File "sage/structure/coerce_maps.pyx", line 105, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/structure/coerce_maps.c:4735)
        return C._element_constructor(x)
      File "sage/rings/integer.pyx", line 680, in sage.rings.integer.Integer.__init__ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/rings/integer.c:5991)
        mpz_set_str_python(self.value, x, base)
      File "sage/rings/integer.pyx", line 6697, in sage.rings.integer.mpz_set_str_python (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/rings/integer.c:42335)
        raise TypeError("unable to convert %r to an integer" % s)
    TypeError: unable to convert 'ZZ' to an integer
**********************************************************************
File "/usr/lib64/python2.7/site-packages/sage/interfaces/singular.py", line 1910, in sage.interfaces.singular.SingularElement._sage_
Failed example:
    singular('basering')
Expected:
    polynomial ring, over a domain, global ordering
    //   coeff. ring is : integer
    //   number of vars : 3
    //        block   1 : ordering lp
    //                  : names    x y z
    //        block   2 : ordering C
Got:
    polynomial ring, over a domain, global ordering
    //   coeff. ring is : ZZ
    //   number of vars : 3
    //        block   1 : ordering lp
    //                  : names    x y z
    //        block   2 : ordering C
File "/usr/lib64/python2.7/site-packages/sage/schemes/generic/algebraic_scheme.py", line 2776, in sage.schemes.generic.algebraic_scheme.AlgebraicScheme_subscheme_projective._forward_image
Failed example:
    f(X)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib64/python2.7/site-packages/sage/doctest/forker.py", line 501, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/usr/lib64/python2.7/site-packages/sage/doctest/forker.py", line 864, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.schemes.generic.algebraic_scheme.AlgebraicScheme_subscheme_projective._forward_image[10]>", line 1, in <module>
        f(X)
      File "/usr/lib64/python2.7/site-packages/sage/schemes/projective/projective_morphism.py", line 341, in __call__
        return x._forward_image(self) #call subscheme eval
      File "/usr/lib64/python2.7/site-packages/sage/schemes/generic/algebraic_scheme.py", line 2917, in _forward_image
        G = L.groebner_basis() #eliminate
      File "sage/misc/cachefunc.pyx", line 2038, in sage.misc.cachefunc.CachedMethodCaller.__call__ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/misc/cachefunc.c:10783)
        w = self._instance_call(*args, **kwds)
      File "sage/misc/cachefunc.pyx", line 1914, in sage.misc.cachefunc.CachedMethodCaller._instance_call (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/misc/cachefunc.c:10229)
        return self.f(self._instance, *args, **kwds)
      File "/usr/lib64/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 3729, in groebner_basis
        gb = self._groebner_basis_libsingular("groebner", deg_bound=deg_bound, mult_bound=mult_bound, *args, **kwds)
      File "/usr/lib64/python2.7/site-packages/sage/libs/singular/standard_options.py", line 140, in wrapper
        return func(*args, **kwds)
      File "/usr/lib64/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 541, in _groebner_basis_libsingular
        S = groebner(self)
      File "sage/libs/singular/function.pyx", line 1323, in sage.libs.singular.function.SingularFunction.__call__ (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/libs/singular/function.cpp:15144)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1516, in sage.libs.singular.function.call_function (/scratch2/portage/sci-mathematics/sage-9999/work/sage-9999/src-python2_7/build/cythonized/sage/libs/singular/function.cpp:17184)
        raise RuntimeError("error in Singular function call %r:\n%s"%
    RuntimeError: error in Singular function call 'groebner':
    not implemented for rings with rings as coeffients
    error occurred in or before standard.lib::stdhilb line 350: `    i = std(i, hi);`
    leaving standard.lib::stdhilb
    leaving standard.lib::groebner

And that last one is timing out.

comment:26 Changed 4 years ago by jpflori

I'm working on an update branch.

comment:27 Changed 4 years ago by jdemeyer

  • Description modified (diff)
  • Summary changed from Singular error with 7.5.beta1 + #21631 to Upgrade Singular to version 4.1

comment:28 Changed 4 years ago by fbissey

Over the week end it was found there was an issue in root installs of cysignals (https://github.com/sagemath/cysignals/issues/44), once corrected I get the following interesting debug from algebraic_scheme.py

sage -t --long /usr/lib64/python2.7/site-packages/sage/schemes/generic/algebraic_scheme.py
too many failed tests, not using stored timings
Running doctests with ID 2016-11-21-13-19-57-b0eca2ab.
Using --optional=optional,sage
Doctesting 1 file.
*** Error in `python2.7': corrupted double-linked list: 0x0000000005aa2960 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x721b3)[0x7fdd1811f1b3]
/lib64/libc.so.6(+0x77aa6)[0x7fdd18124aa6]
/lib64/libc.so.6(+0x77d71)[0x7fdd18124d71]
/lib64/libc.so.6(+0x78978)[0x7fdd18125978]
/usr/lib64/libomalloc-0.9.6.so(omFreeSizeToSystem+0xc)[0x7fdb40f029cc]
/usr/lib64/libSingular-4.1.0.so(_Z16yy_delete_bufferP15yy_buffer_state+0x12d)[0x7fdb40a8e27d]
/usr/lib64/libSingular-4.1.0.so(_Z12myyoldbufferPv+0x10)[0x7fdb40a91d70]
/usr/lib64/libSingular-4.1.0.so(_Z9exitVoicev+0x26)[0x7fdb40a10206]
/usr/lib64/libSingular-4.1.0.so(_Z10exitBuffer13feBufferTypes+0x60)[0x7fdb40a10610]
/usr/lib64/libSingular-4.1.0.so(_Z7yyparsev+0x4bff)[0x7fdb40a19cff]
/usr/lib64/libSingular-4.1.0.so(_Z10iiAllStartP8procinfoPc13feBufferTypesi+0xa6)[0x7fdb40a54b66]
/usr/lib64/libSingular-4.1.0.so(_Z8iiPStartP5idrecP6sleftv+0x14a)[0x7fdb40a54eda]
/usr/lib64/libSingular-4.1.0.so(_Z11iiMake_procP5idrecP11sip_packageP6sleftv+0x2b2)[0x7fdb40a55382]

comment:29 Changed 4 years ago by jpflori

FYI, I've been working on this one. I'm currently chasing a segfault. For some reason, some coeffs defining an ideal are invalidly free'ed, or rather surely never malloc'ed... I have a working but still buggy branch that I'll push at some near point.

We should also deal with #21624.

comment:30 Changed 4 years ago by jpflori

Segfault when computing gröbner bases over the integers reported here:

comment:31 Changed 4 years ago by jpflori

  • Authors set to Jean-Pierre Flori
  • Branch set to public/singular410
  • Commit set to ff218f5e6800594f4ffef728977397d052f3769a

Not ready yet but looking like something more usable.


New commits:

65b2cd3Update Singular to 4.0.3p5.
c42bc7aMerge remote-tracking branch 'trac/develop' into singular4
06dd84cUpdate to version 4.0.1p1
d4fc6c6Merge remote-tracking branch 'trac/develop' into singular4
b7d6d3eMerge remote-tracking branch 'local/singular4' into develop
93ecf54Stronger C typing for Singular ring order.
5c3720bMark some params as unused in xalloc.
1db6303Let new Singular act as old one for GB computations over ZZ.
df0b168Backport Singular 4-2-0 patch. Not needed now but we'll have to deal with this.
ff218f5Backport new functions for ring name printing. Otherwise debug mode cries.

comment:32 Changed 4 years ago by jpflori

Worrying errors:

comment:33 Changed 4 years ago by jpflori

  • src/sage/interfaces/singular.py : coeff printing function for complex numbers, only in debug mode.
  • src/sage/matrix/matrix_modn_dense_template.pxi : to be investigated

comment:34 Changed 4 years ago by git

  • Commit changed from ff218f5e6800594f4ffef728977397d052f3769a to a295b793b8c801453ce4f7c7dab85c1401ae2ca8

Branch pushed to git repo; I updated commit sha1. New commits:

a295b79New name for QQ in singular.

comment:35 Changed 4 years ago by jpflori

  • Description modified (diff)
  • Status changed from new to needs_review
  • Summary changed from Upgrade Singular to version 4.1 to Upgrade Singular to version 4-1-0p1

The last failure seem to be a debug mode only one...

comment:36 Changed 4 years ago by jpflori

And the cfinite_sequence one as well...

comment:37 Changed 4 years ago by fbissey

That's some big patches...

comment:38 Changed 4 years ago by jpflori

Which ones? Maybe:

But that's just an upstream backport (ok not really needed by us... but I was playing with singular git and made the corresponding changes to the sage library, so it was easier to backport the patch, i.e. take the pristine upstream commit as a patch, and keep the changes to the sage lib rather than playing with git to revert the changes I mage to the sage library.)

comment:39 Changed 4 years ago by fbissey

Yes that one. Anyway I am running doctests right now.

comment:40 follow-up: Changed 4 years ago by fbissey

  • Status changed from needs_review to needs_work

I have doctests failures here:

sage -t --long src/sage/tests/cmdline.py  # 1 doctest failed
sage -t --long src/sage/rings/polynomial/multi_polynomial_ideal.py  # 2 doctests failed
sage -t --long src/sage/tests/french_book/mpoly.py  # 5 doctests failed

In order

sage -t --long src/sage/tests/cmdline.py
**********************************************************************
File "src/sage/tests/cmdline.py", line 558, in sage.tests.cmdline.test_executable
Failed example:
    err
Expected:
    ''
Got:
    'fgets() failed with errno 9\n'
**********************************************************************

not sure that one is singular. It reminds me of something I have seen before but I don't remember where.

sage -t --long src/sage/rings/polynomial/multi_polynomial_ideal.py
**********************************************************************
File "src/sage/rings/polynomial/multi_polynomial_ideal.py", line 1926, in sage.rings.polynomial.multi_polynomial_ideal.?.transformed_basis
Failed example:
    I.transformed_basis('gwalk')
Exception raised:
    Traceback (most recent call last):
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 498, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 861, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.rings.polynomial.multi_polynomial_ideal.?.transformed_basis[8]>", line 1, in <module>
        I.transformed_basis('gwalk')
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 295, in __call__
        return self.f(self._instance, *args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 2724, in wrapper
        return func(*args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/libs/singular/standard_options.py", line 140, in wrapper
        return func(*args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 1952, in transformed_basis
        gb = singular_function(algorithm)(I)
      File "sage/libs/singular/function.pyx", line 1323, in sage.libs.singular.function.SingularFunction.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:15163)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1505, in sage.libs.singular.function.call_function (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:17121)
        with opt_ctx: # we are preserving the global options state here
      File "sage/libs/singular/function.pyx", line 1507, in sage.libs.singular.function.call_function (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:17032)
        sig_on()
      File "src/cysignals/signals.pyx", line 109, in cysignals.signals.sig_raise_exception (build/src/cysignals/signals.c:1695)
    SignalError: Segmentation fault
**********************************************************************
File "src/sage/rings/polynomial/multi_polynomial_ideal.py", line 1986, in sage.rings.polynomial.multi_polynomial_ideal.?.elimination_ideal
Failed example:
    I.elimination_ideal([t,s])
Exception raised:
    Traceback (most recent call last):
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 498, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 861, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.rings.polynomial.multi_polynomial_ideal.?.elimination_ideal[2]>", line 1, in <module>
        I.elimination_ideal([t,s])
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/libs/singular/standard_options.py", line 140, in wrapper
        return func(*args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 2006, in elimination_ideal
        Is = MPolynomialIdeal(R,self.groebner_basis())
      File "sage/misc/cachefunc.pyx", line 2038, in sage.misc.cachefunc.CachedMethodCaller.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/misc/cachefunc.c:10792)
        w = self._instance_call(*args, **kwds)
      File "sage/misc/cachefunc.pyx", line 1914, in sage.misc.cachefunc.CachedMethodCaller._instance_call (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/misc/cachefunc.c:10238)
        return self.f(self._instance, *args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 3729, in groebner_basis
        gb = self._groebner_basis_libsingular("groebner", deg_bound=deg_bound, mult_bound=mult_bound, *args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/libs/singular/standard_options.py", line 140, in wrapper
        return func(*args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 541, in _groebner_basis_libsingular
        S = groebner(self)
      File "sage/libs/singular/function.pyx", line 1323, in sage.libs.singular.function.SingularFunction.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:15163)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1521, in sage.libs.singular.function.call_function (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:17280)
        raise RuntimeError("error in Singular function call %r:\n%s"%
    RuntimeError: error in Singular function call 'groebner':
    no ring active
**********************************************************************

and

sage -t --long src/sage/tests/french_book/mpoly.py
**********************************************************************
File "src/sage/tests/french_book/mpoly.py", line 165, in sage.tests.french_book.mpoly
Failed example:
    J.transformed_basis()
Exception raised:
    Traceback (most recent call last):
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 498, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 861, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.french_book.mpoly[41]>", line 1, in <module>
        J.transformed_basis()
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 295, in __call__
        return self.f(self._instance, *args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/interfaces/singular.py", line 2724, in wrapper
        return func(*args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/libs/singular/standard_options.py", line 140, in wrapper
        return func(*args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 1952, in transformed_basis
        gb = singular_function(algorithm)(I)
      File "sage/libs/singular/function.pyx", line 1323, in sage.libs.singular.function.SingularFunction.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:15163)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1505, in sage.libs.singular.function.call_function (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:17121)
        with opt_ctx: # we are preserving the global options state here
      File "sage/libs/singular/function.pyx", line 1507, in sage.libs.singular.function.call_function (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:17032)
        sig_on()
      File "src/cysignals/signals.pyx", line 109, in cysignals.signals.sig_raise_exception (build/src/cysignals/signals.c:1695)
    SignalError: Segmentation fault
**********************************************************************
File "src/sage/tests/french_book/mpoly.py", line 175, in sage.tests.french_book.mpoly
Failed example:
    ybar2 = R.quo(J)(y^2)
Exception raised:
    Traceback (most recent call last):
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 498, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 861, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.french_book.mpoly[44]>", line 1, in <module>
        ybar2 = R.quo(J)(y**Integer(2))
      File "sage/structure/parent.pyx", line 955, in sage.structure.parent.Parent.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/structure/parent.c:9852)
        return mor._call_(x)
      File "sage/structure/coerce_maps.pyx", line 110, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/structure/coerce_maps.c:4883)
        raise
      File "sage/structure/coerce_maps.pyx", line 105, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/structure/coerce_maps.c:4750)
        return C._element_constructor(x)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/quotient_ring.py", line 994, in _element_constructor_
        return self.element_class(self, x)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/quotient_ring_element.py", line 92, in __init__
        self._reduce_()
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/quotient_ring_element.py", line 111, in _reduce_
        self.__rep = I.reduce(self.__rep)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 3941, in reduce
        strat = self._groebner_strategy()
      File "sage/misc/cachefunc.pyx", line 2401, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/misc/cachefunc.c:13453)
        self.cache = f(self._instance)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 613, in _groebner_strategy
        return GroebnerStrategy(MPolynomialIdeal(self.ring(), self.groebner_basis()))
      File "sage/misc/cachefunc.pyx", line 2038, in sage.misc.cachefunc.CachedMethodCaller.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/misc/cachefunc.c:10792)
        w = self._instance_call(*args, **kwds)
      File "sage/misc/cachefunc.pyx", line 1914, in sage.misc.cachefunc.CachedMethodCaller._instance_call (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/misc/cachefunc.c:10238)
        return self.f(self._instance, *args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 3729, in groebner_basis
        gb = self._groebner_basis_libsingular("groebner", deg_bound=deg_bound, mult_bound=mult_bound, *args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/libs/singular/standard_options.py", line 140, in wrapper
        return func(*args, **kwds)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/rings/polynomial/multi_polynomial_ideal.py", line 541, in _groebner_basis_libsingular
        S = groebner(self)
      File "sage/libs/singular/function.pyx", line 1323, in sage.libs.singular.function.SingularFunction.__call__ (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:15163)
        return call_function(self, args, ring, interruptible, attributes)
      File "sage/libs/singular/function.pyx", line 1521, in sage.libs.singular.function.call_function (/home/fbissey/sandbox/git-fork/sage/src/build/cythonized/sage/libs/singular/function.cpp:17280)
        raise RuntimeError("error in Singular function call %r:\n%s"%
    RuntimeError: error in Singular function call 'groebner':
    no ring active
**********************************************************************
File "src/sage/tests/french_book/mpoly.py", line 176, in sage.tests.french_book.mpoly
Failed example:
    [ybar2^i for i in range(3)]
Exception raised:
    Traceback (most recent call last):
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 498, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 861, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.french_book.mpoly[45]>", line 1, in <module>
        [ybar2**i for i in range(Integer(3))]
    NameError: name 'ybar2' is not defined
**********************************************************************
File "src/sage/tests/french_book/mpoly.py", line 178, in sage.tests.french_book.mpoly
Failed example:
    ((ybar2 + 1)^2).lift()
Exception raised:
    Traceback (most recent call last):
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 498, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/home/fbissey/sandbox/git-fork/sage/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 861, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.tests.french_book.mpoly[46]>", line 1, in <module>
        ((ybar2 + Integer(1))**Integer(2)).lift()
    NameError: name 'ybar2' is not defined
**********************************************************************
File "src/sage/tests/french_book/mpoly.py", line 190, in sage.tests.french_book.mpoly
Failed example:
    (y^4).mod(J)
Expected:
    y^2 - 1/16
Got:
    // ** redefining i (ideal i=i_par; )
    // ** redefining Qideal (  ideal Qideal = ideal(P);      //defining the quotient ideal if P is a qring)
    // ** redefining BRlist (  list BRlist = ringlist(P);     //ringlist of basering)
    y^2 - 1/16
**********************************************************************

which is mostly related to the previous one.

comment:41 in reply to: ↑ 40 Changed 4 years ago by jpflori

Yes indeed, these files where outside my first test runs, except for the second one. I can reproduce them. Replying to fbissey:

I have doctests failures here:

sage -t --long src/sage/tests/cmdline.py  # 1 doctest failed

That must be the new singular fgets handling.

sage -t --long src/sage/rings/polynomial/multi_polynomial_ideal.py  # 2 doctests failed

Not sure how I missed that one.

sage -t --long src/sage/tests/french_book/mpoly.py  # 5 doctests failed

Hopefully that will be the same one as the previous one.

comment:42 Changed 4 years ago by git

  • Commit changed from a295b793b8c801453ce4f7c7dab85c1401ae2ca8 to b52c9a6bd876d4ff965e86fb80e3beb3e13ddcf6

Branch pushed to git repo; I updated commit sha1. New commits:

b52c9a6Upstream patch for GB over rings.

comment:43 Changed 4 years ago by git

  • Commit changed from b52c9a6bd876d4ff965e86fb80e3beb3e13ddcf6 to 37e926f8aec3cd8f64d2739cba81aecb163292f7

Branch pushed to git repo; I updated commit sha1. New commits:

37e926fGracefully handle closing of stdin in Singular.

comment:44 Changed 4 years ago by jpflori

  • Status changed from needs_work to needs_review

The GB errors were due to my patch for GB computation over rings being incomplete. Now upstream patch is used.

The cmdline error happened because Singular does not like its stdin to be closed. Added a patch for that.

comment:45 Changed 4 years ago by fbissey

I pulled the changes in the branch but the groebner patch had zero impact on multi_polynomial_ideal.py and the other doctest in the documentation. Still failing in the same way. Did you forget a bit?

comment:46 Changed 4 years ago by jpflori

  • Status changed from needs_review to needs_work

Hum yeah, I can now rereproduce it... Not sure of what happened yesterday.

comment:47 Changed 4 years ago by jpflori

I think I got what happened yesterday: if I build Singular in debug mode I get no segfault :)

comment:48 Changed 4 years ago by jpflori

Back to gdb then...

comment:49 Changed 4 years ago by git

  • Commit changed from 37e926f8aec3cd8f64d2739cba81aecb163292f7 to efc51cab4ebdeda909653c8a27f4f5a0f7abdcc2

Branch pushed to git repo; I updated commit sha1. New commits:

091462cRemove backported patch as it needs further patching...
efc51caRevert "Stronger C typing for Singular ring order."

comment:50 Changed 4 years ago by jpflori

Should be ok now. I reverted the backported patch for ringorder_t and the corresponding SAge changes as they are not necessary yet. And we would need https://github.com/Singular/Sources/commit/1ae67730fa57673e19cd4e827e43af59b10709c1 which does not apply as is to get rid the segfault introduced by the ringorder_t part.

comment:51 Changed 4 years ago by jpflori

  • Status changed from needs_work to needs_review

I running the whole test suite right now but feel free to do it as well.

comment:52 Changed 4 years ago by jhpalmieri

Works for me on OS X 10.12.

comment:53 Changed 4 years ago by fbissey

The previously failing doctests are now passing. I am just doing a full run to be sure.

comment:54 Changed 4 years ago by fbissey

  • Priority changed from major to blocker
  • Reviewers set to François Bissey
  • Status changed from needs_review to positive_review

Onward to the bots. Putting this as blocker as well.

comment:55 Changed 4 years ago by vbraun

  • Branch changed from public/singular410 to efc51cab4ebdeda909653c8a27f4f5a0f7abdcc2
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.