Changes between Version 207 and Version 294 of Ticket #22626


Ignore:
Timestamp:
11/30/18 10:24:37 (3 years ago)
Author:
embray
Comment:

Added some more current status updates.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #22626

    • Property Commit changed from 30d1f7fa95fcc9855077c5ed6587748eed1a4cce to 7ccc120e3a606e044bdd9ef6835930075fa70a31
  • Ticket #22626 – Description

    v207 v294  
    1 GAP 4.9 comes with a completely rewritten build system that will simplify
     1GAP 4.10 comes with a completely rewritten build system that will simplify
    22our packaging. In particular, libGAP no longer needs to be a separate package.
    33
     
    1616- Update a few doctests w.r.t. changes of output of some GAP functions
    1717
     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
    1822- - **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.
    1923
     
    2529  asked for it to be reported and they will fix it.
    2630
     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
    2734- Revert #19726 (not needed anymore)
    2835
    29 Status: currently broken  - crashes deep inside GAP error handling system after few simple commands.
     36=== Status ===
     37Currently broken - crashes deep inside GAP error handling system after few simple commands.
    3038
    3139Basic tests on libgap:
     
    4452Current status: lots of errors
    4553
     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
    4660Testing packages with dynamic loading (e.g. IO):
    4761
    4862Install IO:
    4963{{{
    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
     64cd $SAGE_LOCAL/share/gap/pkg
     65wget https://www.gap-system.org/pub/gap/gap4/tar.gz/packages/io-4.5.4.tar.gz
     66tar xvf io-4.5.4.tar.gz
     67cd io-4.5.4
     68./configure --with-gaproot=../..
    5669make
    5770}}}
     
    5972Test it locally:
    6073{{{
    61 cd ../..
    62 ./gap -l .
     74cd $SAGE_ROOT
     75gap
    6376gap> LoadPackage("IO");
    6477true
     
    6780This does not yet work:
    6881{{{
    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\
     83d symbol: ChangedBags
     84Error, 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
     85Error, was not in any namespace
     86Syntax warning: Unbound global variable in /home/embray/src/sagemath/sage/local/share/gap/lib/init.g:803
     87    ColorPrompt( UserPreference( "UseColorPrompt" ) );
     88               ^
     89Error, SetGasmanMessageStatus: function is not yet defined
     90true
    7191}}}
    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.
     93See: 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`.
    7494
    7595Note:
     
    7797- 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.
    7898
     99
     100=== Upstream PRs ===
     101
     102A 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
     107Some 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
    79113'''Tarball''': https://www.gap-system.org/pub/gap/gap-4.10/tar.gz/gap-4.10.0.tar.gz