Changes between Version 207 and Version 294 of Ticket #22626
- Timestamp:
- 11/30/18 10:24:37 (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #22626
-
Property
Commit
changed from
30d1f7fa95fcc9855077c5ed6587748eed1a4cce
to7ccc120e3a606e044bdd9ef6835930075fa70a31
-
Property
Commit
changed from
-
Ticket #22626 – Description
v207 v294 1 GAP 4. 9comes with a completely rewritten build system that will simplify1 GAP 4.10 comes with a completely rewritten build system that will simplify 2 2 our packaging. In particular, libGAP no longer needs to be a separate package. 3 3 … … 16 16 - Update a few doctests w.r.t. changes of output of some GAP functions 17 17 18 - Reworks how gap is installed in `$SAGE_LOCAL`: Rather than installing the entire source tree we just install the `gap` and `libgap` binaries to standard locations, and add a `$SAGE_LOCAL/share/gap` containing the `GAP_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). 19 20 - Some of how this is done is still broken w.r.t. building compiled packages; need to work on it a bit more. 21 18 22 - - **Possibly controversial:** The new libgap currently 'does not come' with symbol rewriting (`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 enums `T_INT`, `T_FLOAT`, ... conflict with Python's constants defined in `structmember.h`. This is hopefully not actually a problem in practice due to the way how Cython orders includes. 19 23 … … 25 29 asked for it to be reported and they will fix it. 26 30 31 - Removes additional patches for now--we would like to focus on being 32 able to work with a system GAP as much as possible. 33 27 34 - Revert #19726 (not needed anymore) 28 35 29 Status: currently broken - crashes deep inside GAP error handling system after few simple commands. 36 === Status === 37 Currently broken - crashes deep inside GAP error handling system after few simple commands. 30 38 31 39 Basic tests on libgap: … … 44 52 Current status: lots of errors 45 53 54 - Still have some miscellaneous segfaults and other weird crashes 55 56 - Still have work to do on improving error handling; replacing the built-in `ErrorInner` function might help here. 57 58 - SIGINT handling by Python is broken by `GAP_Intialize`; need to work around this. 59 46 60 Testing packages with dynamic loading (e.g. IO): 47 61 48 62 Install IO: 49 63 {{{ 50 cd $SAGE/local/gap/latest/pkg 51 wget http://www.gap-system.org/pub/gap/gap4/tar.gz/packages/io-4.4.6.tar.gz 52 tar xvf /tmp/io-4.4.6.tar.gz 53 mv io-4.4.6 io 54 cd io 55 ./configure 64 cd $SAGE_LOCAL/share/gap/pkg 65 wget https://www.gap-system.org/pub/gap/gap4/tar.gz/packages/io-4.5.4.tar.gz 66 tar xvf io-4.5.4.tar.gz 67 cd io-4.5.4 68 ./configure --with-gaproot=../.. 56 69 make 57 70 }}} … … 59 72 Test it locally: 60 73 {{{ 61 cd ../..62 ./gap -l . 74 cd $SAGE_ROOT 75 gap 63 76 gap> LoadPackage("IO"); 64 77 true … … 67 80 This does not yet work: 68 81 {{{ 69 sage: libgap.LoadPackage("IO") 70 ValueError: libGAP: Error, module '/opt/sage-git/local/gap/latest/pkg/io/bin/x86_64-pc-linux-gnu-gcc-default64/io.so' not found 82 #W dlopen() error: /home/embray/src/sagemath/sage/local/share/gap/pkg/io-4.5.4/bin/x86_64-pc-linux-gnu-default64/io.so: undefine\ 83 d symbol: ChangedBags 84 Error, module '/home/embray/src/sagemath/sage/local/share/gap/pkg/io-4.5.4/bin/x86_64-pc-linux-gnu-default64/io.so' not found 85 Error, was not in any namespace 86 Syntax warning: Unbound global variable in /home/embray/src/sagemath/sage/local/share/gap/lib/init.g:803 87 ColorPrompt( UserPreference( "UseColorPrompt" ) ); 88 ^ 89 Error, SetGasmanMessageStatus: function is not yet defined 90 true 71 91 }}} 72 This should be fixed once GAP's gap binary is built on top of libgap.73 See: https://github.com/markuspf/gap/issues/1 .92 ~~This should be fixed once GAP's gap binary is built on top of libgap. 93 See: https://github.com/markuspf/gap/issues/1~~ I believe this is fixed, but there are still some problems with the way this ticket is "installing" GAP for `$SAGE_LOCAL`. 74 94 75 95 Note: … … 77 97 - Max Horn reviewed the list of GAP symbols we use in Sage; some have already changed in 4.9. See this [[https://hackmd.io/emNi76svSWCh1fBeLKqPdA?edit#|pad]] for notes. 78 98 99 100 === Upstream PRs === 101 102 A few pull requests we made to improve use of GAP as a library: 103 104 * https://github.com/gap-system/gap/pull/3043 105 * https://github.com/gap-system/gap/pull/3072 106 107 Some other PRs useful to this effort: 108 109 * https://github.com/gap-system/gap/pull/3065 110 * https://github.com/gap-system/gap/pull/2952 111 112 79 113 '''Tarball''': https://www.gap-system.org/pub/gap/gap-4.10/tar.gz/gap-4.10.0.tar.gz