-
-
Notifications
You must be signed in to change notification settings - Fork 491
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
package modular_resolution: Split out from p_group_cohomology #30787
Comments
Dependencies: #28711 |
comment:2
I'll start with summing up what the current p_group_cohomology spkg comprises and how the parts depend upon each other.
|
comment:3
Obviously, 1. and 2. from the previous comment should be in the new modular_resolution spkg. But at what point should 3.-5. be installed? Currently, 5. is installed when making modular_resolution, whereas 3.-4. are installed by p_group_cohomology's spkg-install. Would it be better to install ALL of 3.-5. by modular_resolution's spkg-install (not by the make file)? Or ALL of 3.-5. by p_group_cohomology's spkg-install? Or something else? |
comment:4
The python/cython modules should be left alone, do not bundle anything with it please. Have you thought about upstreaming the Singular library? |
comment:5
Replying to @dimpase:
No. I'm not sure if I should. It is about the computation of Dickson invariants, though. Since Singular has some capabilities of computing non-modular and modular invariant rings of finite group actions, it would somehow make sense to include it in Singular. (EDIT: I think I'll ask the Singular developers). Concerning the analogous question on the GAP package: In this case I think it makes no sense to make it an upstream package. It calls the executables of |
comment:6
Replying to @simon-king-jena:
An important consideration is the ability to have |
comment:7
Replying to @dimpase:
Good point! If one bundles modular_resolution together with the cohomology database (which is currently the case) and with the GAP package, one could add the following self test: Call a function from the GAP package that uses an executable from modular_resolution to create initial data for, say, the cohomology ring of the dihedral group, which is part of the database, i.e., one can verify that the newly created initial data coincides what is found in the data base. |
comment:8
Replying to @simon-king-jena:
parts 3.-4. are outside of the scope of this ticket. part 5. Is it used by 1.-2.? Then it should be included here; otherwise, outside of the scope of this ticket. |
comment:9
Replying to @mkoeppe:
You argued in #28711, comment 58, that "an spkg should either be a pip-installable Python package, or it should be a non-Python package (which can install anywhere in SAGE_LOCAL)." If I understand correctly, it means that not only the C library libmodres but also the database as well as the helpers for GAP and Singular shouldn't be installed by p_group_cohomology (whose main part IS pip-installable). So, 3.-5. should be split out as well and thus ARE in the scope of this ticket.
Then tell me by what source the database should be provided, if it shouldn't be p_group_cohomology. |
comment:10
Replying to @simon-king-jena:
Yes, but this ticket is titled "package modular_resolution: Split out from p_group_cohomology", so it is more narrowly focused than a ticket titled "Split p_group_cohomology into its irreducible components". |
comment:11
Replying to @mkoeppe:
I don't understand what you suggest. Do you suggest to change the title and description of the ticket? Or do you suggest to keep the Singular and Gap helpers in p_group_cohomology and additionally to move the database from modular_cohomology (that's where the database currently is) to p_group_cohomology, even though it is basically a pip installable module? Or something else? |
comment:12
Replying to @simon-king-jena:
Yes, that's my suggestion for this ticket - to keep the ticket simple. Follow-up tickets can take care of further restructuring.
If the |
comment:13
If the database is part of the |
comment:14
Replying to @mkoeppe:
How can this be done? I mean, I know where the database ends up. Makefile.am is
and so the database will be in Is there a standard script in the autotools ecosystem that would provide the correct value of |
comment:15
Replying to @simon-king-jena:
Not depending on Like this: Create template file
and add to configure.ac:
value of No, one would not want to read from DESTDIR. |
comment:16
Replying to @mkoeppe:
Do I understand correctly that the syntax To be clear: Do you suggest that this script will be called by the Python/Cython modules to find out the location of the database? |
comment:17
Replying to @simon-king-jena:
That's right.
Ok, great; but note that it does not do anything about DESTDIR (and should not).
Yes. |
comment:18
Replying to @mkoeppe:
Is this ticket only about creating a new While we are at it: Is there a recommended way (at least recommended in Sage) to read from the output of system calls in Python? |
comment:19
Replying to @simon-king-jena:
Both
I just learned the hard way how to write this portably for Python >= 3.6 (all our currently supported Python versions): Take a look at the most recent version (after #30758) of
|
comment:20
Why would one want to create a custom script Then the Python interface is already there (with Python module |
comment:21
Replying to @dimpase:
I have no preference.
Please do! |
comment:22
We were discussing how to advertise the install location of the data files. Pkgconfig for the library would also be nice of course |
comment:23
Replying to @simon-king-jena:
In particular, I have no idea how to make pkgconfig aware of an autotoolized library: |
comment:24
Replying to @simon-king-jena:
As an example, have a look at e.g. cddlib/cddlib#40
After all this, By the way, you can have a custom variable in .pc file - in your case, say, the path to the database - and request it using |
comment:25
Thank you, Dima! I wonder: Should I add pkg-config to SharedMeatAxe as well? After all, meataxe uses arithmetic tables that are of course stored in some default folder, and currently its location is presented by an environment variable. This variable is needed by the meataxe executables (that are also part of the package), whereas libmtx uses a C variable for the same purpose. I took this design from the original On the other hand, I'm not sure if pkg-config would be the right tool in this case: The location of the tables is in fact not determined by the autotoolised build system, but it is determined at run time -- and moreover the arithmetic tables are first created by spkg-postinst, not by the makefile of meataxe. |
comment:26
Replying to @simon-king-jena:
It certainly simplifies things, to be able to use pkg-config to check the library. E.g. imagine meataxe library available as a Debian package, and then naturally one would want to use it rather than to build Sage's one... As to location of the tables/databases, naturally, there is no standard. Although I imagine there are defaults set in libmtx and in meataxe executables.
How is this determination happening at runtime? Checking an environment variable? Or there is a default value? |
comment:142
I mean specifically the one in the Sage library noted in comment:64. |
comment:143
Outside the scope of the ticket to add such annotations. |
Changed reviewer from John Palmieri, Matthias Koeppe, Dima Pasechnik to John Palmieri, Matthias Koeppe, Dima Pasechnik, Travis Scrimshaw |
comment:144
I disagree. I have pushed it. New commits:
|
comment:145
Do you know that it's a bug? |
comment:146
No as I can't (quickly) find this in the literature (as I don't know this area very well). However, since it is in a tests file, I am operating under the assumption it has been verified through some other means. Furthermore, none of the other results have changed. Simon, perhaps you can comment briefly on this? |
comment:147
Then please clarify the annotation from |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:149
Done. |
comment:150
This is fine with me. |
comment:151
I am setting it back to a positive review then. Simon (or John or someone else if you know), if you could comment on the correctness of the test output, that would be appreciated. |
comment:152
Replying to @tscrim:
In the test, an invariant of the group is calculated. So, if there are two different results than either the result computed by the old package version or the result computed by the new package version is wrong (or both). Therefore certainly one of the two versions has a bug. I could ask Graham Ellis (my co-author in a publication on "persistant group cohomology") if he can compute this example: I know that he has software developed independently of |
comment:153
Replying to @simon-king-jena:
Thank you for your thoughts. Could you please ask him? Independent corroboration would be great. |
Changed branch from u/tscrim/modular_resolution_split-30787 to |
As discussed in #28711 comment:64:
We split the current
p_group_cohomology
spkg:In this ticket, we create the package
modular_resolution
, depending on meataxe-the-C-library, that installs:libmodres.so
in$SAGE_LOCAL/lib
$SAGE_LOCAL/bin
, linked againstlibmodres
This also fixes the build problems of
p_group_cohomology
.Fixing the doctest failures of
p_group_cohomology
is outside of the scope of this ticket. That's #34333.New upstream:
Depends on #34221
Depends on #34291
Upstream: Fixed upstream, in a later stable release.
CC: @simon-king-jena @dimpase @jhpalmieri @tscrim @kwankyu
Component: packages: optional
Keywords: sd111
Author: Matthias Koeppe, Dima Pasechnik, John Palmieri
Branch/Commit:
c7108e9
Reviewer: John Palmieri, Matthias Koeppe, Dima Pasechnik, Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/30787
The text was updated successfully, but these errors were encountered: