Changes between Version 173 and Version 197 of Ticket #18514


Ignore:
Timestamp:
01/14/18 02:26:43 (3 years ago)
Author:
SimonKing
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #18514

    • Property Status changed from needs_info to needs_review
    • Property Dependencies changed from #21437 to #24359 #24468
    • Property Commit changed from 12e1bc50e4ef6ceedaaf30e66e1fd03d5d1cadf6 to 5e011619bc4814aeb02f785e327fb7ecff8eda1f
  • Ticket #18514 – Description

    v173 v197  
    1 The current "official" version of `p_group_cohomology` is 2.1.4. However, due to recent backward incompatible changes in Sage, the package would not install, respectively it would install if some header were present but wouldn't work. Hence, an upgrade is needed.
     1In the past, p_group_cohomology-2.1.4 was an optional spkg. Sage dropped support for old style spkgs, and thus only an experimental spkg remained.
    22
    3 While I was at it, I have also improved the computation of Poincaré series, depth and filter degree type (the latter now uses a Hilbert-driven computation of Gröbner bases in elimination order, which works since in that setting the Hilbert function is easily available), and I added new functionality related with nilpotency.
     3The purpose of this ticket is to provide a new group cohomology package for Sage. I suggest to make it optional (not experimental).
    44
    5 There is an old-style spkg at http://users.minet.uni-jena.de/cohomology/p_group_cohomology-2.1.6.spkg that users can install if they want to do cohomology calculations *now*. However, I suggest to a version 3.0 of the package, which shall be a new-style package.
     5In the experimental version 2.1.5, I have improved the computation of Poincaré series, depth and filter degree type (the latter now uses a Hilbert-driven computation of Gröbner bases in elimination order, which works since in that setting the Hilbert function is easily available), and I added new functionality related with nilpotency.
    66
    7 The old-style package comprises three code bases: An old meataxe version, C code of David Green that uses a custom makefile, and P/Cython/Gap/Singular code equipped with a doc builder and a large-ish doc tester that executes each test in a separate Sage session, rather than running all tests of one file in one session (in order to prevent side-effects).
     7Package structure
     8=================
    89
    9 The group cohomology spkg will be refactored as follows:
     10Version 3.0 is refactored as follows:
    1011
    11 - It depends on the optional meataxe package (see #12103), which is based on the most recent upstream version available in Aachen and is of independent use in Sage (as it speeds up matrix arithmetic over some fields).
    12 - Its first component is a refactored version of David Green's code, which is based on the new optional meataxe package, does proper error propagation, and is built using autotools.
    13 - Its second component is all the Python/Cython/Gap/Singular code, that spkg-install installs the pip way.
     12- It depends on the optional meataxe package (see #24359), which is based on a fork of !MeatAxe.
     13- The spkg-install script first tests whether the !SmallGroups library is installed in GAP. If it isn't, a warning is printed; however, the package still gets installed, as it only is a runtime dependency.
     14- The C code written by David Green has become an autotoolized shared library.
     15- Gap and Singular code is put into `SAGE_SHARE/`, where GAP and Singular libraries belong.
     16- The rest of the package is formed by python and cython code, and uses pip for installation.
     17- The documentation is built in an improved way.
     18
     19Further changes
     20===============
     21
    1422- The custom logging in the old spkg is replaced by Python's logging module.
    15 - The tests avoid side-effects by using a reset function. Hence, no custom doc tester is needed.
    16 - In some way (perhaps using google-style docstrings) the docs are built.
     23- The tests avoid side-effects by using a reset function. Hence, no custom doc tester is needed: `sage -t` is enough.
     24- In the previous spkg, I tried to be as backward compatible as possible. But now I'm dropping support for very old Singular versions.
     25- Some experimental options for the cohomology computation are removed.
    1726
    18 '''__What info do I need to finish work__'''
     27Many tests have changed, since the ring presentations of the computed cohomology rings, specifically for non-primepower groups, have changed. I do not fully understand ''why'' they changed. but it seems that it is a consequence of changes in Singular. The changes did (of course...) not affect the isomorphism types of the rings.
    1928
    20 - Please point me to an example of a new style spkg that builds a C library ''and'' Cython modules (not in Sage's src tree) that link against the library. I want to know how it is done right (in my old spkg, it was certainly not done totally right).
    21 - Please point me to an example of a new style spkg that builds documentation based on doc strings in the Cython code. This definitely isn't done well in my old style spkg. I would prefer !SageMath doc formatting, but wouldn't mind too much to change everything to, say, google formatting.
     29'''Upstream tar ball'''
    2230
    23 '''Upstream tar ball''' http://users.minet.uni-jena.de/cohomology/modular_resolution-1.0.tar.gz
     31http://users.minet.uni-jena.de/cohomology/p_group_cohomology-3.0.tar.gz