#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.

Reply via email to