Status of Sage for Debian

6 views
Skip to first unread message

Timothy G Abbott

unread,
Jul 21, 2008, 10:44:46 PM7/21/08
to sage-...@googlegroups.com
I figured I'd give everyone an update on how things are going with the
Sage packages. I believe (but am not certain) that all of the Sage
dependencies that I want to get into Lenny will make it, though I'm still
waiting on final review for 5 of them that had copyright problems in the
past.

On the other hand, Debian is freezing everything starting in around 5 or 6
days. So, I need to have a presentable Sage package in the very near
future.

There are currently a few showstopper problems:

1) Sage 3.0.4 or 3.0.5 built with polybori 0.5rc fails to find
m4ri_build_all_codes and m4ri_destroy_all_codes. This is discussed in
<http://trac.sagemath.org/sage_trac/ticket/3264>.

Because this results in Sage not starting, I can't run tests against this
version to find other problems. So I built Sage against the polybori spkg
included in Sage (which has license problems that prevent me from using it
in Debian).

2) My current version of Sage 3.0.4 built with the 0.3.1 polybori spkg
included in Sage passes most doctests, though it fails a large number of
tests ending with a "Runtime Error" in
sage/matrix/matrix_integer_dense.pyx (error output below).

I'm guessing that linbox is totally not working. If you've seen a problem
like this before (I'm running the new linbox 1.1.6rc), let me know.

I would greatly appreciate any help debugging these issues. I can give
out ssh access to a test VM with either version of my Debian Sage package
installed on it if that would make debugging one of these problems easier.
However, the VM's host is very loaded and thus things are quite slow; thus
I suspect that (1) will be easier to debug using the patch attached to
#3264.

-Tim Abbott

File "/home/tabbott/.sage/tests/functional.py", line 604:
sage: minpoly(a)
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.5/doctest.py", line 1228, in __run
compileflags, 1) in test.globs
File "<doctest __main__.example_39[2]>", line 1, in <module>
minpoly(a)###line 604:
sage: minpoly(a)
File "/usr/lib/python2.5/site-packages/sage/misc/functional.py",
line 614, in minimal_polynomial
return x.minpoly(var=var)
File "matrix_integer_dense.pyx", line 910, in
sage.matrix.matrix_integer_dense.Matrix_integer_dense.minpoly
(sage/matrix/matrix_integer_dense.c:8321)
File "matrix_integer_dense.pyx", line 920, in
sage.matrix.matrix_integer_dense.Matrix_integer_dense._minpoly_linbox
(sage/matrix/matrix_integer_dense.c:8472)
RuntimeError

(line 920 is the return line of _minpoly_linbox).

(that was one of numerous lines of output from
sage -t devel/sage/sage/misc/functional.py)

Other test failures in matrix_integer_dense.pyx tend to also involve
_minpoly_linbox or _charpoly_linbox.

mabshoff

unread,
Jul 22, 2008, 11:26:56 AM7/22/08
to sage-devel
On Jul 21, 7:44 pm, Timothy G Abbott <tabb...@MIT.EDU> wrote:

Hi Tim,

> I figured I'd give everyone an update on how things are going with the
> Sage packages.  I believe (but am not certain) that all of the Sage
> dependencies that I want to get into Lenny will make it, though I'm still
> waiting on final review for 5 of them that had copyright problems in the
> past.
>
> On the other hand, Debian is freezing everything starting in around 5 or 6
> days.  So, I need to have a presentable Sage package in the very near
> future.
>
> There are currently a few showstopper problems:
>
> 1) Sage 3.0.4 or 3.0.5 built with polybori 0.5rc fails to find
> m4ri_build_all_codes and m4ri_destroy_all_codes.  This is discussed in
> <http://trac.sagemath.org/sage_trac/ticket/3264>.
>
> Because this results in Sage not starting, I can't run tests against this
> version to find other problems.  So I built Sage against the polybori spkg
> included in Sage (which has license problems that prevent me from using it
> in Debian).

Martin, Michael B. and I talked about this issue and we are confident
we can resolve the problem. The polybori.spkg you linked from the
ticket seems to have some problems, but I will look into them
hopefully tomorrow.

