Differences between revisions 2 and 3
Revision 2 as of 2009-02-05 11:15:46
Size: 7936
Comment: add a note about this page being outdated and refer back to the main Solaris porting page
Revision 3 as of 2022-04-05 02:15:00
Size: 0
Editor: mkoeppe
Comment: outdated
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Sage 3.0.5 on Solaris x86 (Fulvia) =

'''Note''': This page is outdated. Please check the [[solaris|main Solaris bit porting page]] for the current status.

== Executive summary ==
 * using custom toolchain due to binutils bug and preference for gas when building gcc
 * cvxopt does not compile
 * sympow does not compile with gcc, builds with cc, but is broken
 * 12 spkgs need build fixes, most of those are low impact and will be merged in 3.0.6/3.0.x
 * 41 doctests fail, analyzing issues right now
== Build Issues with Sage 3.0.5 on Solaris x86 ==
== Doctest Issues with Sage 3.0.5 on Solaris x86 ==
 * sage -t devel/sage/sage/calculus/calculus.py [this is hard to reproduce, happens 1 out of 6 times or so]
{{{
File "/home/mabshoff/sage-3.0.5-x86-solaris/tmp/calculus.py", line 2394:
    sage: integral(x^n,x)
Expected:
    Traceback (most recent call last):
    ...
    TypeError: Computation failed since Maxima requested additional constraints (use assume):
    Is n+1 zero or nonzero?
Got:
    Maxima crashed -- automatically restarting.
}}}
 * sage -t devel/sage/sage/combinat/schubert_polynomial.py [symmetrica failure]
{{{
a.divided_difference([3,2,1]) leads to
    X[1]
function: nullp(1)
enter a to abort with core dump, g to go, f to supress
s to supress further error text, r to retry, e to explain, else stop
ERROR: empty object as parameter?:
            sage: X = SchubertPolynomialRing(ZZ)
            sage: a = X([3,2,1])
            sage: a.divided_difference(1)
            X[2, 3, 1]
            sage: a.divided_difference([3,2,1])
            X[1]
}}}
But we get the correct result by going on:

