Opened 9 years ago
Last modified 9 years ago
#10187 closed defect
Update ecl and maxima — at Version 22
Reported by: | vbraun | Owned by: | tbd |
---|---|---|---|
Priority: | major | Milestone: | sage-4.6.1 |
Component: | packages: standard | Keywords: | |
Cc: | was, jhpalmieri, mpatel, leif, jsp, jason, kcrisman, fbissey, jpflori | Merged in: | |
Authors: | Volker Braun, David Kirkby | Reviewers: | |
Report Upstream: | Workaround found; Bug reported upstream. | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
Please update ecl and maxima to the newest upstream release. Sage packages are here:
http://boxen.math.washington.edu/home/kirkby/patches/ecl-10.4.1.spkg http://www.stp.dias.ie/~vbraun/Sage/spkg/maxima-5.22.1.spkg
Note that you cannot upgrade one without the other; Both need to be upgraded simultaneously or build will fail.
Relevant tickets for ecl:
- #9493: Remove extra baggage from ECL 10.2.1.p1 (again). The package has been cleaned up, but I feel removing gmp sources is too dangerous.
- #10185: the old ecl-10.2.1 does not build on Fedora 14: Hopefully fixed with the updated ecl from this ticket.
Relevant tickets for maxima:
- #8645: ECL library "maxima.fasb" is built at new location. The patches from this bug have been incorporated into the maxima spkg, and #8645 can be closed after this ticket.
- #8731: update/upgrade maxima to latest upstream (5.21.1): Latest upstream is nowadays 5.22.1.
- #8582:
sum(1/(1+k^2), k, -oo, oo)
returns 0: The new maxima seems to be able to evaluate this correctly, at leasts it returns some expression with digamma functions.
The updated maxima code seems to be more careful about signs which leads to doctest errors.
Change History (23)
comment:1 Changed 9 years ago by
- Cc kcrisman added
comment:2 Changed 9 years ago by
comment:3 follow-up: ↓ 4 Changed 9 years ago by
FYI, here's the failures on OpenSolaris 06/2009 with those updated versions of Maxima and ECL.
sage -t -long -force_lib devel/sage/sage/interfaces/maxima.py *** *** Error: TIMED OUT! PROCESS KILLED! *** *** [1800.2 s] ---------------------------------------------------------------------- The following tests failed: sage -t -long -force_lib devel/sage/sage/symbolic/integration/integral.py # 6 doctests failed sage -t -long -force_lib devel/sage/sage/symbolic/maxima_wrapper.py # 1 doctests failed sage -t -long -force_lib devel/sage/sage/symbolic/expression.pyx # 11 doctests failed sage -t -long -force_lib devel/sage/sage/misc/functional.py # 2 doctests failed sage -t -long -force_lib devel/sage/sage/calculus/wester.py # 1 doctests failed sage -t -long -force_lib devel/sage/sage/calculus/tests.py # 1 doctests failed sage -t -long -force_lib devel/sage/sage/calculus/calculus.py # 5 doctests failed sage -t -long -force_lib devel/sage/sage/calculus/functional.py # 1 doctests failed sage -t -long -force_lib devel/sage/sage/plot/plot3d/transform.pyx # 1 doctests failed sage -t -long -force_lib devel/sage/sage/interfaces/maxima.py # Time out ---------------------------------------------------------------------- Total time for all tests: 2628.2 seconds make: *** [ptestlong] Error 192 drkirkby@hawk:~/sage-4.6.1.alpha0$
I've not applied any patches at this point. I'll apply patches and rerun later.
comment:4 in reply to: ↑ 3 Changed 9 years ago by
Replying to drkirkby:
FYI, here's the failures on OpenSolaris 06/2009 with those updated versions of Maxima and ECL.
sage -t -long -force_lib devel/sage/sage/interfaces/maxima.py *** *** Error: TIMED OUT! PROCESS KILLED! *** *** [1800.2 s]
I'd be interested what happened if you manually removed the tests in that file which test the tab-completion for Maxima. I get a problem on Mac OS X Tiger with that file for exactly that reason. We haven't filed a ticket because nobody knows how to fix it, and tab-completion does work on that platform, just not the testing.
comment:5 follow-up: ↓ 6 Changed 9 years ago by
The TIMED OUT! error is the missing general-display-prefix
, which causes the expect interface to wait forever for maxima to print its next prompt.
I've filed a bug upstream here: https://sourceforge.net/tracker/?func=detail&aid=3098375&group_id=4933&atid=104933
comment:6 in reply to: ↑ 5 Changed 9 years ago by
Replying to vbraun:
The TIMED OUT! error is the missing
general-display-prefix
, which causes the expect interface to wait forever for maxima to print its next prompt.
Okay, thanks - so that's unrelated to the Tiger timeout from earlier Maximas.
comment:7 follow-ups: ↓ 11 ↓ 16 Changed 9 years ago by
- Report Upstream changed from N/A to Workaround found; Bug reported upstream.
I've modified sage/interfaces/maxima.py
to work with maxima's prompt_prefix
instead. Patch is attached and fixes the remaining doctest error.
This requires that `$SAGE_LOCAL/bin/sage-maxima.lisp sets
; (setf *general-display-prefix* "<sage-display>") (setf *prompt-prefix* "<sage-display>")
I've made a updated sage_scripts spkg here: http://www.stp.dias.ie/~vbraun/Sage/spkg/sage_scripts-4.6.rc0.p0.spkg
To test this ticket, you need all three spkgs and both patches.
comment:8 Changed 9 years ago by
- Status changed from new to needs_review
comment:9 Changed 9 years ago by
- Cc fbissey added
comment:10 Changed 9 years ago by
One thing we don't don, which I think would be sensible, is to include the test suite for ECL. That adds 1.7 MB. From the README.ECL file:
cd tests make You will find two types of output files: *.out The whole output of a test *.erg The errors arising from a test When there is no *.erg, it means that ECL passed the test.
Would it not be sensible to add these in? Then we could execute the tests with a spkg-check file, like we do other code which has self-tests.
Dave
comment:11 in reply to: ↑ 7 Changed 9 years ago by
Replying to vbraun:
I've modified
sage/interfaces/maxima.py
to work with maxima'sprompt_prefix
instead. Patch is attached and fixes the remaining doctest error.
Just a very minor note:
# we are now getting three lines of commented verbosity
but of course you changed it to get rid of the extra two lines from our constantly added packages :) so it's now five lines. Might as well change that too so future people are confused.
comment:12 Changed 9 years ago by
comment:13 Changed 9 years ago by
I looked trough doctest patch and compared it with mine from #8731, I have few comments.
I think that doctest fix for sage/calculus/functional.py should be modified - it was documentation of the use of assume, but now - when maxima can calculate this integral without assumption, isn't that same as applying assumption to result? And the integral is checked in other doctest now. Maybe there is better example that still needs the assume to get result?
Also the doctest in sage/misc/functional.py was here to demonstrate numerical approximation of integral that cannot be evaluated iirc, and now when it can be evaluated, I think it should be changed to something that cannot be - like Jason did in patch in #8731.
Finally, there is typo in doctest to sage/symbolic/expression.pyx - it should say that this doctest is here to check that #7334 not #7344 is fixed (#7344 point to libjpeg issue so it cannot be it) - and it should stay in here unmodified. Also - the log thing - it's not exactly regression, it's feature. This is because of Maxima ticket 947808 - http://sourceforge.net/tracker/?func=detail&aid=947808&group_id=4933&atid=104933 - they now try to keep the expression as factored as they can without using factor. This results in observed behaviour. This doctest I think cannot be changed as it demonstrated that ticket is solved, but we should apply "x = x.simplify_rational()" after "x = x.simplify_log('one')" in definition of simplify_full - that way full simplify would result in same results as before I think, and #7334 would be still fixed. Now, this doctest shows nothing.
comment:14 Changed 9 years ago by
- Status changed from needs_review to needs_work
There is a problem with the ECL package here. The history of all recent changes has been lost. The recent changes to the package have been:
=== ecl-10.2.1.p3 (David Kirkby, David Kirkby, 17th September 2010) === === ecl-10.2.1.p2 (David Kirkby, 30th July 2010) === === ecl-10.2.1.p1 (Mitesh Patel, 11th July 2010) === === ecl-10.2.1.p0 (David Kirkby, 11th July 2010) === === ecl-10.2.1 (William Stein, 14 February 2010) ===
but instead SPKG.txt shows
=== ecl-10.4.1.p0 (Leif Leonhardy, Volker Braun, 29th September 2010) === === ecl-10.4.1 (N. Bruin, W. Stein, D. Kirkby and M. Patel 19th June 2010) === === ecl-10.2.1 (William Stein, 14 February 2010) ===
This error has occurred since the package is based on one that I created several months ago, which never got merged, because their were conflicts with that and the Maxima package at the time.
The current version of ECL in Sage should have been used as a starting point - not an old one that was never merged.
I'll sort the above problem out, and add the ECL test code today.
Dave
comment:15 Changed 9 years ago by
The patch fix_easy_doctest doesn't apply cleanly on either 4.6.rc0 or 4.6.1.alpha0. Was it prepared against 4.5.3?
comment:16 in reply to: ↑ 7 ; follow-up: ↓ 17 Changed 9 years ago by
Replying to vbraun:
I've modified
sage/interfaces/maxima.py
to work with maxima'sprompt_prefix
instead. Patch is attached and fixes the remaining doctest error.This requires that `$SAGE_LOCAL/bin/sage-maxima.lisp sets
; (setf *general-display-prefix* "<sage-display>") (setf *prompt-prefix* "<sage-display>")
I've made a updated sage_scripts spkg here: http://www.stp.dias.ie/~vbraun/Sage/spkg/sage_scripts-4.6.rc0.p0.spkg
To test this ticket, you need all three spkgs and both patches.
Could you please attach a patch to the scripts repo, too (rather than a link to a complete new scripts spkg)?
Also, attaching diffs (or Mercurial patches) of the spkgs makes reviewing easier.
comment:17 in reply to: ↑ 16 Changed 9 years ago by
Replying to leif:
Could you please attach a patch to the scripts repo, too (rather than a link to a complete new scripts spkg)?
P.S.: Of course I could do that, too, but then you wouldn't be able to update it in case you later modify the patch.
comment:18 Changed 9 years ago by
I've incorporated your suggestions and updated the patches. Both are (and were) against 4.6.rc0 and apply cleanly. Maybe you had the wrong order? It should be
- trac_10187_fix_easy_doctests.patch
- trac_10187_general_display_prefix_workaround.patch
I'll attach patches for the sage_scripts
and maxima
spgk for easier review. Once Dave is finished with the ecl package then this ticket is ready for review again.
comment:19 Changed 9 years ago by
Wrong order indeed! I thought the two patches were orthogonal.
comment:20 follow-up: ↓ 21 Changed 9 years ago by
I'm going to have to ask on the ECL list how to run the test suite - I can't work out where ones supposed to copy the source.
These changes are not going to make it into 4.6. The milestone is 4.6.1, and it will easily be resolved by then.
Dave
comment:21 in reply to: ↑ 20 Changed 9 years ago by
Replying to drkirkby:
I'm going to have to ask on the ECL list how to run the test suite - I can't work out where ones supposed to copy the source.
These changes are not going to make it into 4.6. The milestone is 4.6.1, and it will easily be resolved by then.
Dave
I've now got the information on the ANSI test suite from the ECL developer, though I gather the copy on the ECL site is rather out of date. Also, the ECL developer has fixed the bug that causes #9840, so I'll patch that too, so #9840 can hopefully be closed at the same time.
I'll try to get this sorted out within the next few days.
Dave
comment:22 Changed 9 years ago by
- Description modified (diff)
I have put an updated ECL file at http://boxen.math.washington.edu/home/kirkby/patches/ecl-10.4.1.spkg This has only been checked on OpenSolaris - I don't have access to a Fedora 14 machine, so can't verify if it actually fixes the issues reported at #10185
I should make a few comments about this:
- I have not added an spkg-check file or the Lisp tests, as I gather from the ECL developer the Lisp tests on the ECL site are outdated. Fixing this appears to be a non-trivial issue.
- The repository information from the ecl-10.2.1.p3 version actually in Sage is kept, as it should be. (Volker's package was based on a 10.4.1 package I created months ago, which never got merged into Sage. So the repository information was not correct).
- Despite being told the Solaris text relocation issue was resolved, it appears it is not as simple as applying a single patch as I had hoped. So #9840 remains unresolved, though it should be fixed when the next stable ECL release is made.
- I've cleaned the package up somewhat.
- I did not remove the gmp sources, as doing so requires a new configure file to be created. Whilst I can see this is advantageous if done properly, I fear that this will be done incorrectly at some point in the future, which can result in chaos.
After
- Installing the new ECL package I created, and put at http://boxen.math.washington.edu/home/kirkby/patches/ecl-10.4.1.spkg
- Installing the Maxima package from http://www.stp.dias.ie/~vbraun/Sage/spkg/maxima-5.22.1.spkg
- Trying to install all the patches (one failed, see below)
- Rebuilding the Sage library.
- Running all the doctests, which all pass.
I get one reject out of six when adding
trac_10187_general_display_prefix_workaround.patch
to sage 4.6.1.alpha0, so I think that patch needs updating. The contents of the reject are:
--- maxima.py +++ maxima.py @@ -728,10 +729,12 @@ sage: maxima._eval_line('1+1;') '2' - sage: maxima.eval('sage0: x == x;') + sage: maxima._eval_line('sage0: x == x;') Traceback (most recent call last): ... - TypeError: error evaluating "sage0: x == x;":... + TypeError: Error executing code in Maxima... + + """ if len(line) == 0: return ''
But as I say, all doctests passed for me, despite one patch was not fully applied!!
---------------------------------------------------------------------- All tests passed! Total time for all tests: 1871.3 seconds
I'm leaving as needs work, as clearly the fact one patch does not apply cleanly is a problem. It also needs testing on more than one system, but I don't have access to the Fedora 14 system where this was a particular problem.
Dave
The doctests show one maxima regression:
This simplified to 0 in a previous version. But at least its not wrong ;-)
The attached patch fixes all doctests except for a timeout in maxima. That one is a different issue with maxima, which forgets to print the
general-display-prefix
variable for errors: