#9914: Remove libraries from extension modules when they are not needed there at
build time
------------------------------+---------------------------------------------
   Reporter:  leif            |       Owner:  leif                              
                                     
       Type:  defect          |      Status:  needs_info                        
                                     
   Priority:  major           |   Milestone:  sage-4.6                          
                                     
  Component:  build           |    Keywords:  module_list.py PARI ImportError 
newforms homspace mwrank upgrade update
     Author:  Leif Leonhardy  |    Upstream:  N/A                               
                                     
   Reviewer:                  |      Merged:                                    
                                     
Work_issues:                  |  
------------------------------+---------------------------------------------
Changes (by leif):

  * status:  needs_work => needs_info


Comment:

 Replying to [comment:6 GeorgSWeber]:
 > Solution:
 >
 > Just artificially bump up the version number of the eclib spkg.
 > (No real changes are done to its contents --- and often in the past,
 even the update of the SPKG.txt was forgotten, but that's another matter,
 one should do that always).
 >
 > As a result, during an update, the eclib spkg *will* be built anew, and
 as a consequence, also during "sage -b" the mentioned extensions are
 rebuilt. Et voila.

 This doesn't work either, see
 http://trac.sagemath.org/sage_trac/ticket/9896#comment:16. (Bumping the
 patch level is equivalent to doing {{{./sage -f ...}}}.)


 > I think there's a very good chance to get the update from Sage-4.5.3 to
 Sage-4.6 working, just by artificially bumping up the version numbers of a
 handful spkg's (in the sense I described above).

 Nevertheless, imagine upgrading MPIR (#8664). Do you want to bump the
 version numbers of dozens of packages? Changing {{{sage-spkg}}} to
 {{{sage-spkg -f}}} in {{{spkg/standard/deps}}} avoids this, but doesn't
 solve all problems we have with (re)building the Sage library.

 Robert B. wanted to make Cython smarter such that more of what's manually
 provided in {{{module_list.py}}} gets deduced automatically from the
 Cython source files (through pragmas), but the new Cython 0.13 doesn't yet
 support these enhancements.

 So unfortunately we currently have to keep hacking {{{module_list.py}}}
 and {{{setup.py}}} to get around subtle dependency issues...

 We might as an alternative add {{{depends = [ ... ]}}} to these extension
 modules to get them updated when ECLIB gets (I think in general not a bad
 idea), but this doesn't really address the PARI issue, i.e. that the
 library should IMHO not be listed there.

 There are or have been btw. other weird things like {{{libcsage}}} and
 {{{libstdc++}}} being linked to each and every module, regardless of the
 language or if the module referenced symbols from there at all.

 I started cleaning up {{{module_list.py}}} month ago (which is quite
 tedious), but then Robert said we'd have a better solution in the near
 future...

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/9914#comment:7>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to