8 | | Fetching the Markus's GAP sources: |
| 8 | |
| 9 | What the branch does: |
| 10 | - Remove the libgap spkg |
| 11 | |
| 12 | - Update the gap spkg to the new build system and build and install libgap |
| 13 | |
| 14 | - Replace gap.shi.patch by a plain gap startup script for Sage |
| 15 | |
| 16 | Rationale: GAP used to provide a startup shell script. The GAP devs |
| 17 | are in the process of getting rid of it and provide a very minimal |
| 18 | one. They recommend to just write our own rather than patching it. |
| 19 | |
| 20 | - Update a few doctests w.r.t. changes of output of some GAP functions |
| 21 | |
| 22 | - ??? |
| 23 | |
| 24 | TODO: |
| 25 | |
| 26 | - Automatic handling of headers (see below for how to do it by hand). |
| 27 | GAP's build system will eventuall provide a rule to install headers |
| 28 | which will make this trivial. |
| 29 | |
| 30 | - Use GAP's own `make install` when it will be implemented. |
| 31 | |
| 32 | |
| 33 | Fetching Markus's GAP sources: |
| 76 | |
| 77 | Basic tests on libgap: |
| 78 | {{{ |
| 79 | sage: libgap.eval("GAPInfo.Version") |
| 80 | sage: libgap.DihedralGroup(10).CharacterTable() |
| 81 | CharacterTable( <pc group of size 10 with 2 generators> ) |
| 82 | sage: libgap.Group(libgap.eval("[(1,2,3),(1,2)]")).Size() |
| 83 | 6 |
| 84 | }}} |
| 85 | |
| 86 | Running most relevant tests: |
| 87 | {{{ |
| 88 | sage -tp 8 sage/groups sage/libs/gap |
| 89 | }}} |
| 90 | Current status: all tests pass! |
| 91 | |
| 92 | Testing packages with dynamic loading (e.g. IO): |
| 93 | |
| 94 | Install IO: |
| 95 | {{{ |
| 96 | cd $SAGE/local/gap/latest/pkg |
| 97 | wget http://www.gap-system.org/pub/gap/gap4/tar.gz/packages/io-4.4.6.tar.gz |
| 98 | tar xvf /tmp/io-4.4.6.tar.gz |
| 99 | mv io-4.4.6 io |
| 100 | cd io |
| 101 | ./configure |
| 102 | make |
| 103 | }}} |
| 104 | |
| 105 | Test it locally: |
| 106 | {{{ |
| 107 | cd ../.. |
| 108 | ./gap -l . |
| 109 | gap> LoadPackage("IO"); |
| 110 | true |
| 111 | }}} |
| 112 | |
| 113 | This does not yet work: |
| 114 | {{{ |
| 115 | sage: libgap.LoadPackage("IO") |
| 116 | ValueError: libGAP: Error, module '/opt/sage-git/local/gap/latest/pkg/io/bin/x86_64-pc-linux-gnu-gcc-default64/io.so' not found |
| 117 | }}} |
| 118 | This should be fixed once GAP's gap binary is built on top of libgap. |
| 119 | See: https://github.com/markuspf/gap/issues/1. |