Differences between revisions 1 and 2
Revision 1 as of 2009-01-08 08:08:55
Size: 7812
Comment: move content from solaris/solaris/sage-3.0.5
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
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

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

Sage 3.0.5 on Solaris x86 (Fulvia)

Note: This page is outdated. Please check the 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 = (x2 + 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 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]