{{{
sage: X = SchubertPolynomialRing(ZZ)
sage: a = X([3,2,1])
sage: a.divided_difference([3,2,1])
function: nullp(1)
enter a to abort with core dump, g to go, f to supress
s to supress further error text, r to retry, e to explain, else stop
ERROR: empty object as parameter?: g
function: nullp code: -1
enter a to abort with core dump, g to go, f to supress
s to supress further error text, r to retry, e to explain, else stop
ERROR: error during computation?: g
function: rz_lehmercode code: 141482880
enter a to abort with core dump, g to go, f to supress
s to supress further error text, r to retry, e to explain, else stop
ERROR: error during computation?: g
function: rz_perm code: 141482880
enter a to abort with core dump, g to go, f to supress
s to supress further error text, r to retry, e to explain, else stop
ERROR: error during computation?: g
function: divdiff_perm_schubert code: 141482880
enter a to abort with core dump, g to go, f to supress
s to supress further error text, r to retry, e to explain, else stop
ERROR: error during computation?: g
X[3, 2, 1]
}}}
 * sage -t devel/sage/sage/crypto/mq/mpolynomialsystem.py
 * sage -t devel/sage/sage/crypto/mq/sr.py
 * sage -t devel/sage/sage/functions/transcendental.py [segfault]
{{{
Ei(10)
*boom*
}}}
 * sage -t devel/sage/sage/interfaces/singular.py
 * sage -t devel/sage/sage/lfunctions/sympow.py [sympow broken]
 * sage -t devel/sage/sage/libs/pari/gen.pyx
 * sage -t devel/sage/sage/libs/symmetrica/sb.pxi [symmetrica failure - see above]
 * sage -t devel/sage/sage/libs/symmetrica/sc.pxi [symmetrica failure - see above]
 * sage -t devel/sage/sage/matrix/matrix0.pyx
 * sage -t devel/sage/sage/matrix/matrix2.pyx
 * sage -t devel/sage/sage/matrix/matrix_complex_double_dense.pyx
 * sage -t devel/sage/sage/matrix/matrix_sparse.pyx
 * sage -t devel/sage/sage/modular/abvar/abvar.py
 * sage -t devel/sage/sage/modular/modform/ambient.py
 * sage -t devel/sage/sage/modular/modform/numerical.py
 * sage -t devel/sage/sage/modular/modsym/modsym.py
 * sage -t devel/sage/sage/modular/ssmod/ssmod.py
 * sage -t devel/sage/sage/modules/free_module.py
 * sage -t devel/sage/sage/modules/quotient_module.py
 * sage -t devel/sage/sage/numerical/optimize.py [cvxopt is busted on Solaris with gcc]
 * sage -t devel/sage/sage/numerical/test.py [cvxopt is busted on Solaris with gcc]
 * sage -t devel/sage/sage/rings/number_field/number_field.py [doctest segfaults]
{{{
sage: k.<a> = NumberField(x^3 - 2)
sage: k
Number Field in a with defining polynomial x^3 - 2
sage: abs(k)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/home/mabshoff/sage-3.0.5-x86-solaris/<ipython console> in <module>()
TypeError: bad operand type for abs(): 'NumberField_absolute'
sage:
}}}
 * sage -t devel/sage/sage/rings/number_field/number_field_element.pyx [same segfault as above]
 * sage -t devel/sage/sage/rings/number_field/number_field_ideal.py [two doctests failed, looks potentially Givaro related]
 * sage -t devel/sage/sage/rings/number_field/order.py: OK.residue_field(P) fails - givaro related?
 * sage -t devel/sage/sage/rings/polynomial/complex_roots.py [segfault]:
{{{
sage: x = polygen(ZZ)
sage: (x^5 - x - 1).roots(ring=CIF)
*boom*
}}}
This is likely numpy.

 * sage -t devel/sage/sage/rings/polynomial/multi_polynomial_element.py: k.factor() is broken as well as mv gcd hangs
 * sage -t devel/sage/sage/rings/polynomial/multi_polynomial_ideal.py [pexpect with Singular]
 * sage -t devel/sage/sage/rings/polynomial/polynomial_element.pyx [segfault]: f.factor() for f = (x^2 + 2*i)^3 fails
 * sage -t devel/sage/sage/rings/polynomial/polynomial_modn_dense_ntl.pyx: Kbar = f.small_roots()[0] fails - libfplll reports return value != 0 - might be matrix[12].pyx related
 * sage -t devel/sage/sage/rings/polynomial/polynomial_quotient_ring_element.py: a.charpoly('X') broken
 * sage -t devel/sage/sage/rings/polynomial/polynomial_singular_interface.py [pexpect with Singular]
 * sage -t devel/sage/sage/rings/polynomial/term_order.py [pexpect with Singular]
 * sage -t devel/sage/sage/rings/polynomial/toy_buchberger.py [pexpect with Singular]
 * sage -t devel/sage/sage/rings/complex_double.pyx [nan vs. NAN]
 * sage -t devel/sage/sage/rings/qqbar.py [segfault]
{{{
from sage.rings.qqbar import ANRoot
x = polygen(QQbar)
intv = CIF(RIF(0, 1), RIF(0.1, 1))
rt = ANRoot(x^5 - 1, intv)
*boom*
}}}
gdb says:

{{{
----------------------------------------------------------------------
| SAGE Version 3.0.5, Release Date: 2008-07-11 |
| Type notebook() for the GUI, and license() for information. |
----------------------------------------------------------------------
sage: from sage.rings.qqbar import ANRoot
sage: x = polygen(QQbar)
sage: intv = CIF(RIF(0, 1), RIF(0.1, 1))
sage: rt = ANRoot(x^5 - 1, intv)
Program received signal SIGSEGV, Segmentation fault.
0xfed622b3 in csqrt () from /lib/libm.so.2
(gdb) bt
#0 0xfed622b3 in csqrt () from /lib/libm.so.2
#1 0xfa2c335a in ?? ()
#2 0x00000000 in ?? ()
Probably a numpy problem according to cwitty.
}}}
With Mike Hanson's help we can reproduce this in pure numpy:

{{{
-bash-3.00$ ./sage -python
Python 2.5.2 (r252:60911, Jul 14 2008, 15:20:38)
[GCC 4.2.4] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> from numpy import *
>>> a = array([1,0,0,0,0,-1],dtype=complex)
array([ 1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, -1.+0.j])
>>> roots(a)
/home/mabshoff/sage-3.0.5-x86-solaris/local/bin/sage-sage: line 359: 20900 Segmentation Fault (core dumped) python "$@"
}}}
And it is still broken in numpy 1.2.rc1 - see [[http://projects.scipy.org/pipermail/numpy-discussion/2008-September/037586.html|this thread]] on the numpy discussion list
 * sage -t devel/sage/sage/rings/real_double.pyx [nan vs. NAN]
 * sage -t devel/sage/sage/rings/residue_field.pyx [padic det is broken]
 * sage -t devel/sage/sage/schemes/elliptic_curves/ell_rational_field.py [E.analytic_rank(algorithm='sympow') does not work due to sympow]