I repeat my strong objections to the proposed change -- which does not 
solve any problems and only creates new ones.

1. When you refer to the "huge time sink", I think you are referring to 
painful memories from some distant past. But we have no current or recent 
problem with either the gcc or gfortran package. I fixed the last problems 
with the gfortran package in early 2020; there have not been any problems 
since.

2. We used the gcc spkg as recently as this Spring, for the 9.3 release, in 
order to support Fedora 34, which had just switched to gcc 11. No other 
solution was proposed or feasible at the time because several of our 
standard packages were not ready for this compiler, and a Sage release was 
already long overdue.

3. Your claims regarding availability of the tools on users' systems are 
not substantiated.
a) clang/clang++, other than the version on macOS, is NOT supported by the 
Sage distribution. Only recently we added tests for these compilers 
(https://trac.sagemath.org/ticket/30835), which revealed build problems 
that are still unresolved (https://trac.sagemath.org/ticket/32207).
b) Any talk about FreeBSD is unsubstantiated, there is no systematic effort 
to support it or even test this environment.
c) The use of any Fortran compiler other than homebrew's packaging of 
gfortran on macOS (and our gfortran spkg) is completely unexplored. Given 
the instability of homebrew -- as a rolling platform on which it is not 
possible to install a specific version, it would be reckless to tie 
ourselves to homebrew's gfortran as the only option. (An effort to support 
macports in https://trac.sagemath.org/ticket/31505 is stalled.)
d) Our build on top of conda has been broken for months.

4. I want to caution about a single-user-system centric point of view. 
Non-root users on a multi-user unix system, or on a locked-down corporate 
laptop CANNOT install a system package. By removing SPKGs and demanding 
that the corresponding system package is available, we would make the Sage 
distribution harder to install for users, thus reduce the value that the 
Sage distribution provides for non-root users.

5. The gcc spkg is specifically used in building the binary distribution. 
Any discussion of removing the gcc/gfortran spkgs without including a 
discussion of deployment as the binary package is incomplete. Availability 
of the compilers at runtime is a key feature that we have advertised 
through facilities such as the magic %cython directive and others.

6. (As I explained before in 
https://trac.sagemath.org/ticket/32060#comment:36) There is a crucial 
distinction between the gcc and the gfortran package: On systems with a too 
old or otherwise broken gcc, our gcc spkg often cannot be installed, so the 
gcc spkg is not very useful for dealing with old compilers (but see the 
successful recent use in the Fedora 34 case mentioned above). 
On the other hand, on systems with a working gcc but a missing gfortran, 
building our gfortran spkg is robust, and having it makes our distribution 
useful for a wider range of users.

7. (As I explained before in 
https://trac.sagemath.org/ticket/32532#comment:11) in particular, Python 
users / developers generally have a working gcc (because many Python 
packages include extension modules that need to be compiled) but they have 
no need to have gfortran installed. The reason is that the few Python 
packages that use gfortran (such as scipy) have high-quality deployments of 
wheels to PyPI, which are widely used. Sage, however, does not yet have a 
working strategy that would enable us to use wheels from PyPI. As you know, 
I have been working on a PyPI-based deployment solution for Sage in 
https://trac.sagemath.org/ticket/29039; this builds everything from source. 
Note that Python goes a long way to allow ordinary (non-root) users to 
install packages, either in a virtual environment or in the user scheme 
(pip install --user). gfortran, obviously, is not pip-installable -- so 
Python users would again need root access to install a system package to 
get the compiler.

The project of modularization and PyPI deployment 
(https://trac.sagemath.org/ticket/29705) is complicated enough. I would 
appreciate if we do not create artificial obstacles -- removing gfortran or 
whatever next package you assume is on "everyone's system".

Matthias

On Thursday, September 23, 2021 at 3:17:29 PM UTC-7 Dima Pasechnik wrote:

> https://trac.sagemath.org/ticket/32532 
> <https://trac.sagemath.org/ticket/32532#comment:21> proposes to remove 
> these packages as not needed, and a huge time sink for everyone involved.
>
> Rationale: nowadays every platform that Sage supports has said tools (or 
> their equivalents - e.g. clang/clang++ in case of macOS and FreeBSD) 
> available, if not outright as a system package, but surely with a very 
> minimal effort.
>
> There is no need to carry this baggage forward.
> Moreover, it seems that Sage  is the only Python library/platform around 
> which (potentially) vendors gcc/g++/gfortran. 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/bfd20a60-70d5-49df-bfa3-9d53caa447f7n%40googlegroups.com.

Reply via email to