On 14 Dez., 05:59, David Kirkby <david.kir...@onetel.net> wrote:
> If anyone said including our own compiler with Sage is taking the
> "batteries included" approach too far, I would NOT disagree with them,
>
> But there do appear to be issues which may be difficult / impossible
> to resolve with Sage upgrades using gcc that uses Sage's GMP, MPFR and
> MPC (See Leif's comments on this issue).
>
> We could avoid that by shipping our own gcc. I calculate it would add
> only 1.6 MB to the bulk of Sage if we used the latest (4.5.1) gcc and
> could *reduce* the size of Sage if we used an earlier version.
>
> Given gcc 4.5.1 is 63 MB in size, you might wonder why I calculate
> shipping gcc would add <= 1.6 MB.
>
> First we would not need the Java or Objective C front ends, so there's
> no need to include the full gcc release.  So we would add a package
> which includes only:
>
>  * gcc core (27 MB)
>  * C++ front end (6.2 MB)
>  * Fortran front end (1.4 MB)
>
> Then we REMOVE the Fortran binaries, which are only needed on OS X.
> These take up 33 MB.
>
> sage: 27+6.2+1.4-33
> 1.60000000000000
> sage:
>
> Pros:
> * No worries about gcc finding the wrong libraries during upgrades, as
> it would use those in $SAGE_LOCAL/lib
> * We would know what version of gcc people would using, so would not
> have to contend with gcc-specific bugs.
> * Building on Solaris would be a lot easier, as nobody would need to
> install a recent gcc.
> * We could remove the code in bits of Sage that checks if g95 or gcc
> is used, since we know gcc would be used.
> * We could remove the code in ATLAS (and perhaps elsewhere) which
> tests if g95 or gfortran are used.
> * We could forget about setting SAGE_FORTRAN and SAGE_FORTRAN_LIB
> variables as they would be unneeded.
> * If instead of using the latest gcc, we used an earlier version, we
> would undoubtedly make the compiler package smaller than the Fortran
> binaries we remove.
>
> Cons:
>  * It would make Sage 1.6 MB larger
>  * It would slow builds on any system where the Sage gcc was used in
> preference to a system one.
>
> It would be sensible to add a bit of code that allows one to use the
> system compilers.

;D :D :D

An absolutely great idea.

We could also remove targets not supported by Sage from the GCC source
tree.

One problem remains: If we ship a more recent GCC, we still need to
build GMP/MPIR, perhaps also MPFR and MPC, with the system's C
compiler, preferably some GCC version, at least for bootstrapping our
compiler.

(Btw., I failed in trying to compile some older versions of GCC with
newer ones, e.g. 4.0.x with 4.3.3, 4.4.3 and 4.5.1.)


Thanks for that post, you made my day.
Perhaps people *now* get more convinced of removing the Fortran
compiler binaries from the Sage source tarball. :)


-Leif

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to