#18450: Define library dependencies in .pxd files
-------------------------------------+-------------------------------------
Reporter: jdemeyer | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-6.7
Component: cython | Resolution:
Keywords: | Merged in:
Authors: Jeroen Demeyer | Reviewers:
Report Upstream: Reported | Work issues:
upstream. No feedback yet. | Commit:
Branch: | 49029fd4db2d1a2874fab1011c8683ecd7a4bb02
u/jdemeyer/define_library_dependencies_in__pxd_files| Stopgaps:
Dependencies: #18455 |
-------------------------------------+-------------------------------------
Description changed by jdemeyer:
Old description:
> Rather than defining libraries in `module_list.py` or in `.pyx` files, we
> should add them to the `.pxd` files where the declarations are.
>
> In this branch, we do this as proof-of-concept for `pari` and `gmp`.
> Other tickets can be opened later for other libraries.
>
> One annoying part is that the order of libraries is not defined, so we
> need to manually re-order them using one global library order. Since the
> order of libraries currently specified in `src/module_list.py` is far
> from a DAG, many extensions will be compiled with a different library
> order than before.
>
> To clean up, we also remove the explicit mention of `stdc++` for `c++`
> code (which is automatically added anyway).
>
> -----
>
> These are all modules where the list of libraries was actually changed:
>
> This branch ''adds'' `gmp` for all modules where bitsets are used. Some
> bitset functions require GMP, others do not. These modules were only
> using the ones not implemented using GMP:
> * `sage/combinat/debruijn_sequence`
> * `sage/combinat/words/word_char`
> * `sage/graphs/base/static_sparse_backend`
> * `sage/graphs/weakly_chordal`
>
> This branch ''removes'' unused libraries:
> * `sage/graphs/graph_generators_pyx`: removes `gmp`
> * `sage/groups/semimonomial_transformations/semimonomial_transformation`:
> removes `gmp`
> * `sage/combinat/partitions`: removes `gmp` and `mpfr`
>
> -----
>
> We need 2 patches to upstream Cython to fix dependency handling:
> * [https://github.com/cython/cython/pull/381]
> * [https://github.com/cython/cython/pull/392]
New description:
Rather than defining libraries in `module_list.py` or in `.pyx` files, we
should add them to the `.pxd` files where the declarations are.
In this branch, we do this as proof-of-concept for `pari` and `gmp`. Other
tickets can be opened later for other libraries.
One annoying part is that the order of libraries is not defined, so we
need to manually re-order them using one global library order. Since the
order of libraries currently specified in `src/module_list.py` is far from
a DAG, many extensions will be compiled with a different library order
than before.
To clean up, we also remove the explicit mention of `stdc++` for `c++`
code (which is automatically added anyway).
-----
These are all modules where the list of libraries was actually changed:
These were underlinked before:
* `sage/rings/rational`: added `pari`
* `sage/rings/real_arb` (optional): added `gmp`
This branch ''adds'' `gmp` for all modules where bitsets are used. Some
bitset functions require GMP, others do not. These modules were only using
the ones not implemented using GMP:
* `sage/combinat/debruijn_sequence`
* `sage/combinat/words/word_char`
* `sage/graphs/base/static_sparse_backend`
* `sage/graphs/weakly_chordal`
Modules using the Sage/PARI interface but not directly using PARI will now
link against `pari`. Strictly speaking, this is a bug but it's hard to
avoid:
* `sage/rings/real_double`
This branch ''removes'' unused libraries:
* `sage/graphs/graph_generators_pyx`: removes `gmp`
* `sage/groups/semimonomial_transformations/semimonomial_transformation`:
removes `gmp`
* `sage/combinat/partitions`: removes `gmp` and `mpfr`
-----
We need 2 patches to upstream Cython to fix dependency handling:
* [https://github.com/cython/cython/pull/381]
* [https://github.com/cython/cython/pull/392]
--
--
Ticket URL: <http://trac.sagemath.org/ticket/18450#comment:12>
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/d/optout.