Opened 9 years ago

Last modified 9 years ago

#10766 closed defect

Update ECL to the latest upstream release. — at Version 6

Reported by: drkirkby Owned by: AlexGhitza
Priority: major Milestone: sage-4.7
Component: packages: standard Keywords:
Cc: kcrisman, jpflori Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by drkirkby)

The latest version of the Lisp interpreter ECL, (which is used by Maxima) is 11.1.1, but the version of ECL in Sage is 10.4.1.

Version 10.4.1 is the source of one really major problem on 64-bit OpenSolaris (see #9840), as it creates a broken library libecl.so, which can't be linked to. This stops Sage building as a 64-bit application.

The failure of ECL to build is due to non-PIC code being present, which itself was the result of the use of a GCC extension of "computed gotos" using in the ECL source code.

http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Labels-as-Values.html

The updated ECL avoids this GCC extension on Solaris, with a result the library has no text relocation issues.

I'll create a new .spkg later.

Dave

Change History (8)

comment:1 Changed 9 years ago by fbissey

List of doctests in need of fixing for this to happen:

sage -t -force_lib "devel/sage-main/sage/modules/free_module_element.pyx"
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/modules/free_module_element.pyx", line 2487:
    sage: answers
Expected:
    [(0.5, 5.5511151231257843e-15, 21, 0),
    (0.33333333333333343, 3.7007434154171903e-15, 21, 0),
    (0.45969769413186018, 5.1036696439228408e-15, 21, 0)]
Got:
    [(0.5, 5.5511151231257843e-15, 21, 0), (0.33333333333333337, 3.7007434154171903e-15, 21, 0), (0.45969769413186023, 5.1036696439228408e-15, 21, 0)]
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/modules/free_module_element.pyx", line 2493:
    sage: r.nintegral(t,0,1)
Expected:
    ((0.5, 0.0, 1.0),
    {0: (0.5, 5.5511151231257843e-15, 21, 0),
    2: (1.0, 1.110223024625157e-14, 21, 0)})
Got:
    ((0.5, 0.0, 1.0), {0: (0.5, 5.5511151231257843e-15, 21, 0), 2: (1.0, 1.1102230246251569e-14, 21, 0)})
**********************************************************************
1 items had failures:
   2 of  10 in __main__.example_70

formatting and numeric noise

sage -t -force_lib "devel/sage-main/sage/interfaces/lisp.py"
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/lisp.py", line 378:
    sage: lisp.function_call('sin', ['2'])
Expected:
    0.90929741
Got:
    0.9092974
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/lisp.py", line 380:
    sage: lisp.sin(2)
Expected:
    0.90929741
Got:
    0.9092974
**********************************************************************
1 items had failures:
   2 of   4 in __main__.example_23

Numeric noise

sage -t -force_lib "devel/sage-main/sage/interfaces/maxima.py"
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/maxima.py", line 934:
    sage: maxima.example('arrays')
Expected:
    a[n]:=n*a[n-1]
                                    a  := n a
                                     n       n - 1
    a[0]:1
    a[5]
                                          120
    a[n]:=n
    a[6]
                                           6
    a[4]
                                          24
                                         done
Got:
                                    a  := n a
                                     n       n - 1
    a[0]:1
    a[5]
                                          120
    a[n]:=n
    a[6]
                                           6
    a[4]
                                          24
                                         done
    <BLANKLINE>
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/maxima.py", line 1128:
    sage: f(3.2)
Expected:
    -.05837414342758009
Got:
    -.058374143427580086
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/maxima.py", line 1925:
    sage: a = maxima('sqrt(2)').numer(); a
Expected:
    1.414213562373095
Got:
    1.4142135623730951
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/maxima.py", line 2077:
    sage: maxima('exp(-sqrt(x))').nintegral('x',0,1)
Expected:
    (.5284822353142306, 4.163314137883845e-11, 231, 0)
Got:
    (.5284822353142306, 4.1633141378838445e-11, 231, 0)
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/maxima.py", line 2131:
    sage: f.numer()
Expected:
    1.462651745907182
Got:
    1.4626517459071817
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/interfaces/maxima.py", line 2251:
    sage: maxima('sqrt(2) + I').comma('numer')
Expected:
    I+1.414213562373095
Got:
    I+1.4142135623730951
**********************************************************************

Numerical and format. The first one should be closely looked at.

sage -t -force_lib "devel/sage-main/sage/symbolic/integration/integral.py"
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/symbolic/integration/integral.py", line 541:
    sage: integrate( (F(x)-G(x))^2, x, -infinity, infinity).n()
Expected:
    0
Got:
    -6.26376265908397e-17
**********************************************************************

Numerical noise.

sage -t -force_lib "devel/sage-main/sage/symbolic/expression.pyx"
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/symbolic/expression.pyx", line 5517:
    sage: maxima('cosh(1.0)')
Expected:
    1.543080634815244
Got:
    1.5430806348152437
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/symbolic/expression.pyx", line 5626:
    sage: maxima('asinh(2.0)')
Expected:
    1.44363547517881
Got:
    1.4436354751788103
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/symbolic/expression.pyx", line 5680:
    sage: maxima('acosh(0.5)')
Expected:
    1.047197551196598*%i
Got:
    1.0471975511965979*%i
**********************************************************************

Numerical noise

sage -t -force_lib "devel/sage-main/sage/calculus/calculus.py"
**********************************************************************
File "/usr/share/sage/devel/sage-main/sage/calculus/calculus.py", line 677:
    sage: f.nintegrate(x,0,1)
Expected:
    (-480.00000000000011, 5.3290705182007538e-12, 21, 0)
Got:
    (-480.00000000000006, 5.3290705182007538e-12, 21, 0)
**********************************************************************

Numerical noise. Same as reported by David on sage-devel. It all should be straightforward if tedious.

comment:2 Changed 9 years ago by fbissey

Only 4 lines of to comment out for that particular one.

maxima --very-quiet -r "example("arrays");"
;;; Loading #P"/usr/lib64/ecl-11.1.1/sb-bsd-sockets.fas"
;;; Loading #P"/usr/lib64/ecl-11.1.1/sockets.fas"
;;; Loading #P"/usr/lib64/ecl-11.1.1/defsystem.fas"
;;; Loading #P"/usr/lib64/ecl-11.1.1/cmp.fas"
a[n]:=n*a[n-1]
                                a  := n a
                                 n       n - 1
a[0]:1
a[5]
                                      120
a[n]:=n
a[6]
                                       6
a[4]
                                      24
                                     done

with ecl-10.4.1

maxima --very-quiet -r "example("arrays");"
;;; Loading #P"/Users/frb15/Desktop/Gentoo/usr/lib/ecl-10.4.1/SB-BSD-SOCKETS.fas"
;;; Loading #P"/Users/frb15/Desktop/Gentoo/usr/lib/ecl-10.4.1/SOCKETS.fas"
;;; Loading #P"/Users/frb15/Desktop/Gentoo/usr/lib/ecl-10.4.1/DEFSYSTEM.fas"
;;; Loading #P"/Users/frb15/Desktop/Gentoo/usr/lib/ecl-10.4.1/cmp.fas"
;;; Loading #P"/Users/frb15/Desktop/Gentoo/usr/lib/ecl-10.4.1/sysfun.lsp"
a[n]:=n*a[n-1]
                                a  := n a
                                 n       n - 1
a[0]:1
a[5]
                                      120
a[n]:=n
a[6]
                                       6
a[4]
                                      24
                                     done

comment:3 Changed 9 years ago by drkirkby

Since a serious problem has been reported with ECL 11.1.1 with both the version of Maxima currently in Sage (5.21.1) as well as the latest Maxima (5.23.2)

http://www.math.utexas.edu/pipermail/maxima/2011/023868.html

we should probably postpone this until a fix is known.

comment:4 Changed 9 years ago by fbissey

If you want to wait rather than fixing maxima that's fine. In the meantime I just finished a patch set. So I am attaching it for future reference.

comment:5 Changed 9 years ago by drkirkby

There is apparently a fix in ECL's CVS for this.

http://www.mail-archive.com/ecls-list@lists.sourceforge.net/msg00671.html

and was due to a typo by the ECL developer. So it should be possible to upgrade ECL to the latest version after the doctest problems are resolved.

Dave

comment:6 Changed 9 years ago by drkirkby

  • Description modified (diff)

Changed 9 years ago by fbissey

patch to fix the doctest due to ecl-11.1.1 upgrade

Changed 9 years ago by fbissey

Forgotten one doctest

Note: See TracTickets for help on using tickets.