Hi, I've separated sage.libs.giac into its own package, and would like
to downgrade giac to optional at the same time the new package is
added, cf.

  * https://github.com/sagemath/sagemath-giac
  * https://github.com/sagemath/sage/pull/39376

tl;dr now is the time to object.

The reason for this, and the reason why I am working on this in the
first place, is because giac no longer builds and runs reliably. It
fails:

  * On riscv systems
  * On systems with a hardened glibcxx
  * On macos M2 (according to Volker)
  * With gcc-15, due out in the next few months

There is "inertia" with respect to getting any of these fixed. For
myself, the list above now covers 100% of the machines that I use on a
daily basis. And since libgiac is linked with sage, having giac as an
unconditional dependency makes it very difficult to use sage.
(Thankfully, giac is already optional when using meson to build sage.)

On any of those systems, we need a way to disable giac and the
sage.libs.giac integration. That's the motivation for the new
package/PR. The remaining question is, do we leave giac and
sagemath-giac as standard, and tell everyone who experiences problems
to disable it? (We would also need a mechanism to disable it.) Or do
we make it optional, and let the people who use it enable it?

Currently the PR makes it optional. I think there are some good
arguments for this:

  1. It used to be optional a few years ago. We moved it into sagelib
     to avoid a circular dependency between sagelib -> sagemath-giac
     -> sagelib, but now there is no circular dependency. All integration
     backends are "optional" because we run through the list and skip
     any that don't return a result.

  2. It's already optional when you use meson to build sagelib, so this
     makes the two approaches consistent.

  3. We don't lose any killer features, only a few clever integrals
     that maxima/sympy can't solve.

  4. It makes us look bad when things fail and we have to tell people
     on the mailing list how to work around it.

  5. Build time goes down.

  6. Sage is less likely to break during "apt-get upgrade" or
     equivalent.

  7. If you want it back, "make sagemath_giac" or ./configure
     --enable-sagemath_giac only take a minute.

On the other hand the biggest downside is that if someone was using
libgiac directly in their own code or was relying on it for some
indefinite integrals, then they are probably going to be confused when
it isn't there in the next release. It's easy to fix, but they're
going to have to ask what happened first, and obviously that hits (4)
above too. FWIW I would write this all up in the release notes.

-- 
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 visit 
https://groups.google.com/d/msgid/sage-devel/Z7ZrzabybltgKTzx%40mertle.

Reply via email to