#11377 closed enhancement (fixed)
Clean and harmonize module_list.py
Reported by: | fbissey | Owned by: | GeorgSWeber |
---|---|---|---|
Priority: | critical | Milestone: | sage-4.7.1 |
Component: | build | Keywords: | sd31 |
Cc: | strogdon, robertwb | Merged in: | sage-4.7.1.alpha4 |
Authors: | François Bissey | Reviewers: | Volker Braun |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
module_list.py is quite messy in its current state. There are several things that can be done:
- remove the unused debian bits
- we have SAGE_LOCAL and SAGE_INC variables but there use iis not uniform
- we also have numpy_include_dirs, numpy_depends, flint_depends, singular_depends and ginac_depends and most of them are under-used.
In this ticket I remove old debian stuff, use SAGE_INC, SAGE_LOCAL and the other variables in a uniform fashion removing all instances of SAGE_ROOT +/local/... and so on to replace it by the appropriate variable.
Apply:
Attachments (2)
Change History (18)
Changed 8 years ago by
comment:1 Changed 8 years ago by
- Status changed from new to needs_review
comment:2 Changed 8 years ago by
- Cc strogdon added
comment:3 Changed 8 years ago by
Now that 4.7.1.alpha0 is out this can be reviewed.
comment:4 Changed 8 years ago by
- Status changed from needs_review to needs_work
Looks good to me. But in Sage-4.7.1.alpha2 there were some more extension modules added (under sage.groups.perm_gps.partn_ref). Can you updated your patch for that? I'll review it then asap.
comment:5 Changed 8 years ago by
- Keywords sd31 added
comment:6 Changed 8 years ago by
It is up to date for 4.7.1.alpha2 already. The only possible problems could be with #9989 depending on which one is merged first and whether my suggested changes for it are accepted.
comment:7 Changed 8 years ago by
The patch applies, but sage.groups.perm_gps.partn_ref.*
don't use SAGE_INC
and the flint_depends
:
Extension('sage.groups.perm_gps.partn_ref.automorphism_group_canonical_label', sources = ['sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx'], libraries = ['gmp', 'flint'], include_dirs = [SAGE_ROOT + '/local/include/FLINT/'], extra_compile_args = ['-std=c99'], depends = [SAGE_ROOT + "/local/include/FLINT/flint.h"]),
comment:8 Changed 8 years ago by
I thought I had taken care of that. My apologies it will take a few hours until I can take care of them.
Changed 8 years ago by
I missed a number of flint dependencies in the original patch. Apply trac_11377-build_module_listpy.patchafter
comment:9 Changed 8 years ago by
- Description modified (diff)
- Status changed from needs_work to needs_review
It turns out I had missed another instance of flint in sage.set.disjoints.set. So the additional patch takes care of it. It was all done on top of alpha2, hopefully there is nothing wrecking it already in alpha3.
comment:10 Changed 8 years ago by
In the last patch description the word after shouldn't have come last. It is applied after trac_11377-build_module_listpy.patch.
comment:11 Changed 8 years ago by
- Reviewers set to Volker Braun
- Status changed from needs_review to positive_review
Looks great!
comment:12 Changed 8 years ago by
- Priority changed from major to critical
comment:13 Changed 8 years ago by
- Merged in set to sage-4.7.1.alpha4
- Resolution set to fixed
- Status changed from positive_review to closed
comment:14 Changed 8 years ago by
- Cc robertwb added
Would have been nice if you'd cc'ed me ;-) (as I have introduced SAGE_INC
:-) and always been interested in cleaning the whole mess up, not to mention tickets like #8664, #9914, or the "final" trouble with #4000 ...).
Robert B. originally planned (about 14+ month ago, cf. e.g. #7987) to "automate" most of what's currently hand-coded in module_list.py
(by Cython pragmas local to the modules' files), so I mostly made changes that affect only small parts.
Btw, I may have missed something, but neither alpha4 (nor alpha3) have yet been announced; the README.FIRST
s still state
There is no point in testing it because the version can change any time.
comment:15 follow-up: ↓ 16 Changed 8 years ago by
Hi Robert,
sorry I didn't know you had introduced it. I was vaguely aware of the existence of an effort like #7987 but didn't know the ticket or that a ticket was actually open.
I must say my primary aim was the elimination of reference to SAGE_ROOT which is a pain for sage-on-gentoo. And of course once started I had to clean the whole thing, I have been waiting for some time with my clean up patch I can tell you. So I am glad it got reviewed positively and all.
comment:16 in reply to: ↑ 15 Changed 8 years ago by
Replying to fbissey:
And of course once started I had to clean the whole thing, I have been waiting for some time with my clean up patch I can tell you. So I am glad it got reviewed positively and all.
And above all merged! Making larger changes to module_list.py
is some kind of Sisyphean task since many tickets (unrelated to the build system) frequently modify parts of it.
Reducing the need for the latter should IMHO be the next step, as it somewhat thwarts concurrent, modular development and maintainability.
I've more than once spent days to figure out and remove useless dependencies (e.g. on libraries) last year, in some cases just to - not much later - see the effort being more or less in vain...
patch to module_list.py