-
-
Notifications
You must be signed in to change notification settings - Fork 481
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
GAP pexpect interface hangs when xgap is loaded #26983
Comments
comment:1
Even if I install gap without Why don't we pass |
comment:2
Replying to @timokau:
The "this should never happen" warning is somewhat accurate: It really shouldn't happen. Please make sure to clear any old GAP workspaces. Also, it could be you're using some outdated, broken version of some package that is evoking xgap-related functionality when it shouldn't. It would help if you could give precisely a case where this doesn't work; i.e. narrow it down to a specific package. Because this problem does not occur for the GAP packages that are packaged as Sage SPKGs for GAP 4.10.
That was discussed and decided against, since not loading any packages by default results in an ostensibly "broken" GAP (IMO this does not reflect well on GAP but from the Sage end of things it's better to give the best GAP experience we can so that users don't submit bogus bug reports to the GAP developers when really it's just a question of what settings the GAP installation in Sage uses). |
comment:4
Replying to @embray:
Builds and tests happen in a sandbox with a clean $HOME and freshly build gap+pkgs, so that shouldn't be an issue.
I can confirm that this doesn't happen if I only install the packages the spkg installs. I'll try to narrow it down to one offending package.
But if the mere presence of packages that are not in the spkg changes gap behaviour, it seems like a nightmare to maintain without explicitly setting the set of loaded packages. |
comment:5
I can't reproduce the However I get plenty of other issues with gap packages:
So in summary, the pexpect interface only works reliably when just the package |
comment:6
Replying to @timokau:
One of the packages could still be buggy though, or somehow forcibly loading xgap. But I'm not sure.
I agree of course, which is why I went with Notably, xgap is not one of those packages, nor is it a package we're including in the gap_packages SPKGs. I had previously added xgap manually and tested with it installed and didn't get it to load. |
comment:7
Does it matter, from your perspective, if some sage doctests fail depending on which GAP packages are installed? The issue with IO is known, for example, and has a fix that just hasn't been included yet since there is no SPKG that installs the IO package. See #22626 comment:424 and #26930 |
comment:9
Replying to @embray:
But why do packages like
You mean that you cannot reproduce the issue with having xgap installed? Replying to @embray:
Yes it matters. I'd like to maintain 0 doctest failures, so even "comsetic" failures matter. I think a testsuite looses a lot of its value if you can't rely on test breakage actually signifying real issues. Also a lot of the failures are not cosmetic but real issues. With Nix I could install a separate gap package just for sage that has the expected package set. That is what I've been doing before the update, but using the regular gap package would be much nicer. Also most other package managers don't have that luxury. If we are only officially supporting a subset of the available packages, I think we should only ever load that subset (even if more are available).
I just want to clarify that I'm very grateful that you are working on this. I know making big changes like this can be very thankless work because it inevitably breaks someones workflow and you usually only hear complaints afterwards. Thank you, the update was very necessary. |
comment:10
Replying to @timokau:
Well, some packages have "optional dependencies" that are nice to have (I think these are usually under
I cannot--last time I worked on this I had some 140 packages installed and the fix I added was good enough. I could be wrong though. I haven't tried it since I (supposedly) fixed it. It remains fixed for all the GAP packages that are installed by Sage SPKGs but that might not be good enough after all.
I agree that having 0 doctest failures matters. I'm just asking if it matters if all tests pass on all conceivable combinations of installed packages on the system?
Agreed.
See above though: That requires somehow forcing other packages not to load optional dependencies. I'm not sure there's a way to prevent that across the board (other than maybe monkey-patching some things, which is worth a shot...)
Thanks! |
comment:11
Replying to @embray:
In my case all packages that ship with the standard gap tarball are installed.
I'd say yes. If we don't want to support all conceivable combinations we should explicitly restrict that.
I'll probably go that way for 8.6, with it already being in rc phase. Are you still planning to completely replace the pexpect interface with libgap? In that case the problem may solve itself to some degree, as I would expect libgap to be much more resilient to the installed packges.
Yeah either monkey patching |
comment:12
Retarging tickets optimistically to the next milestone. If you are responsible for this ticket (either its reporter or owner) and don't believe you are likely to complete this ticket before the next release (8.7) please retarget this ticket's milestone to sage-pending or sage-wishlist. |
comment:13
Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually) |
comment:14
Tickets still needing working or clarification should be moved to the next release milestone at the soonest (please feel free to revert if you think the ticket is close to being resolved). |
comment:15
Ticket retargeted after milestone closed |
comment:16
Moving tickets to milestone sage-9.2 based on a review of last modification date, branch status, and severity. |
comment:18
Moving this ticket to 9.4, as it seems unlikely that it will be merged in 9.3, which is in the release candidate stage |
comment:19
Setting a new milestone for this ticket based on a cursory review. |
comment:20
Stalled in |
The pexpect interface hangs when xgap is loaded. That is known, which is why the loading of xgap should be prevented by adding it to
ExcludeFromAutoload
. Unfortunately that doesn't work in all cases, presumably whenxgap
is dependency of another package.Instead
PackagesToIgnore
should be used, which just pretends the package is not there at all.CC: @embray @kiwifb
Component: interfaces
Keywords: gap
Issue created by migration from https://trac.sagemath.org/ticket/26983
The text was updated successfully, but these errors were encountered: