Open
Description
Giac is a PITA to have as a dependency:
- There's no public source repository
- There's no bug tracker
- There are no release announcements, new releases just show up in some random directory...
- If you can tell what is the latest release, because there's no coherent version scheme
- No one knows what's in the new releases, breaking changes show up in what appear to be minor versions
- The tarball is manually generated and often contains random files from the author's computer
- The test suite for every version fails on almost every machine
- Recent releases contain undefined behavior that is retained intentionally even though it crashes glibcxx
- The build emits hundreds of compiler warnings
- As a result of all of this, each release requires heavy patching (i.e. time & effort) even on "boring" systems
- But now I have a new computer that is not boring, and those compiler warnings weren't kidding, because giac segfaults all over the place
- So I can't use giac any more, and if Sage has a hard dependency on it, then I can't use Sage any more either
Fortunately it looks like it won't be too hard to make giac optional in Sage:
- Remove giac integration from GiNaC #38669
- src/sage/features/giac.py: add new feature for the giac program #38672
- Tweak a few tests to pass when giac is not installed #38690
- src/sage/symbolic/integration: make libgiac integration optional #38756
- Use the faster libgiac interface for "giac" integration #38686 (not strictly required, but it conflicts with several "needs" tags)
- Add "needs" tags for giac and libgiac #38770
- Replace sage.libs.giac with new optional package sagemath-giac #39376
We lose a few integration examples in the doctests when the giac algorithm is skipped in favor of sympy, but that's about it.
Metadata
Metadata
Assignees
Labels
No labels