Differences between revisions 5 and 6
Revision 5 as of 2009-01-07 01:28:18
Size: 7956
Comment: more sagelib and misc build issues with tachyon, flintqs and cvxopt
Revision 6 as of 2009-01-07 02:14:43
Size: 11595
Comment: add list of doctest failures
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
The notebook doesn't work unless ctypes are manually build. This is a bug in Python 2.5.2. Need to check Python 2.5.4 and 2.6.1 as well as 3.0 for workarounds.
Line 200: Line 201:


== Doctest Failures ==

41 Doctest failures, but many are easily fiaxable:
{{{
 sage -t devel/sage/sage/calculus/wester.py # 3 doctests failed
 sage -t devel/sage/sage/calculus/calculus.py # 0 doctests failed
 sage -t devel/sage/sage/crypto/mq/sr.py # Segfault
 sage -t devel/sage/sage/finance/time_series.pyx # 5 doctests failed
 sage -t devel/sage/sage/functions/special.py # 5 doctests failed
 sage -t devel/sage/sage/functions/transcendental.py # 5 doctests failed
 sage -t devel/sage/sage/groups/generic.py # Segfault
 sage -t devel/sage/sage/interfaces/expect.py # 11 doctests failed
 sage -t devel/sage/sage/interfaces/lisp.py # 4 doctests failed
 sage -t devel/sage/sage/interfaces/qsieve.py # 7 doctests failed
 sage -t devel/sage/sage/interfaces/r.py # 176 doctests failed
 sage -t devel/sage/sage/libs/pari/gen.pyx # 2 doctests failed
 sage -t devel/sage/sage/modular/congroup.py # 14 doctests failed
 sage -t devel/sage/sage/modular/cusps.py # 1 doctests failed
 sage -t devel/sage/sage/modular/modsym/ambient.py # 4 doctests failed
 sage -t devel/sage/sage/modular/modsym/boundary.py # 2 doctests failed
 sage -t devel/sage/sage/modules/vector_double_dense.pyx # 12 doctests failed
 sage -t devel/sage/sage/modules/vector_real_double_dense.pyx # 1 doctests failed
 sage -t devel/sage/sage/numerical/test.py # 5 doctests failed
 sage -t devel/sage/sage/numerical/optimize.py # 4 doctests failed
 sage -t devel/sage/sage/plot/plot3d/list_plot3d.py # 6 doctests failed
 sage -t devel/sage/sage/rings/arith.py # 3 doctests failed
 sage -t devel/sage/sage/rings/integer.pyx # 4 doctests failed
 sage -t devel/sage/sage/rings/polynomial/laurent_polynomial.pyx # Segfault
 sage -t devel/sage/sage/rings/polynomial/multi_polynomial.pyx # Segfault
 sage -t devel/sage/sage/rings/polynomial/multi_polynomial_element.py # Segfault
 sage -t devel/sage/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx # Segfault
 sage -t devel/sage/sage/rings/polynomial/multi_polynomial_ideal.py # 1 doctests failed
 sage -t devel/sage/sage/rings/polynomial/multi_polynomial_libsingular.pyx # Segfault
 sage -t devel/sage/sage/rings/polynomial/toy_buchberger.py # Segfault
 sage -t devel/sage/sage/rings/polynomial/toy_d_basis.py # 2 doctests failed
 sage -t devel/sage/sage/schemes/elliptic_curves/ell_generic.py # Segfault
 sage -t devel/sage/sage/schemes/elliptic_curves/ell_finite_field.py # Segfault
 sage -t devel/sage/sage/schemes/elliptic_curves/ell_number_field.py # Segfault
 sage -t devel/sage/sage/schemes/elliptic_curves/ell_point.py # Segfault
 sage -t devel/sage/sage/schemes/generic/affine_space.py # Segfault
 sage -t devel/sage/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py # Segfault
 sage -t devel/sage/sage/stats/r.py # 1 doctests failed
 sage -t devel/sage/sage/stats/test.py # 1 doctests failed
 sage -t devel/sage/sage/tests/book_stein_modform.py # 4 doctests failed
 sage -t devel/sage/sage/tests/book_stein_ent.py # 3 doctests failed
}}}
Reasons for failures:

 * different gmp, i.e. eMPIRe, accounts for 10 failures
 * various failures are due to SciPy, this is fixable by setting CFLAGS in various extension properly
 * the missing compoenents also cause failures
 * sympow is not working and causes trouble
 * Singular does double frees at exit on occasion due to the use of system malloc, a patch to work around those has been done
 

Sage 64 bit OSX 64 bit build notes for Sage 3.2.3

Notes

The notebook doesn't work unless ctypes are manually build. This is a bug in Python 2.5.2. Need to check Python 2.5.4 and 2.6.1 as well as 3.0 for workarounds.

fortran.spkg

Use OSX-gfortran.spkg (coming soon) which is a repackaged Gfortran 4.2.3 by the R people. It is quad universal.

Make local/bin/sage_fortran like

gfortran -m64 "$@"

Make sure to chmod 755 and extend DYLD_LIBRARY_PATH to include the Fortran runtime - maybe in toolchain?

gmp

use eMPIRe

Python

ctypes broken, use the old workaround, but also look at 2.5.4 and 2.6.1 for potential solutions

atlas

The following error pops up, but it is harmless:

/bin/sh: /Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/bin/which_fortran: No such file or directory

It should still be fixed.

pynac

No OSX64 bit support yet - an unclean version that builds would be:

diff -r 56d7250fb1dc spkg-install
--- a/spkg-install      Wed Oct 15 10:32:53 2008 +0200
+++ b/spkg-install      Tue Jan 06 13:40:13 2009 -0800
@@ -22,8 +22,10 @@
 build_pynac()
 {
     cd ${PYNACDIR}
-    CPPFLAGS=-I"$SAGE_LOCAL"/include/python2.5 PKG_CONFIG_PATH=${SAGE_LOCAL}/lib/pkgconfig ./configure --disable-static --prefix=${SAGE_LOCAL}
-    CPPFLAGS=-I"$SAGE_LOCAL"/include/python2.5 $MAKE
+    LDFLAGS="-m64"; export LDFLAGS [needs to be 64 bit OSX specific] 
+    PKG_CONFIG_PATH="$SAGE_LOCAL"/lib/pkgconfig/: export PKG_CONFIG_PATH
+    CPPFLAGS="-m64 -I\"$SAGE_LOCAL\"/include/python2.5" ./configure --disable-static --prefix=${SAGE_LOCAL}
+    CPPFLAGS="-m64 -I\"$SAGE_LOCAL\"/include/python2.5" $MAKE
     if [ $? -ne 0 ]; then
         echo "Error building pynac."
         exit 1

r

libpng trouble since the build with a dynamic libpng was fixed recently:

Error in dyn.load(file, ...) : 
  unable to load shared library '/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/spkg/build/r-2.6.1.p21/src/library/grDevices/libs/grDevices.so':
  dlopen(/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/spkg/build/r-2.6.1.p21/src/library/grDevices/libs/grDevices.so, 6): Symbol not found: __cg_png_create_info_struct
  Referenced from: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework/Versions/A/ImageIO
  Expected in: /Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/lib//libPng.dylib
Calls: <Anonymous> ... namespaceImport -> loadNamespace -> library.dynam -> dyn.load
Execution halted

Analog fix like the one for 32 bit via LD_FLAGS

sagelib

sage -b: devel/sage/c_lib/SConstruct

## We want the debug and optimization flags, since debug symbols are so useful, etc.
env.Append( CFLAGS="-O2 -g -m64" )
env.Append( CXXFLAGS="-O2 -g -m64" )

The above fix needs to be dependent on SAGE64 being set. CXXFLAGS should have -g added, too.

Another problem is that the Sage's libsage.dylib is linked without -m64 - setting LDFLAGS in SConstruct does not fix the problem:

libcsage.dylib:                 Mach-O dynamically linked shared library i386

Building manually works around the problem for now.

Another problem is that the memory.pyx extension needs to be linked against libcsage:

--- a/module_list.py    Mon Jan 05 23:03:45 2009 -0800
+++ b/module_list.py    Tue Jan 06 17:13:03 2009 -0800
@@ -854,7 +854,7 @@
 
     Extension('sage.rings.memory',
               sources = ['sage/rings/memory.pyx'],
-              libraries=['gmp','stdc++']),
+              libraries=['csage','ntl','gmp','stdc++']),
 
     Extension('sage.rings.morphism',
               sources = ['sage/rings/morphism.pyx']),

Otherwise Sage starts up, but doctesting fails always with

sage -t  "devel/sage/sage/rings/complex_interval_field.py"  
Traceback (most recent call last):
  File "/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/tmp/complex_interval_field.py", line 2, in <module>
    from sage.all_cmdline import *; 
  File "/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/lib/python2.5/site-packages/sage/all_cmdline.py", line 14, in <module>
    from sage.all import *
  File "/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/lib/python2.5/site-packages/sage/all.py", line 56, in <module>
    from sage.rings.memory import pmem_malloc
ImportError: dlopen(/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/lib/python2.5/site-packages/sage/rings/memory.so, 2): Symbol not found: _rand_n
  Referenced from: /Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/lib/python2.5/site-packages/sage/rings/memory.so
  Expected in: dynamic lookup

Similar linker fixes are needed for Cygwin

ghmm

ghmm is build 32 bits only

libghmm.1.0.0.dylib:            Mach-O dynamically linked shared library i386
libghmm.1.dylib:                Mach-O dynamically linked shared library i386
libghmm.dylib:                  Mach-O dynamically linked shared library i386

Quick and ugly hack, needs SAGE64 specific cleanup:

Sprocketer:ghmm-20080813 michaelabshoff$ hg diff
diff -r 9d3e399ae771 spkg-install
--- a/spkg-install      Sun Aug 03 18:34:26 2008 -0700
+++ b/spkg-install      Tue Jan 06 15:31:08 2009 -0800
@@ -7,6 +7,9 @@
 # this does *NOT* work.  First the configure.in script is hardcoded to
 # ignore that option.  Second, if you change that then it turns out
 # that ghmm doesn't even compile.
+
+export CFLAGS="-O2 -g -m64"
+export LDFLAGS="-m64"
 
 ./configure --prefix="$SAGE_LOCAL" 

singular

We need to enable system malloc for MacIntel since it is only chosen pre default for MacPPC. The ugly hack below needs to be cleaned up:

diff -r 0e3b296b487a spkg-install
--- a/spkg-install      Sun Nov 30 23:10:51 2008 -0800
+++ b/spkg-install      Tue Jan 06 16:46:38 2009 -0800
@@ -116,7 +116,8 @@
                 --enable-IntegerProgramming \
                 --disable-doc  \
                 "$DYNAMIC_KERNEL" \
-               "$ENABLE_DEBUG"
+               "$ENABLE_DEBUG" \
+               --with-malloc=system
 
     if [ $? -ne 0 ]; then
         echo "Unable to configure Singular."

But at exit we are having problems with double frees:

Sprocketer:sage-3.2.3-64bit michaelabshoff$ ./sage
----------------------------------------------------------------------
| Sage Version 3.2.3, Release Date: 2009-01-05                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: import sys
sage: sys.maxint
9223372036854775807
sage: !uname
Darwin
sage: 
Exiting SAGE (CPU time 0m0.07s, Wall time 0m13.65s).
sage.bin(162) malloc: *** error for object 0x106592030: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
sage.bin(162) malloc: *** error for object 0x106592038: Non-aligned pointer being freed
*** set a breakpoint in malloc_error_break to debug
sage.bin(162) malloc: *** error for object 0x106591048: Non-aligned pointer being freed
*** set a breakpoint in malloc_error_break to debug
sage.bin(162) malloc: *** error for object 0x106591030: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
Sprocketer:sage-3.2.3-64bit michaelabshoff$ ./sage

These also happen on Cygwin, so this needs to be investigated and fixed.

tachyon

Fails due to 64 bit build problems - known problem with ticket

flintqs

Fails due to 64 bit build problems - known problem with ticket

cvxopt

Linker trouble - no clue why yet.

gcc -m64 -L/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/lib -bundle 
-undefined dynamic_lookup build/temp.macosx-10.3-i386-2.5/C/base.o build/temp.macosx-10.3-i386-2.5/C/dense.o 
build/temp.macosx-10.3-i386-2.5/C/sparse.o -L/Users/michaelabshoff/Desktop/sage-3.2.3-64bit/local/lib -lm -llapack 
-lblas -lgfortran -o build/lib.macosx-10.3-i386-2.5/cvxopt/base.so
ld: library not found for -lgfortran
collect2: ld returned 1 exit status

Doctest Failures

41 Doctest failures, but many are easily fiaxable:

        sage -t  devel/sage/sage/calculus/wester.py # 3 doctests failed
        sage -t  devel/sage/sage/calculus/calculus.py # 0 doctests failed
        sage -t  devel/sage/sage/crypto/mq/sr.py # Segfault
        sage -t  devel/sage/sage/finance/time_series.pyx # 5 doctests failed
        sage -t  devel/sage/sage/functions/special.py # 5 doctests failed
        sage -t  devel/sage/sage/functions/transcendental.py # 5 doctests failed
        sage -t  devel/sage/sage/groups/generic.py # Segfault
        sage -t  devel/sage/sage/interfaces/expect.py # 11 doctests failed
        sage -t  devel/sage/sage/interfaces/lisp.py # 4 doctests failed
        sage -t  devel/sage/sage/interfaces/qsieve.py # 7 doctests failed
        sage -t  devel/sage/sage/interfaces/r.py # 176 doctests failed
        sage -t  devel/sage/sage/libs/pari/gen.pyx # 2 doctests failed
        sage -t  devel/sage/sage/modular/congroup.py # 14 doctests failed
        sage -t  devel/sage/sage/modular/cusps.py # 1 doctests failed
        sage -t  devel/sage/sage/modular/modsym/ambient.py # 4 doctests failed
        sage -t  devel/sage/sage/modular/modsym/boundary.py # 2 doctests failed
        sage -t  devel/sage/sage/modules/vector_double_dense.pyx # 12 doctests failed
        sage -t  devel/sage/sage/modules/vector_real_double_dense.pyx # 1 doctests failed
        sage -t  devel/sage/sage/numerical/test.py # 5 doctests failed
        sage -t  devel/sage/sage/numerical/optimize.py # 4 doctests failed
        sage -t  devel/sage/sage/plot/plot3d/list_plot3d.py # 6 doctests failed
        sage -t  devel/sage/sage/rings/arith.py # 3 doctests failed
        sage -t  devel/sage/sage/rings/integer.pyx # 4 doctests failed
        sage -t  devel/sage/sage/rings/polynomial/laurent_polynomial.pyx # Segfault
        sage -t  devel/sage/sage/rings/polynomial/multi_polynomial.pyx # Segfault
        sage -t  devel/sage/sage/rings/polynomial/multi_polynomial_element.py # Segfault
        sage -t  devel/sage/sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx # Segfault
        sage -t  devel/sage/sage/rings/polynomial/multi_polynomial_ideal.py # 1 doctests failed
        sage -t  devel/sage/sage/rings/polynomial/multi_polynomial_libsingular.pyx # Segfault
        sage -t  devel/sage/sage/rings/polynomial/toy_buchberger.py # Segfault
        sage -t  devel/sage/sage/rings/polynomial/toy_d_basis.py # 2 doctests failed
        sage -t  devel/sage/sage/schemes/elliptic_curves/ell_generic.py # Segfault
        sage -t  devel/sage/sage/schemes/elliptic_curves/ell_finite_field.py # Segfault
        sage -t  devel/sage/sage/schemes/elliptic_curves/ell_number_field.py # Segfault
        sage -t  devel/sage/sage/schemes/elliptic_curves/ell_point.py # Segfault
        sage -t  devel/sage/sage/schemes/generic/affine_space.py # Segfault
        sage -t  devel/sage/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py # Segfault
        sage -t  devel/sage/sage/stats/r.py # 1 doctests failed
        sage -t  devel/sage/sage/stats/test.py # 1 doctests failed
        sage -t  devel/sage/sage/tests/book_stein_modform.py # 4 doctests failed
        sage -t  devel/sage/sage/tests/book_stein_ent.py # 3 doctests failed

Reasons for failures:

  • different gmp, i.e. eMPIRe, accounts for 10 failures
  • various failures are due to SciPy, this is fixable by setting CFLAGS in various extension properly

  • the missing compoenents also cause failures
  • sympow is not working and causes trouble
  • Singular does double frees at exit on occasion due to the use of system malloc, a patch to work around those has been done