#15666: p_group_cohomology upgrade
-------------------------------------------------+-------------------------
       Reporter:  SimonKing                      |        Owner:
           Type:  defect                         |       Status:  new
       Priority:  major                          |    Milestone:  sage-6.1
      Component:  packages: optional             |   Resolution:
       Keywords:  group cohomology               |    Merged in:
        Authors:  Simon King                     |    Reviewers:
Report Upstream:  None of the above - read trac  |  Work issues:
  for reasoning.                                 |       Commit:
         Branch:                                 |     Stopgaps:
   Dependencies:                                 |
-------------------------------------------------+-------------------------
Changes (by {'newvalue': u'Simon King', 'oldvalue': ''}):

 * author:   => Simon King
 * upstream:  N/A => None of the above - read trac for reasoning.


Old description:

> The optional package `p_group_cohomology-2.1.4` does not install on
> sage-6.1.b4. First problem: It tries to include `interrupt.pxi`, but
> apparently these things have moved.
>
> Also, it is using the old spkg layout. With a little help from an expert
> of the new conventions after switching to git, this could be fixed as
> well.

New description:

 The optional package `p_group_cohomology-2.1.4` does not install on
 sage-6.1.b4. First problem: It tries to include `interrupt.pxi`, but
 apparently these things have moved.

 Also, it is using the old spkg layout. With a little help from an expert
 of the new conventions after switching to git, this could be fixed as
 well.

 A package version that installs both on sage-5.12, sage-5.13 and
 sage-6.1.beta4 is available at
 
[http://sage.math.washington.edu/home/SimonKing/Cohomology/p_group_cohomology-2.1.4.p1.spkg]

--

Comment:

 As a first step, I was fixing the most urgent problem: The package did not
 build on the most recent Sage versions. Also, the expected output of some
 doctests changed (old and new result are mathematically equivalent).

 A colleague of mine had problems to load cohomology rings that he computed
 and saved with previous versions of the spkg. The underlying problem was
 that the address of the group in the small groups library is supposed to
 be a pair of integers, but the package did not complain if is was given by
 two integers defined in the GAP pexpect interface. If you then saved the
 cohomology ring, the pexpect element would be part of the pickle---but can
 not be unpickled, because the element is defined in terms of a GAP session
 that is not available when one reloads the data.

 So, I needed to do two or three more changes:
 - If a saved cohomology ring is loaded, then "custom" attributes depending
 on pexpect elements are simply ignored. If the loaded ring's attribute
 `_key` (which is important for the cache of cohomology rings) depends on
 pexpect (which is the case in the scenario sketched above), then it is
 attempted to reconstruct it from other available data. This was enough to
 rescue the data of my colleague, but admittedly it involves some trickery.
 - The small groups library address is now always transformed into a pair
 of (Sage) integers, even if it was originally provided by GAP-via-pexpect.

 So I think there already is something that can be reviewed.

 What is not done ''yet'' (and therefore it is 2.1.4.p1 and not 2.1.5):
 - Updated SPKG.txt
 - Transition to git. Here I'd really need some guidance how to "track its
 contents in my own repository": How to set up a repository at university
 of Washington (I think there is the "official" home of the package: public
 documentation, download site and database), so that people can pull from
 it? How to set it up such that I can push to it from Jena?

 What will not be done: Moving my fork to more recent `MeatAxe`. Reasons:
 - My current project is to replace the algorithm for computing minimal
 projective resolutions by something faster (using a non-commutative F5
 algorithm). This, I plan to do in the Sage library, relying on the
 matrices available there (e.g., Linbox). Hence, `MeatAxe` is not involved
 in my current project.
 - Rebasing my patches on top of the new version would involve a lot of
 work.
 - David Green's code for computing minimal projective resolutions uses
 `MeatAxe` for matrix arithmetic, and it was written using the old
 `MeatAxe` version. Hence, I would need to change a substantial amount of
 C-code that was not authored by me. Not a nice job.

 So, I would only consider to switch to the latest `MeatAxe` if there would
 be a good reason. However, the matrix arithmetic in the latest `MeatAxe`
 version is not superior to the old version (`MeatAxe` is much more than
 matrix arithmetic, by the way, but I am using it, since `MeatAxe`'s matrix
 arithmetic non-prime fields of odd order <255 is substantially faster than
 the matrix implementation that is currently used in Sage).

--
Ticket URL: <http://trac.sagemath.org/ticket/15666#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to