#18494: Install sage headers and auxiliary files (.h/.pxd/.pxi files)
-------------------------------------+-------------------------------------
Reporter: fbissey | Owner:
Type: defect | Status: needs_review
Priority: major | Milestone: sage-6.8
Component: distribution | Resolution:
Keywords: | Merged in:
Authors: François Bissey | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/fbissey/headers_install | d76f95f41bb890dc742fe20a3c5880e765ea2fe4
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Changes (by {'newvalue': u'Fran\xe7ois Bissey', 'oldvalue': ''}):
* status: new => needs_review
* commit: => d76f95f41bb890dc742fe20a3c5880e765ea2fe4
* branch: => u/fbissey/headers_install
* author: => François Bissey
Old description:
> Currently, Sage doesn't install any files other than `.py` and compiled
> cython code. Headers and other auxiliary files that are necessary for
> compiling user code (such as the `cython()` command or certain optional
> packages) are kept in the `src` directory and we rely on its presence.
> Since #18027 we also rely on the presence of the `src/build/cythonized`
> directory. It would be good if sage could just work without relying on
> the presence of it source and build directory.
New description:
Currently, Sage doesn't install any files other than `.py` and compiled
cython code. Headers and other auxiliary files that are necessary for
compiling user code (such as the `cython()` command or certain optional
packages) are kept in the `src` directory and we rely on its presence.
Since #18027 we also rely on the presence of the `src/build/cythonized`
directory. It would be good if sage could just work without relying on the
presence of it source and build directory.
--
Comment:
I disagree. include dirs being the same in `setup.py` and `cython.py` is
on the nice to have list but there is no compelling reason why install
time and runtime absolutely have to match. In this particular case having
the same list in `cython.py` has in `setup.py` means that you want to use
the source instead of the installed files at runtime. I don't find that
compelling. I cannot really accept a cythonize/"install
headers"/build/"final install" routine which could put the two in
agreement. I think that's undue complication an breaking of standard
building procedures.
So what the current branch does:
* clean up the "cythonized" path from `pxi.h`
* clean `cython.py` so it use installed include directories rather than
source ones. Prune useless directories as well and use python mechanism as
much as possible rather than path "knowledge" (potentially help python2.3
as well)
* add cythonized include path in `setup.py` so that `pxi.h` can find the
generated include files at build time
* add sections to `setup.py` to install header files under `sage/ext`
including the generated headers. Also install all `.pxi` and `.pxd` files
* also replace one instance of path knowledge by python mechanism in
`source.py`
There is more that could be done but I don't want to extend the scope of
the ticket. I have bled a little on one extra file as it is.
----
New commits:
||[http://git.sagemath.org/sage.git/commit/?id=d76f95f41bb890dc742fe20a3c5880e765ea2fe4
d76f95f]||{{{Instll headers and px{i,d} files. Makes cython.py use
installed files rather than source, small clean up of path
determination.}}}||
--
Ticket URL: <http://trac.sagemath.org/ticket/18494#comment:19>
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.