New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pari: update to 2.13.2. #32453
pari: update to 2.13.2. #32453
Conversation
The package is yours. |
Can you try the |
A quick informal test shows that while adding that option improves the dynamic binary a bit, it's not close to recovering what is lost from pthreads. Running the script below with the current version in the repos (no pthreads, no CFLAGS):
Now with the new version, enabling pthreads:
So for this particular test, there's a 40% loss by going dynamic with Note that we are NOT static linking system libraries. It's only
|
Failures are due to a dependant package (giac) which is affected since the soname changed (because of the switch to pthreads). I'll deal with that, and maybe take the chance to upgrade giac. |
I think linking it in statically is valid. Quite unfortunate that the flag wasn't enough, but it might be more pronounced on python than on gp, especially if the binary makes lots of calls to the library instead of a single call and now the rest runs inside the library. |
All tests are ok, except on aarch64 and aarch64-musl it's trying to build qt5, which is a dependency of qcas. I think pari and giac are built ok before that, so I'd take this as check ok for all architectures. I didn't change qcas at all, only revbumped and fix a xlint in the short_desc. As a matter of fact, the current version of qcas in the repos is already broken before me changing pari due to a missing symbol; maybe no one uses qcas (I don't). Anyway after this PR it works at least on x86-64 so it's definitely an improvement. |
- enable pthreads build - switch gp binary to static link libpari; this offsets the slowdown due to pthreads - use -flto and -fno-semantic-interposition which improve speed a little bit more - ship the static library, so external programs can static link - change of maintainer agreed by sgn I had to add a minimal patch to the makefile, so that the build step builds and the install step installs. I will try to upstream that patch.
If all checks pass, then it's ready. Thanks a lot for your careful and constructive review. |
aarch64 is just a tad stuck :p Thanks! |
Rationale:
-flto
saves maybe 1-2% at most,-fno-semantic-interposition
saves 5-7%, but we are still about 25-30% behind.@sgn: if you agree, I am willing to take over maintainership. I have used pari for 25+ years, and I use it almost daily.
Have the results of the proposed changes been tested?