-
-
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
Upgrade to GAP 4.10 #22626
Comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Branch: u/nthiery/upgrade_to_gap_4_9 |
Branch pushed to git repo; I updated commit sha1. New commits:
|
Commit: |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Work Issues: Wait for gap 4.9 release |
Changed keywords from none to days85, libgap |
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits:
|
This comment has been minimized.
This comment has been minimized.
Attachment: ptestlong.log |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Branch pushed to git repo; I updated commit sha1. New commits:
|
Changed commit from |
comment:454
Sage-8.6 I guess. |
comment:455
I'm trying to package this and in the process updating gap to 4.10. I really wish gap had a workable gap builds and tests fine. It works interactively. However when trying to use it through sage's pexepct interface, it hangs. Any idea what may be going wrong here?
Meanwhile executing the |
comment:456
this works for me. Check out you don’t have stale GAP workspaces lying around in ~/.sage/gap/ |
comment:457
Yes its almost certainly not an error with this ticket but some packaging error or some assumption that isn't valid for NixOS. I'm just asking here because I thought you or Erik may have thoughts on possible causes. Removing all files in |
comment:458
The main reason I know the pexpect interface can hang is if the xgap package is loaded. Search the discussion above for "xgap". This is supposed to be fixed by 8228bace to ensure that the xgap package is not autoloaded. You'll want to check whether that fix is working as intended though. It might also help to patch the pexpect interface to not hang in this case, but that's more complicated because it has to "talk" to the GAP interpreter as though it were correctly emulating a graphical interface. Better to just make sure xgap isn't loaded. |
comment:459
That does seem to be the problem, thanks! If I add |
comment:460
I assume you mean does not work as intended. As for why/why not you'll have to debug that yourself I suppose. It works for me. It could be that you have some other auto-loaded package that also loads the xgap package unconditionally. Most packages that use the xgap package at least check to ensure that the |
comment:461
It looke like I am able to workaround the issue by creating a
And monkey-patching away the
That terminates. I wasn't able to do the same with Maybe we could make use of the |
comment:462
The problem with |
comment:463
I naively tried |
comment:464
It seems that the new libgap cause some doctests failure with some patchbots. See for example: |
comment:465
Replying to @fchapoton:
all these should be fixed by rc1 (out today). |
comment:466
This is not fixed in 8.6.beta1. See #26987 |
comment:467
I need to revert https://github.com/sagemath/sagetrac-mirror/commit/b446ebb496d45c4408aa949f98f855f962d9388a.patch to pass the doctests, even though I'm using gap 4.10. Any idea why that output should have changed? Should we maybe just sort it? |
comment:468
Replying to @timokau:
I noticed this too (have to revert the commit) in Debian. |
comment:469
Hm I still had a patch lying around that applied |
comment:470
Another weird "issue" (with sage-on-nix with the package set from the spkg): I get one more blankline at the start of docs than sage expects.
|
comment:471
This ticket is closed so please make new tickets for follow-up issues. |
GAP 4.10 comes with a completely rewritten build system that will simplify
our packaging. In particular, libGAP no longer needs to be a separate package.
What the branch does:
Remove the libgap spkg
Update the gap spkg to the new build system and build and install libgap
Replace
gap.shi.patch
by a plain gap startup script for SageRationale: GAP used to provide a startup shell script. The GAP devs
are in the process of getting rid of it and provide a very minimal
one. They recommend to just write our own rather than patching it.
Update a few doctests w.r.t. changes of output of some GAP functions
Reworks how gap is installed in
$SAGE_LOCAL
: Rather than installing the entire source tree we just install thegap
andlibgap
binaries to standard locations, and add a$SAGE_LOCAL/share/gap
containing theGAP_ROOT_DIR
which is stripped down to the minimum needed for GAP to work (standard libs and packages, docs, as well as the source code for introspection of kernel functions, but all build artifacts are carefully omitted).foobar
->libGAP_foobar
). This avoids messing around with GAP's sources; in particular opening the door for using a stock GAP from the OS distribution. However there always is a risk of name conflicts. And indeed, GAP's enumsT_INT
,T_FLOAT
, ... conflict with Python's constants defined instructmember.h
. This is hopefully not actually a problem in practice due to the way how Cython orders includes.Something similar was started by Volker at Unprefixed libgap #19915.
Removes configure.patch: it was patching configure for better GMP
detection under Cygwin (New Gap spkg (>=4.5) does not build with shared only GMP/MPIR #13954). This should not be needed anymore
with the new build system and use of --with-gmp. If it is, upstream
asked for it to be reported and they will fix it.
Removes additional patches for now--we would like to focus on being
able to work with a system GAP as much as possible.
Revert GAP: use newer version of config.guess #19726 (not needed anymore)
Status
Currently broken - crashes deep inside GAP error handling system after few simple commands.
Basic tests on libgap:
Running most relevant tests:
Current status: lots of errors
Still have some miscellaneous segfaults and other weird crashes
Still have work to do on improving error handling; replacing the built-in
ErrorInner
function might help here.SIGINT handling by Python is broken by
GAP_Intialize
; need to work around this.Testing packages with dynamic loading (e.g. IO):
Install IO:
Test it locally:
This does not yet work:
This should be fixed once GAP's gap binary is built on top of libgap.
See: markuspf/gap#1 I believe this is fixed, but there are still some problems with the way this ticket is "installing" GAP for
$SAGE_LOCAL
.Note:
Upstream PRs
A few pull requests we made to improve use of GAP as a library:
Other open issues that don't have PRs yet:
Some other PRs useful to this effort:
The update of gap_packages and database_gap is on #26856
Tarball: https://www.gap-system.org/pub/gap/gap-4.10/tar.gz/gap-4.10.0.tar.gz
Depends on #26874
CC: @alex-konovalov @dimpase @embray @kiwifb @antonio-rojas @sebasguts @jpflori @sagetrac-markuspf @nthiery @slel @vbraun @williamstein @timokau
Component: interfaces
Keywords: days85, libgap
Stopgaps: error handling in libgap, documentation display
Author: Nicolas M. Thiéry, Dima Pasechnik, Erik Bray, Jeroen Demeyer
Branch:
b446ebb
Reviewer: Erik Bray, Dima Pasechnik, Jeroen Demeyer
Issue created by migration from https://trac.sagemath.org/ticket/22626
The text was updated successfully, but these errors were encountered: