-
-
Notifications
You must be signed in to change notification settings - Fork 487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade ECL to 12.12.1 and let it build on (recent) Cygwins #13324
Comments
Changed keywords from cygwin ecl to cygwin ecl spkg |
Changed upstream from Not yet reported upstream; Will do shortly. to Workaround found; Bug reported upstream. |
comment:4
Wrong ticket... |
comment:5
Good, this also works on my Cygwin (and this change of spkg is needed, too). |
comment:6
however, after the whole Sage build on my Cygwin is almost done, I get
A missing library somewhere? |
comment:7
That was expected. You can rerun "./sage -b" and you'll see that a lot of cpp files produced from pyx files still have to be compiled. For the following ones I've not opened tockets yet, but there should be instructions enough on the CygwinPort page (although you'll have to implement the ideas evoked there yourself, no code provided). |
Changed upstream from Workaround found; Bug reported upstream. to Fixed upstream, but not in a stable release. |
comment:9
The fix has been integrated upstream |
This comment has been minimized.
This comment has been minimized.
comment:10
Wrong ticket... |
comment:11
I've upped an updated ECL spkg which includes upstream version 12.7.1 plus the git commit corresponding to the fix originally proposed here. I've updated the spkg-make file and homogenized the indentation in the spkg-install file as well. Two trivial doctests had to be changed, and it passes make ptestlong on Ubuntu 12.04 64 bits. |
This comment has been minimized.
This comment has been minimized.
comment:12
Replying to @jpflori:
I think you are cloning ECL from an old repo, no longer updated (they recently switched). |
comment:13
My point was to use a released version, not a git clone, and add only the needed commit on top of that. |
comment:14
For example, such an approach was used for Singular in #13237 IIRC. |
comment:15
The spkg I uploaded has some problems I'll upload a better one in a few moments. |
comment:16
Should be ok now. |
comment:18
I see you disabled unicode outright. Is this to avoid the problems mentioned in #12985? I haven't seen the problem you fix in gsl/integration.pyx last time I tried ecl 12.7.1 so it may be slightly platform dependent. As a general rule I don't think adding decimal places to a result is the right way to fix numerical noise in a doctest. |
comment:19
I did not change the unicode behavior, Im aware there's a ticket open about that, but I definitely did not modify the spkg-install for that purpose, it was already as such (something about Maxima IIRC). I agree about the numerical noise, I planned to put ... there but it ended up as 44. |
comment:20
Looking at the diff you provided it was indeed already there. I may even have put it there one of the last time I touched the spkg on knowledge from sage-on-gentoo that it was causing problems. |
comment:21
It passed make ptestlong on 64 bits Ubuntu 12.04. |
comment:22
I've committed the changes in the spkg and puts dots to take care of the numerical noise in the Sage library patch. |
comment:23
I am happy to give this a positive review but I am putting this on sage-5.4 as 5.3 is in the rc stage it won't make the cut unless Jeroen changes his mind about the release schedule. |
comment:162
I'll admit to a fair amount of testing as part of sage-on-gentoo but I don't do that kind of torture test. And I wouldn't even pretend to reach the number of tests you run across the sagemath cluster... For the record I also see it on my sage-on-gentoo install on x86_64. leif: As far as I can see neither (time out in progress)
|
comment:163
Btw, you can also do env SAGE_TEST_ITER=1000 SAGE_TIMEOUT=60 ./sage -tp 1 devel/sage/sage/interfaces/lisp.py &> foo.log (Add Afterwards grep the log... |
comment:164
Replying to @nexttime:
I tried this with the old ECL (on Linux x86_64) and didn't get a single failure / timeout, so the timeouts are definitely a regression. (Although I must admit I haven't tried with the new ECL [on the same machine].) |
comment:165
Ok, I think I got a little more info on this one by enabling the pexpect logs in our Sage classes:
So indeed we will never read 937780184 back. By the way, the lisp.py file needs a big cleanup, especially all the :: for the examples and tests. |
comment:166
All our troubles may be caused by the fact that the sync command we send is
Note the "\n" which is superfulous and might get intersparsed with the output of "(+ 1 s)" if ECL does not handle it gracefully so leading to our problem. |
comment:167
Could you test lisp.py after removing that extra \n in _synchronize in lisp.py? |
comment:168
|
comment:169
Replying to @jdemeyer:
Yes, a carriage return (rather than a newline, |
Cleanup lisp.py and remove problematic \n from synchronize |
comment:170
Attachment: trac_13324.2.patch.gz |
This comment has been minimized.
This comment has been minimized.
comment:171
I went through one thousand tests without problem with the last patch. |
comment:172
It's gone here too. I think that did the trick. In fact I am wondering if that has got rid of the problems I was seeing in #12985 but that's a discusion for that other ticket. I am putting this back to positive review. |
Merged: sage-5.7.beta0 |
comment:174
This is a massive regression due to this ECL upgrade: Execute
It makes we wonder whether we should unmerge this upgrade, what if more ECL-related functionality has slowed down? |
comment:175
Replying to @jdemeyer:
what time do you measure?
and do you get 1926 with the older ECL, too? |
comment:176
Replying to @dimpase:
No, I get 1871 which is close enough. |
comment:177
Also,
Anyway, it's only the very first time that this is really slow, presumably due to Maxima starting up. However, there is a brief slowdown.
With 5.6:
Testing another command. Old:
New:
I think this is a non-issue. How often are people going to need really fast listing of all Maxima commands? |
comment:178
Replying to @kcrisman:
I was going to say "TAB completion", but that's apparently cached in |
comment:179
Replying to @kcrisman:
That can't be the explanation, as other maxima commands don't take 20 seconds... |
comment:180
Hmm, true. On startup, it only seems to add an extra 1.5 seconds for Maxima to start, so the list seems to take 15+ seconds. Okay, it seems to be creating the whole list for tab completion, actually. I'm used to seeing this slowness, but on my 10-year-old machine with a 1/2 G of memory. My guess? This line from
Recall that we also upgraded Maxima in 5.7.beta0, #13364. Perhaps "apropos" slowed down. Or maybe the IPython upgrade in #12719 made
slower, if this only shows up in 5.7.beta1. I'm going to check this momentarily. |
comment:181
Okay, it also is in beta0, and in retrospect that was a silly comment by me, because that is only called with So I wonder about "apropos".
And
So it's cached there as well. Well, I would say open a ticket, and let's see if we can find a way to find a Maxima command to mimic this slowdown in this listing command to report upstream. |
On my 1.7.16 installation of Cygwin, the ecl spkg does not build because it defines unconditionaly
_WINSOCKAPI_
in h/ecl-cmp.h which then prevents the definition of fd_set in /usr/include/sys/types.h.I guess this is harmless on Linux, intended on Windows, but on Cygwin this breaks the build of ECL.
The proposed spkg patches h/ecl-cmp.h so that
_WINSOCKAPI_
is not defined on CYGWIN.This has been merged upstream and is in 12.12.1:
https://sourceforge.net/p/ecls/ecl/ci/07c4ab7db83eda2eed7fa4a5ddeec2e28c7eb58b/
Moreover comes patches from upstream to get correct signal handling and is in 12.12.1:
We build ECL single threaded to get hopefully more correct signal handling in library mode and avoid problems with the pexpect interface.
And a later patch to avoid infinite loops while compiling lisp to C:
http://sourceforge.net/p/ecls/ecl/ci/13459a98f0c0c58ccc4e9241c3bf0625e39f2383/
Older patches which are now upstream have been removed.
Be sure to use Sage 5.6.beta2 or higher, so that the Maxima spkg is ready for this.
Try spkg at
http://boxen.math.washington.edu/home/jpflori/ecl-12.12.1.p0.spkg
Apply:
Depends on #13860
Upstream: Fixed upstream, but not in a stable release.
CC: @kiwifb
Component: porting: Cygwin
Keywords: cygwin ecl spkg
Author: Jean-Pierre Flori
Reviewer: François Bissey, Karl-Dieter Crisman, Dmitrii Pasechnik
Merged: sage-5.7.beta0
Issue created by migration from https://trac.sagemath.org/ticket/13324
The text was updated successfully, but these errors were encountered: