Hi Michael,
   ParaTools, Inc. has ported SAGE successfully to AIX! We had to
rebuild the library and debug it further
but now I can say:
> set path=($PET_HOME/pkgs/sage-3.1.1 $path)
> sage
----------------------------------------------------------------------
| SAGE Version 3.1.1, Release Date: 2008-08-17                       |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------

sage: import numpy
sage: numpy.test()
Numpy is installed in /usr/local/PET/pkgs/sage-3.1.1/local/lib/
python2.5/site-packages/numpy
Numpy version 1.0.4
Python version 2.5.2 (r252:60911, Oct 18 2008, 03:31:49) [GCC 4.2.1]
  Found 10/10 tests for numpy.core.defmatrix
  Found 36/36 tests for numpy.core.ma
  Found 223/223 tests for numpy.core.multiarray
  Found 65/65 tests for numpy.core.numeric
  Found 31/31 tests for numpy.core.numerictypes
  Found 12/12 tests for numpy.core.records
  Found 6/6 tests for numpy.core.scalarmath
  Found 14/14 tests for numpy.core.umath
  Found 4/4 tests for numpy.ctypeslib
  Found 5/5 tests for numpy.distutils.misc_util
  Found 1/1 tests for numpy.fft.fftpack
  Found 3/3 tests for numpy.fft.helper
  Found 9/9 tests for numpy.lib.arraysetops
  Found 46/46 tests for numpy.lib.function_base
  Found 5/5 tests for numpy.lib.getlimits
  Found 4/4 tests for numpy.lib.index_tricks
  Found 3/3 tests for numpy.lib.polynomial
  Found 49/49 tests for numpy.lib.shape_base
  Found 15/15 tests for numpy.lib.twodim_base
  Found 43/43 tests for numpy.lib.type_check
  Found 1/1 tests for numpy.lib.ufunclike
  Found 40/40 tests for numpy.linalg
  Found 2/2 tests for numpy.random
  Found 0/0 tests for __main__
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 680 tests in 1.228s

OK
<unittest._TextTestResult run=680 errors=0 failures=0>
sage: integrate(tan(x),x)
log(sec(x))
sage: a = matrix(ZZ, 10, 4, [randint(0,1) for _ in xrange(40)]); a

[0 1 1 0]
[1 0 0 0]
[0 0 1 1]
[0 0 0 0]
[1 0 1 1]
[1 0 1 1]
[1 1 0 1]
[1 1 0 0]
[0 1 0 1]
[0 1 0 0]
sage: list(AllExactCovers(a))

[[(0, 0, 1, 1), (1, 0, 0, 0), (0, 1, 0, 0)],
 [(0, 0, 1, 1), (1, 1, 0, 0)],
 [(1, 0, 1, 1), (0, 1, 0, 0)],
 [(1, 0, 1, 1), (0, 1, 0, 0)]]
sage: 22+32
54
sage: 3/4+1/6
11/12
sage:
Exiting SAGE (CPU time 0m1.86s, Wall time 1m28.08s).
Exiting spawned Maxima process.
>
> uname -a
AIX xxxx 3 5 002B912C4C00

The last error was resolved by printing the type of the object that
was of type pari.gen. When we
rebuilt that library by hand and the dependencies, it worked. I should
also add (for the list) that we had to
build clisp and gap in 32 bits and change gap.py to use a fixed big
number for the file descriptors as the max
fileno from getrusage was not working properly in AIX. This change
fixed pexpect.

Thanks a lot for your help! I look forward to discussing these issues
and help with
documenting this at the SD 11 with you.
- Sameer

On Nov 3, 11:37 pm, Sameer <[EMAIL PROTECTED]> wrote:
> Michael,
>    An update. I rebuilt liblinboxsage.a by omiting Communicator.o and
> using a simple g++ -shared -o  command that tied in the .o files. I
> think the crash occured at Communicator.c but I saw a -
> DDISABLE_COMMUNICATOR. So, I rebuilt the .a file and then it loaded
> properly until the next crash. The earlier crashes were linked to the
> first instance of a routine not executing properly due to a shared
> object that was not built properly. Now I am facing another kind of
> error where the same routine executes correctly a few times and then
> crashes at returnsage.rings.rational.Rational(x, base)
> in rational_field.py. I modified it:
>
> (Pdb) c
> rational_field.py: SSS: after crash myretval =  1
> rational_field.py: SSS: before crash, x =  1  base =  0> 
> /usr/local/PET/src/build/sage-3.1.1/local/lib/python2.5/site-packages/sage/ 
> rings/rational_field.py(221)__call__()
>
> -> myretval =sage.rings.rational.Rational(x, base)
> (Pdb) s
>
> ------------------------------------------------------------
> Unhandled SIGSEGV: A segmentation fault occured inSAGE.
> This probably occured because a *compiled* component
> ofSAGEhas a bug in it (typically accessing invalid memory)
> or is not properly wrapped with _sig_on, _sig_off.
> You might want to runSAGEunder gdb with 'sage-gdb' to debug this.
>
> But the output suggests that it works properly some times:
>
> > ./sage
>
> args = ,
> sage_startup_cmd = ,
> importsage.misc.misc; 
> printsage.misc.misc.branch_current_hg_notice(sage.misc.misc.branch_current_hg())
>  ;
> fromsage.misc.interpreter import preparser; 
> preparser(True);importsage.all_cmdline;sage.all_cmdline._init_cmdline(globals());fromsage.all
>  import Integer, RealNumber;import os; os.chdir("/usr/local/
> PET/src/build/sage-3.1.1");importsage.misc.interpreter;fromsage.misc.interpreter
>  import attached_files;fromsage.all_cmdline
> import *;_=sage.misc.interpreter.load_startup_file("/Dev_users/
> sameer/.sage//init.sage")
> ----------------------------------------------------------------------
> |SAGEVersion 3.1.1, Release Date: 2008-08-17                       |
> | Type notebook() for the GUI, and license() for information.        |
> ----------------------------------------------------------------------
>
> real_mpfi: after __init__
> real_mpfi: after __init__
> real_mpfi: after __init__
> real_mpfi: after __init__
> rational_field.py: SSS: before crash, x =  0  base =  0
> rational_field.py: SSS: after crash myretval =  0
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> rational_field.py: SSS: before crash, x =  0  base =  0
> rational_field.py: SSS: after crash myretval =  0
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =  0.?
> e-21
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =
> 1.00000000000000000000?
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =  0.?
> e-21
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =
> 1.00000000000000000000?
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =  0.?
> e-21
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =
> 1.00000000000000000000?
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =  0.?
> e-21
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =
> -1.00000000000000000000?
> real_mpfi: after __init__
> rational_field.py: SSS: before crash, x =  0  base =  0
> rational_field.py: SSS: after crash myretval =  0
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> rational_field.py: SSS: before crash, x =  0  base =  0
> rational_field.py: SSS: after crash myretval =  0
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> real_mpfi: after __init__
> rational_field.py: SSS: before crash, x =  0  base =  0
> rational_field.py: SSS: after crash myretval =  0
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> real_mpfi: after __init__
> qqbar.py: SSS: After self._descr._interval_fast : self._value =  0.?
> e-21
> rational_field.py: SSS: before crash, x =  -1  base =  0
> rational_field.py: SSS: after crash myretval =  -1
> rational_field.py: SSS: before crash, x =  0  base =  0
> rational_field.py: SSS: after crash myretval =  0
> rational_field.py: SSS: before crash, x =  1  base =  0
> rational_field.py: SSS: after crash myretval =  1
> rational_field.py: SSS: before crash, x =  1  base =  0
>
> ------------------------------------------------------------
> Unhandled SIGSEGV: A segmentation fault occured inSAGE.
> This probably occured because a *compiled* component
> ofSAGEhas a bug in it (typically accessing invalid memory)
> or is not properly wrapped with _sig_on, _sig_off.
> You might want to runSAGEunder gdb with 'sage-gdb' to debug this.SAGEwill now 
> terminate (sorry).
> ------------------------------------------------------------
>
> What do you recommend for such a case? We seem to be chugging right
> along..
>
> Thanks!
> - Sameer
>
> On Nov 3, 7:20 pm, mabshoff <[EMAIL PROTECTED]
>
> dortmund.de> wrote:
> > On Nov 3, 7:04 pm, Sameer <[EMAIL PROTECTED]> wrote:
>
> > > Hi Michael,> >    Here is an update onAIX. I found whysagestartup was 
> > > crashing in
> > > > > real_mpfi.so. I rebuilt libmpfi.so and recompiled real_mpfi.pyx and
> > > > > complex_double.pyx. The illegal instruction error was due to an error
> > > > > in building libmpfi.so caused by arguments given by libtool. By
> > > > > testing with the supplied testcases I was able to narrow it down.
>
> > > > Ok, can you give some details what had to be changed?
>
> > > I just did a manual:
>
> > > % cd spkg/build; cp -r mpfi* mympfi (the package builds without error
> > > and deletes the sources, so it is important to copy it midway while it
> > > is building);
>
> > Yes. Just run "./sage-sh", then cd into spkg/standard, tar xjf
> > foo.spkg, cd into foo and run ./spkg-install.
>
> > > % cd mympfi; make;
> > > % gcc -shared -o libmpfi.so ../src/.libs/*.o -L/usr/local/PET/src/
> > > build/sage-3.1.1/local/lib -lmpfr -lgmp
> > > cp libmpfi $SAGE_LOCAL/lib
>
> > > and tested with the tests/test_mpfi to make sure it didn't crash with
> > > the illegal instruction.
>
> > Ok, but why would a static library crash?
>
> > <SNIP>
>
> > > Thanks I will rebuild it!
> > > - Sameer
>
> > Cheers,
>
> > Michael
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to