-
-
Notifications
You must be signed in to change notification settings - Fork 523
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
Upgrade to pari 2.17.1, cypari 2.2.1, cysignals 1.12.3 #38749
base: develop
Are you sure you want to change the base?
Conversation
Needs work because this is not compatible with 2.15. So either it needs to be merged with the pari upgrade or be made to work with older pari too (no idea how). Running tests now. |
Many test failures. |
a6acbfb
to
f619b6f
Compare
If the changes here eventually allow us to use a system Pari 2.17, then we should undo the change in #38772. |
With this MR and the cypari fixes sagemath/cypari2#165 and sagemath/cypari2#166 all tests are passing with pari 2.17. The changes are not compatible with 2.15 though, making them compatible requires more work. Also, some pari opeations (such as the number field prime ideals above a given prime) give random output with 2.17, which makes it harder to test. To solve both issues (and make tests more future proof), we should gradually move away from testing the exact output to just testing that the output is correct. |
257246c
to
b3c57e1
Compare
I don't want to spoil the happiness, but it looks like on Python 3.12 there are a couple of failed tests (that I've never seen before failing): https://github.com/sagemath/sage/actions/runs/13007996602/job/36279129460?pr=38749#step:10:5594 It might be only one of these temporary issues, maybe an admin can restart the failing run to see if it persists. |
For reference:
Doesn't look temporary but that part of code seem to have nothing to do with pari either. |
You haven't seen it before because the tests were introduced in 10.6.beta5 (#39155). But current master is also failing on the same tests: see, e.g., https://github.com/sagemath/sage/actions/runs/12979684201/job/36195720098 |
`NEXT_PRIME_VIADIFF` is removed in 2.17, port `pari_prime_range` to `pari_PRIMES` instead Needs sagemath/cypari2#165 applied to cypari URL: sagemath#38749 Reported by: Antonio Rojas Reviewer(s): Antonio Rojas, Dima Pasechnik, Gonzalo Tornaría
Probably unrelated, but while testing this PR I hit a timeout in |
I can also reproduce the test hang with PARI 2.15, so this PR is not the problem. Filed #39407. |
`NEXT_PRIME_VIADIFF` is removed in 2.17, port `pari_prime_range` to `pari_PRIMES` instead Needs sagemath/cypari2#165 applied to cypari URL: sagemath#38749 Reported by: Antonio Rojas Reviewer(s): Antonio Rojas, Dima Pasechnik, Gonzalo Tornaría
`NEXT_PRIME_VIADIFF` is removed in 2.17, port `pari_prime_range` to `pari_PRIMES` instead Needs sagemath/cypari2#165 applied to cypari URL: sagemath#38749 Reported by: Antonio Rojas Reviewer(s): Antonio Rojas, Dima Pasechnik, Gonzalo Tornaría
`NEXT_PRIME_VIADIFF` is removed in 2.17, port `pari_prime_range` to `pari_PRIMES` instead Needs sagemath/cypari2#165 applied to cypari URL: sagemath#38749 Reported by: Antonio Rojas Reviewer(s): Antonio Rojas, Dima Pasechnik, Gonzalo Tornaría
`NEXT_PRIME_VIADIFF` is removed in 2.17, port `pari_prime_range` to `pari_PRIMES` instead Needs sagemath/cypari2#165 applied to cypari URL: sagemath#38749 Reported by: Antonio Rojas Reviewer(s): Antonio Rojas, Dima Pasechnik, Gonzalo Tornaría
`NEXT_PRIME_VIADIFF` is removed in 2.17, port `pari_prime_range` to `pari_PRIMES` instead Needs sagemath/cypari2#165 applied to cypari URL: sagemath#38749 Reported by: Antonio Rojas Reviewer(s): Antonio Rojas, Dima Pasechnik, Gonzalo Tornaría
On macos (mac mini m2) I'm getting
|
`NEXT_PRIME_VIADIFF` is removed in 2.17, port `pari_prime_range` to `pari_PRIMES` instead Needs sagemath/cypari2#165 applied to cypari URL: sagemath#38749 Reported by: Antonio Rojas Reviewer(s): Antonio Rojas, Dima Pasechnik, Gonzalo Tornaría
clang 15? This is a very old Xcode, can you upgrade? |
Thats XCode 15.4 released in May 2024
|
and no update available? |
I tested on William's M1 box:
and all was good. |
@vbraun - on the other hand it's a bug of sorts, in cysignals, most probably. @tobiasdiez - here cysignals meson build fails due to an over-strict C compiler which errors upon finding a C++-only flag. |
There is some unrelated bug that keeps me from updating, but also we should build on a less than one year old compiler release... |
I see this on OS X:
For what it's worth:
|
@jhpalmieri Looks like that's an improvement instead of a bug? The first and second number are the lower and upper bound of the rank of MW group, and the output seems to mean in newer PARI version, the code can successfully prove that the rank is exactly 2 instead of just "between 0 and 2". Related: #9322 But because the test is intended to check that the function call doesn't take too long, maybe we should change it to a harder test case? @JohnCremona any comment on this? |
It is not quite as wonderful as you suggest @user202729 . In the old version we only learn that the rank is bounded by 2, with no lower bound and no points. In the new version although the output claims that the rank is 2, it only gives one point, and in fact it has only proved that the lower bound is 1. But conjecturally the difference between the actual rank and the bound (which is called the 2-Se;mer rank) is even (this is a consequence of part of the Birch Swinnerton-Dyer conjectures, and is called the 'parity conjecture'), and Simon's script increases the lower bound by one in such cases. Unless someone can point me to a specific result towards the parity conjecture (there are results in this direction) which justifies this, I would only rigorously conclude from the new output that the rank is either 1 or 2, however much I believe that the rank must in fact be 2, as I would need to be shown a second independent point to be convinced. When I first wrote a Sage wrapper around Simon's script, years ago, I was careful not to use the parity conjecture, so that the lower bound was always equal to the number of points of initinite order returned. (Older versions of Simon's GP code were also a bit careless in the list of points, which might include points of finite order (which do not ontribute to the rank).) In this case, all we are reporting is what the script outputs, so just change the expected output to the actual output. Perhaps with a comment saying that the lower bound has been increased by 1 using the parity conjecture. I did think that now that lipari itself has a very good implementation of 2-descent, we had abandoned Simon's GP version (after many years of useful service). But that is only for curves defined over Q. |
cc @AndreasEnge who is waiting for this to package for guix. |
IIRC correctly, Apple's clang 15 started to convert quite harmless warnings into errors, something that was then rolled back. |
This should be fixed in more recent versions of meson, eg with mesonbuild/meson#13289. |
is this fix already in a released version of meson? |
NEXT_PRIME_VIADIFF
is removed in 2.17, portpari_prime_range
topari_PRIMES
insteadNeeds sagemath/cypari2#165 applied to cypari