> 2) My current version of Sage 3.0.4 built with the 0.3.1 polybori spkg
> included in Sage passes most doctests, though it fails a large number of
> tests ending with a "Runtime Error" in
> sage/matrix/matrix_integer_dense.pyx (error output below).
>
> I'm guessing that linbox is totally not working.  If you've seen a problem
> like this before (I'm running the new linbox 1.1.6rc), let me know.
>
> I would greatly appreciate any help debugging these issues.  I can give
> out ssh access to a test VM with either version of my Debian Sage package
> installed on it if that would make debugging one of these problems easier.
> However, the VM's host is very loaded and thus things are quite slow; thus
> I suspect that (1) will be easier to debug using the patch attached to
> #3264.

Hm, any chance you can get me logged into a box with that problem once
the PolyBoRi issue has been taken care off. It does not ring a bell.

I also wanted to let you know that we had to patch LinBox 1.1.6.rc0
slightly since it produced wrong results form charpoly mod p. You need
to apply a one line patch to fix the issue - see #3671. I do not know
if Clement plans to do an 1.1.6rc1 release of Linbox or not.

>         -Tim Abbott

Cheers,

Michael

<SNIP>

Timothy G Abbott

unread,
Jul 22, 2008, 5:26:40 PM7/22/08
to sage-devel
On Tue, 22 Jul 2008, mabshoff wrote:

>
> On Jul 21, 7:44 pm, Timothy G Abbott <tabb...@MIT.EDU> wrote:
>> 1) Sage 3.0.4 or 3.0.5 built with polybori 0.5rc fails to find
>> m4ri_build_all_codes and m4ri_destroy_all_codes.  This is discussed in
>> <http://trac.sagemath.org/sage_trac/ticket/3264>.
>>
>> Because this results in Sage not starting, I can't run tests against this
>> version to find other problems.  So I built Sage against the polybori spkg
>> included in Sage (which has license problems that prevent me from using it
>> in Debian).
>
> Martin, Michael B. and I talked about this issue and we are confident
> we can resolve the problem. The polybori.spkg you linked from the
> ticket seems to have some problems, but I will look into them
> hopefully tomorrow.

Thanks to that effort, the polybori 0.5 problem seems to be solved.

>> 2) My current version of Sage 3.0.4 built with the 0.3.1 polybori spkg
>> included in Sage passes most doctests, though it fails a large number of
>> tests ending with a "Runtime Error" in
>> sage/matrix/matrix_integer_dense.pyx (error output below).
>>
>> I'm guessing that linbox is totally not working.  If you've seen a problem
>> like this before (I'm running the new linbox 1.1.6rc), let me know.
>>
>> I would greatly appreciate any help debugging these issues.  I can give
>> out ssh access to a test VM with either version of my Debian Sage package
>> installed on it if that would make debugging one of these problems easier.
>> However, the VM's host is very loaded and thus things are quite slow; thus
>> I suspect that (1) will be easier to debug using the patch attached to
>> #3264.
>
> Hm, any chance you can get me logged into a box with that problem once
> the PolyBoRi issue has been taken care off. It does not ring a bell.

Sure. I'll send you a separate email with relevant instructions.

> I also wanted to let you know that we had to patch LinBox 1.1.6.rc0
> slightly since it produced wrong results form charpoly mod p. You need
> to apply a one line patch to fix the issue - see #3671. I do not know
> if Clement plans to do an 1.1.6rc1 release of Linbox or not.

There seems to be one additional nasty problem: When one runs "sage" on
the command line, it just displays the banner and immediately quits. (I
was seeing this on the version with the old polybori as well, but was
hoping it would disappear).

Oddly, doctests work normally and, I can run "sage -sh" and then run
python and import Sage libraries and run tests and it all works. So,
something is weird here. I dug into the various sage scripts to see where
control was ending, and found that it seemed to be making it into the
"sage.mainloop" line of sage-ipython.

$ sage
----------------------------------------------------------------------
| SAGE Version 3.0.5, Release Date: 2008-07-11 |
| Type notebook() for the GUI, and license() for information. |
----------------------------------------------------------------------

$

-Tim Abbott

Timothy G Abbott

unread,
Jul 24, 2008, 2:56:52 PM7/24/08
to sage-devel
On Tue, 22 Jul 2008, Timothy G Abbott wrote:

> There seems to be one additional nasty problem: When one runs "sage" on
> the command line, it just displays the banner and immediately quits. (I
> was seeing this on the version with the old polybori as well, but was
> hoping it would disappear).
>
> Oddly, doctests work normally and, I can run "sage -sh" and then run
> python and import Sage libraries and run tests and it all works. So,
> something is weird here. I dug into the various sage scripts to see where
> control was ending, and found that it seemed to be making it into the
> "sage.mainloop" line of sage-ipython.

This is apparently caused by Debian's ipython being 0.8.4, ahead of Sage's
0.8.0. Fortunately, Mike Hansen already figured out what to do for this
update; I grabbed the patches from Trac #3659, which fixed the problem.

-Tim Abbott


Timothy G Abbott

unread,
Jul 25, 2008, 5:08:17 PM7/25/08
to sage-...@googlegroups.com
On Mon, 21 Jul 2008, Timothy G Abbott wrote:

> 2) My current version of Sage 3.0.4 built with the 0.3.1 polybori spkg
> included in Sage passes most doctests, though it fails a large number of
> tests ending with a "Runtime Error" in
> sage/matrix/matrix_integer_dense.pyx (error output below).

Well, it's now Sage 3.0.5 and the Debian polybori package, but the problem
remains.

I noticed that linbox was not using CBLAS, apparently because my linbox
Debian package was missing a dependency on liblapack-dev. But fixing that
does not seem to affect this problem.

I also noticed that the Linbox configure script is failing in its test for
the best threshold for Strassen-Winograd matrix multiplication (config.log
output below). One possible explananation is that I have gmp 4.2.2, while
Sage is expecting gmp 4.2.1; there is a substantial amount of stuff that's
in the stock gmp 4.2.1 gmpxx.h that's not in the stock 4.2.2 gmpxx.h (diff
attached, in case it is useful).

I read that there are have been issues updating Sage to gmp 4.2.2, but
this seems I'm having substantially more significant issues, so maybe this
isn't the real problem.

-Tim Abbott

configure:25087: checking best threshold for Strassen-Winograd matrix multiplication
configure:25217: g++ -o conftest -g -O2 -g -Wall -O2 -I/home/tabbott/linbox-1.1.6~rc0 -I/home/tabbott/linbox-1.1.6~rc0/linbox -D__LINBOX_HAVE_CBLAS conftest.cpp -llapack -lcblas -latlas -lgmp -lgmpxx >&5
/tmp/ccjSOiiI.o: In function `Modular':
/home/tabbott/linbox-1.1.6~rc0/linbox/field/modular-double.h:90: undefined reference to `Integer::operator double() const'
/tmp/ccjSOiiI.o: In function `LinBox::UnparametricField<double>::init(double&, Integer const&) const':
/home/tabbott/linbox-1.1.6~rc0/linbox/field/unparametric.h:120: undefined reference to `Integer::operator long() const'
/home/tabbott/linbox-1.1.6~rc0/linbox/field/unparametric.h:120: undefined reference to `Integer::operator long() const'
/tmp/ccjSOiiI.o: In function `operator==':
/usr/include/gmp++/gmp++_int.inl:110: undefined reference to `Integer::operator!=(int) const'
/tmp/ccjSOiiI.o: In function `operator-':
/usr/include/gmp++/gmp++_int.inl:217: undefined reference to `Integer::operator-(long) const'
/tmp/ccjSOiiI.o: In function `computeFactor<LinBox::Modular<double> >':
/home/tabbott/linbox-1.1.6~rc0/linbox/fflas/fflas_bounds.inl:131: undefined reference to `Integer::operator double() const'
/tmp/ccjSOiiI.o: In function `operator-':
/usr/include/gmp++/gmp++_int.inl:217: undefined reference to `Integer::operator-(long) const'
/tmp/ccjSOiiI.o: In function `unsigned int LinBox::FFLAS::DotProdBound<LinBox::Modular<double> >(LinBox::Modular<double> const&, unsigned int, LinBox::Modular<double>::Element const&, LinBox::FFLAS::FFLAS_BASE)':
/home/tabbott/linbox-1.1.6~rc0/linbox/fflas/fflas_bounds.inl:107: undefined reference to `Integer::operator double() const'
/tmp/ccjSOiiI.o: In function `operator==':
/usr/include/gmp++/gmp++_int.inl:110: undefined reference to `Integer::operator!=(int) const'
/usr/include/gmp++/gmp++_int.inl:110: undefined reference to `Integer::operator!=(int) const'
/tmp/ccjSOiiI.o: In function `pow':
/usr/include/gmp++/gmp++_int.h:282: undefined reference to `pow(Integer const&, unsigned long)'
/tmp/ccjSOiiI.o: In function `pow':
/home/tabbott/linbox-1.1.6~rc0/linbox/fflas/fflas_fgemm.inl:409: undefined reference to `pow(Integer const&, unsigned long)'
/tmp/ccjSOiiI.o: In function `operator==':
/usr/include/gmp++/gmp++_int.inl:110: undefined reference to `Integer::operator!=(int) const'
/tmp/ccjSOiiI.o: In function `pow':
/usr/include/gmp++/gmp++_int.h:282: undefined reference to `pow(Integer const&, unsigned long)'
collect2: ld returned 1 exit status
configure:25220: $? = 1
configure: program exited with status 1
configure: failed program was:
...

gmpxx.h.diff

François Bissey

unread,
Jul 25, 2008, 8:23:45 PM7/25/08
to sage-...@googlegroups.com
On Sat, 26 Jul 2008, Timothy G Abbott wrote:
> On Mon, 21 Jul 2008, Timothy G Abbott wrote:
> > 2) My current version of Sage 3.0.4 built with the 0.3.1 polybori spkg
> > included in Sage passes most doctests, though it fails a large number of
> > tests ending with a "Runtime Error" in
> > sage/matrix/matrix_integer_dense.pyx (error output below).
>
> Well, it's now Sage 3.0.5 and the Debian polybori package, but the problem
> remains.
>
> I noticed that linbox was not using CBLAS, apparently because my linbox
> Debian package was missing a dependency on liblapack-dev. But fixing that
> does not seem to affect this problem.
>
> I also noticed that the Linbox configure script is failing in its test for
> the best threshold for Strassen-Winograd matrix multiplication (config.log
> output below). One possible explananation is that I have gmp 4.2.2, while
> Sage is expecting gmp 4.2.1; there is a substantial amount of stuff that's
> in the stock gmp 4.2.1 gmpxx.h that's not in the stock 4.2.2 gmpxx.h (diff
> attached, in case it is useful).
>
> I read that there are have been issues updating Sage to gmp 4.2.2, but
> this seems I'm having substantially more significant issues, so maybe this
> isn't the real problem.
>
If this is the optimization tuning, I have already sent a message to Clement
about it. It is apparently fixed in CVS. On my system it is not fatal, and I
believe it happens in the standard dpkg as well.

Francois

Timothy G Abbott

unread,
Jul 25, 2008, 8:26:32 PM7/25/08
to sage-...@googlegroups.com

Yes, it is. So I guess this is probably not what is broken.

-Tim Abbott

Timothy G Abbott

unread,
Jul 26, 2008, 5:24:55 AM7/26/08
to sage-...@googlegroups.com
On Fri, 25 Jul 2008, Timothy G Abbott wrote:

> On Sat, 26 Jul 2008, François Bissey wrote:
>
>>
>> On Sat, 26 Jul 2008, Timothy G Abbott wrote:
>>> On Mon, 21 Jul 2008, Timothy G Abbott wrote:
>>>> 2) My current version of Sage 3.0.4 built with the 0.3.1 polybori spkg
>>>> included in Sage passes most doctests, though it fails a large number of
>>>> tests ending with a "Runtime Error" in
>>>> sage/matrix/matrix_integer_dense.pyx (error output below).
>>>
>>> Well, it's now Sage 3.0.5 and the Debian polybori package, but the problem
>>> remains.
>>>
>>> I noticed that linbox was not using CBLAS, apparently because my linbox
>>> Debian package was missing a dependency on liblapack-dev. But fixing that
>>> does not seem to affect this problem.
>>>
>>> I also noticed that the Linbox configure script is failing in its test for
>>> the best threshold for Strassen-Winograd matrix multiplication (config.log
>>> output below). One possible explananation is that I have gmp 4.2.2, while
>>> Sage is expecting gmp 4.2.1; there is a substantial amount of stuff that's
>>> in the stock gmp 4.2.1 gmpxx.h that's not in the stock 4.2.2 gmpxx.h (diff
>>> attached, in case it is useful).
>>>
>>> I read that there are have been issues updating Sage to gmp 4.2.2, but
>>> this seems I'm having substantially more significant issues, so maybe this
>>> isn't the real problem.

It turns out this LinBox issue is resolved by applying the Sage
commentator patch. I had ignored the Sage LinBox patch called
commentatorOSX10.4.patch when preparing my LinBox package for Debian, but
it seems that the commentator breaks things in my Debian build as well.

The functions that were failing were basically the linbox versions of
charpoly, minpoly, and rank.

-Tim Abbott

Reply all
Reply to author
Forward
0 new messages