On Thu, 2023-04-27 at 12:37 -0700, Matthias Koeppe wrote:
> A problem only arises when you try to build a bleeding-edge sage on an older 
> stable distro -- an undertaking unsupported by most projects.
> 
> Is it? I would say that Sage is very special in this regard because of its 
> extreme number of complicated dependencies; and because of its 
> long-standing goals of empowering the members of the user community to 
> become contributors.

"Unsupported" was too strong, but a lot of large projects expect a
higher level of sophistication from developers than users. For example,
you're expected to have the latest GNUlib or autotools installed, or
perhaps the latest LLVM, and a concoction of obscure test-suite
dependencies. Gentoo stable is still on openssl-1.1, and I've had to
put 3.x in /usr/local a few times to build projects that got tired of
adding #ifdefs.

This does... interact... with the goal of making it easy to contribute.
But the complexity of the sage distribution and build system also makes
it harder to use and develop sage.


> But this creates a serious barrier: If Sage development can only be done on 
> bleeding-edge distributions, new Sage developers need to abandon their 
> current distribution. That's really bad.

I agree, and "unsupported" carried the wrong connotation. You can
certainly develop on those distros, but you're responsible for
obtaining the dependencies. You can find them in a third-party rpm/deb
repo, or build them in /usr/local, or install them with Nix/Conda/Guix.

How difficult this is depends on how deeply the dependency is embedded
in the tree. You know this, but for the sake of the list: you can't
build only a local copy of PARI, you have to build local copies of
anything else that will be linked to both PARI and sage. Otherwise
it'll crash when you load both PARIs into the same process. In
contrast, a python package at the edge of the graph can be installed
locally with only a "pip install".

We should take that into account when deciding how important backwards-
compatibility is for a given package; there's no silver bullet.


> Anyone bothered by this can of course send us patches that extend 
> compatibility to older PARI.
> 
> Would we welcome such patches? When we upgrade a package such as PARI, 
> typically very experienced Sage developers have already assessed how easy 
> it would be to keep the old version supported. When it is decided to drop 
> support, it is often not because we don't know how to support both but 
> rather because we do not want to have more complicated code in Sage.

We would have to take into account that breaking compatibility will
force people on old distros to build local copies of not only pari, but
also lcalc, giac, eclib, etc. Cleaning out the sage test suite will
help some, but we will inevitably spend more time on compatibility than
we do now.

I think it's a better use of our time though. We'll be spending time
making sure it works out of the box, rather than spending time on the
fallback that we have to use because it doesn't work out of the box.

-- 
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/3e81f21d8b1723cf8ad6b0d632cae9393dab5c40.camel%40orlitzky.com.

Reply via email to