-
-
Notifications
You must be signed in to change notification settings - Fork 479
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
allowing external ECM to be called gmp-ecm or ecm #37011
Conversation
This problem was mentioned in #36860 |
Do we need |
build/pkgs/ecm/spkg-configure.m4
Outdated
if test x$ECMBIN != x; then | ||
SAGE_ECM_BIN=`basename $ECMBIN` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why basename
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pretty sure that's a -z
test in disguise, too
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because sage.interfaces.ecm
takes ecm
or gmp-ecm
as the data it needs to call the executable, not the full path. So it assumes it's on PATH, I'm just keeping it like this here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe the PATH was only set at configure
time?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same argument applies for the previous design. How is this relevant to this PR?
@@ -212,6 +212,7 @@ def var(key: str, *fallbacks: Optional[str], force: bool = False) -> Optional[st | |||
MAXIMA_FAS = var("MAXIMA_FAS") | |||
KENZO_FAS = var("KENZO_FAS") | |||
SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "") | |||
SAGE_ECMBIN = var("SAGE_ECMBIN") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SAGE_ECMBIN = var("SAGE_ECMBIN") | |
ECM = var("ECM") |
... just like MAXIMA
. Only nauty has this weird naming
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need a variable for everything under the sun? There's a well established way to configure binary locations, it's called PATH
. If you must: wouldn't it be better to use SAGE_*
to keep it in sage "namespace"?
As for the two standard names for the binary, that's unfortunate, is there a valid reason why Fedora does that? Is it possible/desirable to have the executable feature try both?
For non-standard setups one can always place a symlink in a custom directory and add it to PATH.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A symlink worked and one could asked fedora packagers to place this symlink, but apparently it is not the only distribution. Concerning the error in src/sage/libs/gap/element.pyx
, it happens in line 2489:
for i in range(100):
rnd = [ randint(-10,10) for i in range(randint(0,7)) ]
# compute the sum in GAP
_ = libgap.Sum(rnd)
try:
libgap.Sum(*rnd)
print('This should have triggered a ValueError')
print('because Sum needs a list as argument')
except ValueError:
pass
getting Killed due to segmentation fault
. Running this code in the terminal works, the error appears only in tests and with python 3.12.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A symlink worked and one could asked fedora packagers to place this symlink, but apparently it is not the only distribution.
You mean: ask the fedora packager not to rename the executable (https://src.fedoraproject.org/rpms/gmp-ecm/blob/rawhide/f/gmp-ecm.spec#_99). We don't need to do anything special in void linux for ecm
to be named ecm
. Anyway, that line there is 15 years old, and possibly other distros also use the same name for the binary, so I think it's ok to try both names (I'm only objecting to do it at configure time: just do it at runtime).
Concerning the error in
src/sage/libs/gap/element.pyx
, it happens in line 2489:for i in range(100): rnd = [ randint(-10,10) for i in range(randint(0,7)) ] # compute the sum in GAP _ = libgap.Sum(rnd) try: libgap.Sum(*rnd) print('This should have triggered a ValueError') print('because Sum needs a list as argument') except ValueError: pass
getting
Killed due to segmentation fault
. Running this code in the terminal works, the error appears only in tests and with python 3.12.
I never saw that, I also can't see what this has to do with python 3.12. Unless something there was compiled for python 3.11 and now run on python 3.12 (since layout of integers changed). But something like that I would expect to give many more issues...
Is it something that happens every time, or at random? Did you manage to get a clean backtrace of the segfault? Are you sure the sage+gap used for tests is exactly the same you are using for trying this in the terminal?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here is how the package got into Fedora in the first place.
https://bugzilla.redhat.com/show_bug.cgi?id=473330#c2
there is a comment from the reviewer
requesting the binary to be called gmp-ecm.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the record, the meson PR is #36524. Works completely without sage-conf and sage-setup, and determines the necessary config at build time.
I would say, as a rough guide, binaries should be found at build time and databases/static files should be replaced by python modules. With that sage's features could be simplified (or even partly removed).
With #37024 I can build sagemath-standard from pypi with no configure step involved and no sage_conf hack.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I unsubscribed to keep my sanity. Moreover, I'm not interested in building the kitchen sink. For sagelib, setuptools builds it just fine, but depending on sage_conf, sage.env, configure-time detection that only happens when you build the kitchen sink, is just taxing me to keep me in your walled-garden. Thanks but, no thanks.
I'm pretty sure we want exactly the same thing. If you ever think I'm concerned about sage-conf, sage-env, or anything under build/
, then please slow down and read again. The meson build system builds only sagelib. That's the point.
Setuptools cannot build sagelib, unless you happen to run your own distro. Setuptools can't detect C libraries or programs in general; see e.g. cvxopt for what happens when you try. Meson lets us fix that: it gives us a way to build only sagelib, but reliably, and without all of the sage-the-distro scaffolding.
I don't think it's an improvement, and this PR is already calling
shutil.which()
once, what I say is, ifshutil.which('ecm')
fails, tryshutil.which('gmp-ecm')
before complaining. I'm sure the energy wasted doing that in a year of world-wide use of sagemath will be way less than the energy it would take to have fedora fix their disrespect of upstream.
Again, we don't disagree. I feel the same way about distros renaming executables and breaking consumers. It was my first comment on this ticket.
With #37024 I can build sagemath-standard from pypi with no configure step involved and no sage_conf hack.
One more case where we want exactly the same thing. I just remade combinatorial_designs as a python package (https://github.com/orlitzky/mols-handbook-data) and am waiting for a repo to make a release (#37025).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it's an improvement, and this PR is already calling
shutil.which()
once
hmm, where does this happen?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think it's an improvement, and this PR is already calling
shutil.which()
oncehmm, where does this happen?
That's how the Executable
feature knows it's available. My proposal is to modify this class so one can pass a list of strings instead of just a string. In that case, it would try each option until the first one that works.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I never understood the need for sage.features. It seems to papering over a deficiency in Sage package management...
@@ -32,6 +32,8 @@ ECL_CONFIG = "@SAGE_ECL_CONFIG@".replace('${prefix}', SAGE_LOCAL) | |||
|
|||
SAGE_NAUTY_BINS_PREFIX = "@SAGE_NAUTY_BINS_PREFIX@" | |||
|
|||
SAGE_ECMBIN = "@SAGE_ECMBIN@" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SAGE_ECMBIN = "@SAGE_ECMBIN@" | |
ECM = "@ECM@" |
Normally I would take this opportunity to rant about packagers renaming executables and breaking every |
Yes please. |
We need to do something with |
if we can assume that |
I've left the internal variable name in .m4 stay, it's more self-documenting. |
I have tested it with python 3.12 in Fedora 39, system ecm is taken. The only relevant error is a crash testing |
@tornaria runs Sage with Python 3.12. I am not sure whether he sees this error too. |
What error? I don't see any error.
|
src/sage/interfaces/ecm.py
Outdated
@@ -55,6 +55,7 @@ | |||
from sage.structure.sage_object import SageObject | |||
from sage.rings.integer_ring import ZZ | |||
|
|||
from sage.env import ECM |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should you get the filename from the feature instead? This way it seems it will only work if ECM
is set, there's no fallback if ECM
is None.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it should be using the Feature.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have no idea how to use Feature
here. It seems to provide absolute executable names, but no basenames.
Perhaps its a missing feature in Feature
.
I am certainly not going to implement basename
in Python just here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do you think you need the basename?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because this is what sage.interfaces.ecm
is using.
Not sure why whoever wrote this got so creative, but that's how it is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are you talking about. It's just using Popen
, of course you can pass the full executable name to it, not just the basename.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have no idea how to use
Feature
here. It seems to provide absolute executable names, but no basenames. Perhaps its a missing feature inFeature
.
Using the full path seems better, to make sure there's a single point where the decision of which executable to use is made. How the feature found the path, whether it's static or dynamic, if we want to support PATH being different at build time than at run time, etc, is all abstracted out in the feature.
I am certainly not going to implement
basename
in Python just here.
Just for the record, there's os.path.basename()
(and os.path.dirname()
, and os.path.split()
)
A symlink worked and one could asked fedora packagers to place this symlink, but apparently it is not the only distribution. Concerning the error in
getting |
Please point at the item(s) that need work |
Needs work: #37011 (comment) |
e1d3f37 must be reverted, for in some cases (system Python 3.11 and ecm on Gentoo), it creates a clash of names (too many ECM, ecm, Ecm, etc around), and ugly errors in
|
OK, got rid of Do we want --- a/src/sage/env.py
+++ b/src/sage/env.py
@@ -212,7 +212,7 @@ MAXIMA = var("MAXIMA", "maxima")
MAXIMA_FAS = var("MAXIMA_FAS")
KENZO_FAS = var("KENZO_FAS")
SAGE_NAUTY_BINS_PREFIX = var("SAGE_NAUTY_BINS_PREFIX", "")
-SAGE_ECMBIN = var("SAGE_ECMBIN")
+SAGE_ECMBIN = var("SAGE_ECMBIN", "ecm")
RUBIKS_BINS_PREFIX = var("RUBIKS_BINS_PREFIX", "")
FOURTITWO_HILBERT = var("FOURTITWO_HILBERT")
FOURTITWO_MARKOV = var("FOURTITWO_MARKOV") |
Features do allow us to split off a module without rewriting a bunch of tests, but even in that situation it's better to use |
I checked the branch, system ecm is used and no particular problem arise. |
Feel free to set it to positive review |
The PR was merged without this important fix! As of now, 10.4.beta0 is broken. Let's try not to add new knobs without a reasonable default. |
Also: it means the ecm feature is just useless bloat, as it didn't prevent my test run to fail. IMO the only reason the feature bloat would be justified is if it would try @orlitzky it seems perfectly fine to start the search with a name (full path?) that is placed there by meson at build time, but there's also some value for binary wheels that the same package works in different distros, or that ecm works if it's installed later (so it's not a build dependency). |
Sure, I'm not suggesting we break any of that. If you're building for a distro, your build host will detect the correct path (for the distro) and substitute it into the config file that you ship as part of the resulting binary package. This is how basically every C package on debian/fedora work and I'm sure void is not much different. For binary wheels, same trick. Where is gmp-ecm supposed to come from? If it's from pypi, then you install the pypi package that provides it on your build host, and you build the binary wheel. It detects the correct path... etc. The end result is always editable and can fall back to a sane default like "ecm," keeping in mind that there are a fixed number of exceptions using "gmp-ecm" while everyone else has plain "ecm" in their Overriding the check to avoid the build dependency is also pretty common. We do this a lot with autotools by setting the |
I'm getting
Fedora 39 x86_64 |
In Fedora 39 with the sage ecm package I got the same error, no error with system package |
Having `None` as default breaks the feature ecm. This restores the previous default, which corresponds to the upstream name for the binary. See sagemath#37011 (comment)
Looking at the config.log here, it seems The default I added in #37701 for the case when Can you try to rebuild ecm spkg? |
Rebuilt with the same results in the test. By the way, |
Having `None` as default breaks the feature ecm. This restores the previous default, which corresponds to the upstream name for the binary. See sagemath#37011 (comment) ### 📝 Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. URL: sagemath#37701 Reported by: Gonzalo Tornaría Reviewer(s): Dima Pasechnik
have you merged #37701 before rebuilding and testing? |
In fact, incremental builds are what is broken
|
Yes |
This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' See also: * sagemath#37701 * sagemath#37011 (comment)
### TL;DR: This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. ### Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' ### Dependencies See also: * sagemath#37701 * sagemath#37011 (comment) URL: sagemath#37764 Reported by: Volker Braun Reviewer(s): Matthias Köppe
commit 14a1e5c078d1684f751b9e7ef450f197e7bcf27f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 23:01:35 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Good idea. moved description from _dft_modular to dft docstring remove doctest with p=3, n=3 Update src/sage/combinat/symmetric_group_algebra.py Update src/sage/combinat/symmetric_group_algebra.py Co-Authored-By: Travis Scrimshaw <clfrngrown@aol.com> commit f3807cb141bae308906295f605939d4b2b205a5a Merge: 9ad2152942 8ea5214695 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 20:12:53 2024 -0400 Merge branch 'develop' into pr/37748 commit 8ea5214695f742eccd34bd88600771b7121cdb9f Author: Release Manager <release@sagemath.org> Date: Tue Apr 9 00:29:19 2024 +0200 Updated SageMath version to 10.4.beta2 commit 9ad2152942819a55c20d80485ad8cd8925969c6c Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:38:43 2024 -0400 double backslash for math commit 619a48dea00a0a67b8d4e542948200dc23e9589a Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:33:00 2024 -0400 add examples commit 527ae2670dd3a37b25a192ab49dad7f4c16dd5aa Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:24:13 2024 -0400 form should default to None if form is None, check if characteristic of field divides order of group. if so, it's the modular case, and we return the projection onto idempotents change-of-basis, i.e. the MFT. if not, use semi-normal form. commit 488e931da94f4872047ff8e839edc4a0c99b163e Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:09:54 2024 -0400 missing parantheses commit 7e96c904b6bc47d2108930c039b95a14155d425b Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:00:57 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit cf27c64dff0b77c6cca162849ec923ae14f4920f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:00:14 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py I thought I could do this, don't know why I convinced myself I needed flatten. Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 92699f42eba524047b09d527981dab2456802958 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:59:16 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 68f2ef140f91356f55290d100ad8a5282f19c206 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:58:30 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 618d5e1a8cb11006ef9fa6642e33f06d5728d6ae Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:57:18 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 04db911e3f6a08b3be1bf5c295e913a40ee8b28a Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:56:37 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py I see, so "None" if the user doesn't specify, and we determine which form based on whether p|n!. Sounds good. Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit e86f79410ebda01b8a85598a5754f9c383336ae1 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 11:09:57 2024 -0400 add doctest to ensure issue 37751 is fixed commit f8c64d16b3d1c7b3d338d9d2339ae2e284df3c58 Merge: aedd2f3927 3079e2d897 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:55:44 2024 -0400 Merge branch 'pr/37748' of https://github.com/jacksonwalters/sage into pr/37748 commit aedd2f3927aac05dceeb97bd484afa82557652a8 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:55:43 2024 -0400 remove multiplication stars commit 3079e2d897396222b0f23784a4d07a40f25b3c1f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:54:38 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: grhkm21 <83517584+grhkm21@users.noreply.github.com> commit b14565299a6f5a82e5fae5080de88b455ce696e5 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:51:59 2024 -0400 docstring lines are wrapped at 80 characters ensure each line is less than 80 characters commit e3fcc1f59c4668f88c184649c18627480365e646 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:24:51 2024 -0400 keep form argument keep form since there is a one year deprecation warning before removing arguments. show deprecation warning when default seminormal form is called, but suggest modular form which works in all cases commit 6d187b153b5b5c3e29fe07d9efe925e34bf5baa5 Merge: 551139c09f c8d260a6fe Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 23:34:58 2024 +0200 gh-37764: ECM-related tests fail after an incremental build ### TL;DR: This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. ### Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' ### Dependencies See also: * https://github.com/sagemath/sage/pull/37701 * https://github.com/sagemath/sage/pull/37011#issuecomment-2023089743 URL: https://github.com/sagemath/sage/pull/37764 Reported by: Volker Braun Reviewer(s): Matthias Köppe commit 71ad110e196d9f17934d030ce1c000e11b50fee8 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Sun Apr 7 19:57:42 2024 -0400 trigger GitHub actions commit c8d260a6fe37cb0379690e57dab6fd2a3d5d8048 Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 22:13:11 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit fbf896681da3ad1fad6c164e4d5a7cf452ec2eec Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 21:35:42 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit 6531f7e415230d62fecd0a38fd804081341a9f32 Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 21:35:38 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit af0e24286a62a06d85e1baf49d0dc8f624965e5c Author: Volker Braun <vbraun.name@gmail.com> Date: Sun Apr 7 19:17:37 2024 +0200 ECM-related tests fail after an incremental build This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' See also: * https://github.com/sagemath/sage/pull/37701 * https://github.com/sagemath/sage/pull/37011#issuecomment-2023089743 commit 551139c09f26a5da96b1187c3f0dd17b8d80ef84 Merge: 03be519274 547d502ed5 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:43 2024 +0200 gh-37763: Fix tolerance for scipy 1.13 After updating scipy to 1.13: ``` ********************************************************************** File "pkgs/sagemath-standard/build/lib.linux-x86_64-cpython- 312/sage/matrix/matrix_double_dense.pyx", line 3686, in sage.matrix.matrix_double_dense.Matrix_double_dense.exp Failed example: A.exp() # tol 1.1e-14 # needs sage.symbolic Expected: [-19.614602953804912 + 12.517743846762578*I 3.7949636449582176 + 28.88379930658099*I] [ -32.383580980922254 + 21.88423595789845*I 2.269633004093535 + 44.901324827684824*I] Got: [-19.61460295380496 + 12.517743846762578*I 3.7949636449581874 + 28.88379930658104*I] [-32.38358098092232 + 21.884235957898436*I 2.2696330040934853 + 44.901324827684896*I] Tolerance exceeded in 1 of 8: 2.269633004093535 vs 2.2696330040934853, tolerance 3e-14 > 1.1e-14 ********************************************************************** ``` This PR raises the tolerance to `3e-14` to fix this. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37763 Reported by: Gonzalo Tornaría Reviewer(s): Antonio Rojas commit 03be519274f1e3aa424ea729f406180a10df1498 Merge: 4d88e898e2 cd41d1e414 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:37 2024 +0200 gh-37755: src/sage/graphs/graph_decompositions/tdlib.pyx: Use -std=c++11 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> This is needed with the current Xcode command line tools on macOS with boost from homebrew. Similar to https://github.com/sagemath/sage/pull/37646#issuecomment-2017108199 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37755 Reported by: Matthias Köppe Reviewer(s): David Coudert commit 4d88e898e203d9b7297d224f40d659c213701ccb Merge: 9971cec642 6722976389 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:34 2024 +0200 gh-37753: Added rank check to doctest in `.gauss_on_polys` Fixes #37732. Also removed assignment of vectors `v` in the same doctest since they are not used. URL: https://github.com/sagemath/sage/pull/37753 Reported by: Sebastian A. Spindler Reviewer(s): Martin Rubey commit 9971cec64239679ee00ee7b22415b98ed53fbbf6 Merge: 3df3305a64 80239bc925 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:31 2024 +0200 gh-37736: Reimplementing the Witt (Sym Func) change of basis, caches, and omega involution <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> We reimplement the coercion from the Witt basis of symmetric functions to the $h$, $e$, and $p$ bases and their inverses by using the generating function identities and recursion for $w_n, h_n, e_n, p_n$ and the mulitplicative basis property for the general shape (in particular, we attempt to minimize the number of multiplications and maximize the use of the cache by recursively splitting the partition by its smallest part). We cache the result using `@cached_method` instead of custom classes. We also deprecate the `coerce_*` inputs. We also take advantage that $\omega w_n = w_n$ when $n$ is odd to compute the omega involution. This extends to a faster computation of the antipode. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37736 Reported by: Travis Scrimshaw Reviewer(s): Darij Grinberg, Martin Rubey commit 3df3305a6493f88ce86a1bc73e17c34ad01fbe33 Merge: 01333dfec1 ddcb3e45ca Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:27 2024 +0200 gh-37725: Fix typo/phrasing in README.md <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> - Removed the phrase "It assumes that you have already cloned the git repository" from the setup guide since the guide actually contains instructions on cloning the repository - Removed a random misplaced period ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37725 Reported by: Faisal Reviewer(s): gmou3 commit 01333dfec1ae7a518260c0178d4a0b254b886157 Merge: bcbb58f10a 8378fe6fdd Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:24 2024 +0200 gh-37721: Renamed "ring" argument of matrix contructor to "base_ring" <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> The matrix constructor used to accept ``ring`` as argument to specify a the base ring of a matrix. It now takes ``base_ring`` instead. ``ring`` is still accepted but deprecated (I added a deprecation in the code). This is for unification (``base_ring`` is what users expect from their experience with other classes). This solves @mkoeppe's issue #33380. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37721 Reported by: SandwichGouda Reviewer(s): Matthias Köppe commit bcbb58f10a840f43c1359934b85bfef9c143731c Merge: 08d5d97336 9b3ddf95fd Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:21 2024 +0200 gh-37720: pkgs/sagemath-repl/pyproject.toml.m4: Declare extra 'sphinx' <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> As discussed in https://github.com/sagemath/sage/pull/37589#issuecomment-2030456264, the Sage documentation system uses Sphinx to format the documentation in the terminal, for example in the help system. For the modularization project, a simple fallback for the case of Sphinx not being present was added. Here we declare the corresponding "extra" so that users can do `pip install sagemath-repl[sphinx]`. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37720 Reported by: Matthias Köppe Reviewer(s): commit 08d5d97336d5cb87f4e9731b724b320e8cef771f Merge: 253169ff7b 5a61d3c103 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:18 2024 +0200 gh-37712: src/tox.ini (rst): Add missing Sphinx roles <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Fixes #37711 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37712 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit 253169ff7b83df66d20846983ac9ce2982f3a18e Merge: 35f34ee0f6 3dc65b5797 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:16 2024 +0200 gh-37707: Implement an iterator for absolute number fields <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> We use the $\mathbb{Q}$ vector space structure. Although because of #37706, we go through `cartesian_product`. If there is an easy way to implement this in full generality (i.e., all number fields), please let me know. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37707 Reported by: Travis Scrimshaw Reviewer(s): Matthias Köppe commit 35f34ee0f66904d9f2766b646664ae67cedd3aae Merge: 0a16c78b4e e077f1edf7 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:11 2024 +0200 gh-37703: Implement an is_nilpotent() method for matrices <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Checking if a matrix is nilpotent is a fundamental test that Sage is (surprisingly) missing. We check this by using the char poly. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37703 Reported by: Travis Scrimshaw Reviewer(s): Frédéric Chapoton, Martin Rubey commit 0a16c78b4e2b677ba30b198fdc781d38e595c9d8 Merge: 9d788cb197 7e8aa98fa6 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:04 2024 +0200 gh-37699: Add `approximate_closest_vector` to `IntegerLattice`, using Babai's nearest plane algorithm This PR implements Babai's nearest plane algorithm to find vectors close to a given vector in an integer lattice. I would appreciate if someone could verify the bound stated in the docstring, it is inferred from Babai's original paper but parameterized to use the `delta` parameter of the LLL algorithm. Ideas for improvements: - The doctest is currently the same as for `closest_vector`, this could be expanded - The `delta` parameter for LLL needs to be kept track of by the user. How "much" the basis has been reduced (i.e to how high a `delta` value) could be kept track of by the class and if a further reduction is needed for some given bound then it could be performed. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37699 Reported by: TheBlupper Reviewer(s): grhkm21, TheBlupper commit 9d788cb19732f9f750c6d5a25c28ccb958414112 Merge: 6925269840 d63ab2607e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:02 2024 +0200 gh-37689: Fix changes.html in doc preview <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> by changing the base doc url. The base doc url is where the doc preview for the released version is uploaded. It changed recently: https://github.com/sagemath/sage/issues/34874#issuecomment-1870589626, but we didn't fix accordingly here: [.ci/create-changes- html.sh](https://github.com/sagemath/sage/blob/develop/.ci/create- changes-html.sh) ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37689 Reported by: Kwankyu Lee Reviewer(s): commit 6925269840b81d3a1085ae900037e71dfd440c87 Merge: 12a003eddd 3b137b50a0 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:59 2024 +0200 gh-37688: typo Small typo URL: https://github.com/sagemath/sage/pull/37688 Reported by: Dennis Yurichev Reviewer(s): Martin Rubey commit 12a003eddd08bcac14c88becd82bf52af599fe6c Merge: 3c9a67a2f0 6184336d73 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:56 2024 +0200 gh-37687: provide a construction functor using a single functor for families We enable sage to find common parents also when symmetric functions are involved. In particular, we provide a functorial construction that takes a commutative (coefficient) ring and produces a (commutative) ring of symmetric functions over this ring. For Macdonald polynomials and other symmetric functions that involve parameters we cheat a bit: the categories should actually be commutative rings with distinguished elements (namely, the parameters). However, having these is very likely overkill. This is an alternative to #37220, relying on individual construction functors instead of passing around strings, and #37686, which provides an individual functor for each family. URL: https://github.com/sagemath/sage/pull/37687 Reported by: Martin Rubey Reviewer(s): Travis Scrimshaw commit 3c9a67a2f0f8d42c1167f7fa192c70d29cdf6766 Merge: 1ab35e3a69 31645a4f35 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:53 2024 +0200 gh-37683: some shortcuts using bool fixes suggested by `ruff --select=SIM210` namely use `bool` for concision ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37683 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe, Travis Scrimshaw commit 1ab35e3a696baf5a2fdd866a670c32611fa4a996 Merge: 654ed08b89 449864f0af Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:49 2024 +0200 gh-37680: a few more uses of "in Fields()" Just replacing some tests by `R in Fields()` in some pyx files outside the `rings` folder ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37680 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 654ed08b899e3a0bcd2d72a9ea66e5f1a96569a8 Merge: 042153b0d9 a8671aef33 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:44 2024 +0200 gh-37679: simplifications in symmetric_ideal.py some simplifications in `symmetric_ideal` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37679 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 042153b0d976f8ec7b7489c404a17084321e3e06 Merge: 0de7848873 5d4a91fa85 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:41 2024 +0200 gh-37677: some simplifications in moment-angle complex a bunch of code details in the modified file fixes #36217 ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. URL: https://github.com/sagemath/sage/pull/37677 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 0de7848873bcda21b916e13ad71dd0dbe6aa9ff0 Merge: 014ccc31c4 e0ef88414d Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:38 2024 +0200 gh-37674: some pep8 and ruff cleanups in modules/ some ruff and pep8 cleanup in the `modules` folder ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37674 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 014ccc31c4118b929bb46c0811331f828041aee4 Merge: 93cc706453 42b4b671c3 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:34 2024 +0200 gh-37673: upgrade msolve to 0.6.5 routine upgrade, dropping already applied patch URL: https://github.com/sagemath/sage/pull/37673 Reported by: Dima Pasechnik Reviewer(s): Dima Pasechnik, Marc Mezzarobba, Matthias Köppe commit 93cc7064532b3456e5520833121e761078078576 Merge: cf431c8d40 f9ddc324b8 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:31 2024 +0200 gh-37672: src/sage/modular/quasimodform/ring.py: Fix pycodestyle warning <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [ ] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37672 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit cf431c8d40397205bb0f2e1f2843beec16788236 Merge: 2c71f81f0d 378ec74794 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:28 2024 +0200 gh-37671: pkgs/sagemath-standard: Support gpep517 From https://github.com/sagemath/sage/pull/37138#issuecomment-2018937633 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37671 Reported by: Matthias Köppe Reviewer(s): François Bissey commit 2c71f81f0d804932deb11f3d28eb6e7962593076 Merge: 5801382f06 b8757d814e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:24 2024 +0200 gh-37668: Wrong results in is_isotopic method of the Link class for certain chiral link <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> The following result is wrong, since `K10_67` is a chiral knot: ``` sage: L = KnotInfo.K10_67 ....: L1 = L.link() ....: L1r = L.link().reverse() ....: L1.is_isotopic(L1r) True ``` The problem is that the `get_knotinfo` method currently does not distinguish between all four symmetry mutants of a chiral knot or link. In the example, `get_knotinfo` detects both knots as *not mirrored* to the symmetry mutant of `K10_67` recorded in the KnotInfo database, as you can see from the verbose messages: ``` sage: set_verbose(1) sage: L1.is_isotopic(L1r) verbose 1 (4365: link.py, is_isotopic) KnotInfo other: KnotInfo.K10_67 mirrored False True ``` The wrong conclusion in `is_isotopic` is that they must be isotopic. The idea in this PR is to replace the boolean `mirrored` in the output of `get_knotinfo` with the value of an enum representing all symmetry mutants for an entry of the KnotInfo database. Of course, this requires major revisions in the `get_knotinfo` and `is_isotopic` methods. The key to this is a new local method `_knotinfo_matching_dict` that builds on `_knotinfo_matching_list` and returns the matching list for all symmetry mutants. On the occasion of that revision, I also fix other wrong results for example this one of a multi-component link which is not amphicheiral, but reversible: ``` sage: L = KnotInfo.L6a2_0 sage: L1 = L.link() sage: L2 = L.link(L.items.braid_notation) sage: L1.is_isotopic(L2) False ``` This bug is due to `get_knotinfo` returning the wrong mirror version for `L1` concerning `L6a2_1`: ``` ... sage: L1.get_knotinfo(unique=False) [(<KnotInfo.L6a2_0: 'L6a2{0}'>, False), (<KnotInfo.L6a2_1: 'L6a2{1}'>, False)] sage: L2.get_knotinfo(unique=False) [(<KnotInfo.L6a2_0: 'L6a2{0}'>, False), (<KnotInfo.L6a2_1: 'L6a2{1}'>, True)] ``` In addition to these fixes, improvements and corresponding adjustments, I correct some document formatting. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37668 Reported by: Sebastian Oehms Reviewer(s): Sebastian Oehms, Travis Scrimshaw commit 5801382f0638c7c8f50ae5a906b85306e5350fb5 Merge: cf365e5e51 bcc326d972 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:11 2024 +0200 gh-37667: Fix noexcept clauses (#37560) In #36507 I added a lot of `noexcept` clauses guided by a warning which is not quite right (see https://github.com/cython/cython/pull/5999#issuecomment-1986868208). A new warning in 3.0.9 shows the mistake (incorrectly added `noexcept` clauses). This broke some doctests (#37560) and a workaround was implemented for 10.3 (#37583) since we were too close to release. This PR now does the proper fix, removing all the incorrect `noexcept`, and also adding a few missing `noexcept`. Note: if one tries this PR with cython <= 3.0.8 it seems it's wrong in the sense that it will show 40k more warnings after the PR. These are *incorrect* warnings. If one uses cython 3.0.9 each of these 40k lines give a correct warning before this PR and an incorrect warnings after the PR, and there is no way to avoid 40k warnings. To confirm this PR is a good one, one needs to use cython 3.0.9 + https://github.com/cython/cython/pull/6087 or wait for cython 3.0.10. In this case, the warnings are correct and one will get 40k warnings before the PR and no warning after the PR. The last commit reverts the workaround from #37583 so we don't silence these warnings on `cython()` now that we have our own code right. @vbraun: this is "almost trivial" but touches too many files. Could we merge it in beta0 to avoid conflicts? I did this "kind of" automatically and I've been testing it for two weeks in almost all my builds. The changes made should not affect behaviour at all in the legacy mode we are using cython. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. URL: https://github.com/sagemath/sage/pull/37667 Reported by: Gonzalo Tornaría Reviewer(s): Gonzalo Tornaría, Matthias Köppe commit cf365e5e51d30495f823ed928e0fe027166545d0 Merge: 59bf21efe7 a47b98b32e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:08 2024 +0200 gh-37663: sage/rings/{complex,real}*: Untitlecase titles, add refs to libraries <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> This cleans up the table of contents https://deploy-preview-37663-- sagemath.netlify.app/html/en/reference/rings_numerical/ ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> - Depends on #37406 (merged here to resolve merge conflict) URL: https://github.com/sagemath/sage/pull/37663 Reported by: Matthias Köppe Reviewer(s): Marc Mezzarobba commit 59bf21efe755cac20496bb417285a7e3545bc790 Merge: 2fd04522f3 210c5d8389 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:06 2024 +0200 gh-37661: some cross-references btw doc of RR, RBF, ... (mainly intended to make RBF and CBF, which are the most powerful implementations for most purposes, more discoverable) URL: https://github.com/sagemath/sage/pull/37661 Reported by: Marc Mezzarobba Reviewer(s): commit 2fd04522f3caaca5fff0f78f1f1dccc6c0027475 Merge: 03f81897de 16a5261134 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:02 2024 +0200 gh-37660: Fix e302 libs pyx This is adding missing empty lines (pycodestyle E302) in pyx files in the `modules` and `libs` folders. Also some little tweak in code in the singular libs files. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37660 Reported by: Frédéric Chapoton Reviewer(s): David Coudert commit 03f81897de2bf0aaf6b7fa82982b17251b0c9fd1 Merge: 81b4ddccd1 23c45b1d61 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:59 2024 +0200 gh-37659: fix ruff codes UP012 and UP023 scripted using `ruff` ; only two minor changes see https://docs.astral.sh/ruff/rules/#pyupgrade-up ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37659 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 81b4ddccd1de963f7731661106e1e425efd2e76b Merge: 74a82d7ce4 4fa6f09984 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:54 2024 +0200 gh-37655: Removed caching of determinant in LLL for the `NTL:LLL`-algorithm The method previously computed the square root of the squared determinant to cache, thus caching the absolute value of the determinant instead of the determinant. Therefore we remove this caching completely, which fixes #37236. URL: https://github.com/sagemath/sage/pull/37655 Reported by: Sebastian A. Spindler Reviewer(s): Vincent Delecroix commit 74a82d7ce445d8d9e66595887e9fcdf40f838702 Merge: 34539cdb4b 51d423d5a2 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:52 2024 +0200 gh-37652: fix typos and no "Algebra" in the doc This fixes a bunch of typos in the doc, and also rewrites one example to use `Parent` instead of the auld `Algebra` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37652 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 34539cdb4b65fbb8f34f738c15f41a800de25141 Merge: 7a5ba77a93 5f32f5f882 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:49 2024 +0200 gh-37651: use parent in asymptotic ring trying to use the modern `Parent` and categories in the asymptotic ring, instead of the auld `Algebra` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37651 Reported by: Frédéric Chapoton Reviewer(s): Marc Mezzarobba commit 7a5ba77a93cef0ee7a44f4228070e48b890d2b73 Merge: d4ab336474 4fa36454b5 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:45 2024 +0200 gh-37640: Modified `.is_reduced()` of `binary_qf.py` to avoid square root computation Adapted the checks in `.is_reduced()` to avoid the square root computation, which fixes #37635. Furthermore added a non-singularity check. This adaption is based on the observation that $$|\sqrt{D} - 2 \cdot |a|| < b < \sqrt{D}$$ if and only if $$b > 0, \ a \cdot c < 0 \text{ and } (a-c)^2 < D$$ are all satisfied simultaneously (where $D = b^2 - 4ac > 0$). The above can be proven in a straightforward manner by taking squares and square roots while making sure that the numbers being squared are always positive, so that inequalities are preserved. URL: https://github.com/sagemath/sage/pull/37640 Reported by: Sebastian A. Spindler Reviewer(s): Lorenz Panny commit d4ab336474b9f40b9e7f637c9b3ba6ac8bbc2135 Merge: 3c174ef6a6 bf0c3695cc Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:41 2024 +0200 gh-37639: add Legendre transform and suspension for lazy symmetric functions This adds two useful functions, particularly important when working with operads and Koszul duality. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37639 Reported by: Frédéric Chapoton Reviewer(s): Martin Rubey, Travis Scrimshaw commit 3c174ef6a69d80e733dc7461b44fbc8b646ac30d Merge: 6ab45f666b d7021096c4 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:38 2024 +0200 gh-37638: use strings as label in modular-decomposition trees Fixing #37631 and adding a note saying that labels of rooted trees must be comparable ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37638 Reported by: Frédéric Chapoton Reviewer(s): cyrilbouvier commit 6ab45f666ba665ee9a0c517233830bafbea544b9 Merge: 8e26e27572 c4c26ee1bf Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:36 2024 +0200 gh-37637: Update jupyter-sphinx to version 0.5.3 and pin thebe to version 0.8.2 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> jupyter-sphinx that we are shipping was patched to use thebe@latest, which is the cause of the current breakdown of the sage live doc. The patch to jupyter-sphinx is partly based on https://github.com/jupyter/jupyter-sphinx/pull/231 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37637 Reported by: Kwankyu Lee Reviewer(s): Matthias Köppe commit 8e26e27572073bc9f54839143f52d2d7e4c710e0 Merge: 13a555d970 af97e6da28 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:28 2024 +0200 gh-37634: The Glaisher-Franklin bijections on integer partitions The Glaisher-Franklin bijections, for a positive integer $s$, map the set of parts divisible by $s$ to the set of parts which occur at least $s$ times, see https://www.findstat.org/MapsDatabase/Mp00312 for the $s=2$ case. This generalizes and streamlines the code from findstat. URL: https://github.com/sagemath/sage/pull/37634 Reported by: Martin Rubey Reviewer(s): Martin Rubey, Travis Scrimshaw commit 13a555d970eefceddd20728c6a3275447713ea7e Merge: 58e8c578fd d45422e64e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:23 2024 +0200 gh-37606: Border matrix <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Plain TeX users may remember `\bordermatrix`. Here we implement this as options of the `Matrix` class's `str` method. ``` sage: M = matrix([[1,2,3], [4,5,6], [7,8,9]]) sage: M.subdivide(None, 2) sage: print(M.str(unicode=True, ....: top_border=['ab', 'cde', 'f'], ....: bottom_border=['*', '', ''], ....: left_border=[1, 10, 100], ....: right_border=['', ' <', ''])) ab cde f 1⎛ 1 2│ 3⎞ 10⎜ 4 5│ 6⎟ < 100⎝ 7 8│ 9⎠ * ``` Follow-up PR: As the guiding application for this feature, we equip finite-dimensional modules with basis with methods `_repr_matrix`, `_ascii_art_matrix`, `_unicode_art_matrix` that can be used as in this example: ``` sage: M = matrix(ZZ, [[1, 0, 0], [0, 1, 0]], ....: column_keys=['a', 'b', 'c'], ....: row_keys=['v', 'w']); M Generic morphism: From: Free module generated by {'a', 'b', 'c'} over Integer Ring To: Free module generated by {'v', 'w'} over Integer Ring sage: M._unicode_art_ = M._unicode_art_matrix sage: unicode_art(M) # indirect doctest a b c v⎛1 0 0⎞ w⎝0 1 0⎠ ``` ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37606 Reported by: Matthias Köppe Reviewer(s): David Coudert, Matthias Köppe commit 58e8c578fdc79d94dba5de30ae3a5ba6c08630ef Merge: 294eed4041 c1d38c77d2 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:20 2024 +0200 gh-37563: trying a change in unique_representation namely break the loop over `mro` once found what we want I am not sure at all that this keeps the expected properties, but this is more efficient.. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37563 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 294eed4041447cb7420462f9548bc9195e376565 Merge: 14da417689 def8e56c30 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:17 2024 +0200 gh-37546: Sphinx ext links for Sage source files <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> In the documentation, we can now write `` :sage_root:`src/setup.py` `` or `` :sage_root:`src/doc/en/installation` ``, and it will be formatted uniformly, and a link to the file in the repository will be created. - Rebased version of #33756 Fixes #33756. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37546 Reported by: Matthias Köppe Reviewer(s): David Coudert, Kwankyu Lee commit 14da417689b26c72b4369c8a352d3f8345a3c259 Merge: 59ced5e363 1e66857af1 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:13 2024 +0200 gh-37497: remove zombie code We remove zombie code for solving linear systems over a finite field, which was (likely accidentally) created in #23214, but leads to errors when solving sparse linear equations over finite fields. This does not quite fix the issue, because we now fall back to generic code. Fixes #28586 URL: https://github.com/sagemath/sage/pull/37497 Reported by: Martin Rubey Reviewer(s): Matthias Köppe commit 59ced5e363eef8f18c34b65fbde75f007015ee0f Merge: fbaec798ee 6704b34380 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:09 2024 +0200 gh-37425: Remove mention of patchbot, remove 'make buildbot-python3' <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> - Depends on https://github.com/sagemath/sage/pull/37421 <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: https://github.com/sagemath/sage/pull/37425 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit fbaec798ee1a0df0e9ded0dd2dd0811387cbb797 Merge: 7855be0849 cb4e7184b3 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:06 2024 +0200 gh-37391: Make installation of "wheel" packages less noisy <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> Some care for `build/bin/sage-spkg`, reducing unhelpful verbosity. In particular, for "wheel" packages (https://deploy-livedoc-- sagemath.netlify.app/html/en/developer/packaging#package-source-types), there is no build step, so there is no point in talking about what C compiler is in use. Also saving a few lines of output (and making it clearer who does what) by prefixing the output from the various `spkg-...` scripts. Example: ``` $ make packaging-no-deps [packaging-23.2] Using cached file /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/upstream/packaging-23.2-py3-none-any.whl [packaging-23.2] Setting up build directory /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/local/var/lib/sage/venv- python3.11/var/tmp/sage/build/packaging-23.2 [packaging-23.2] [spkg-piprm] Found existing installation: packaging 23.2 [packaging-23.2] [spkg-piprm] Uninstalling packaging-23.2: [packaging-23.2] [spkg-piprm] Successfully uninstalled packaging-23.2 [packaging-23.2] Removing stamp file /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/local/var/lib/sage/venv- python3.11/var/lib/sage/installed/packaging-23.2 [packaging-23.2] [spkg-install] Staged wheel file, staged /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv- python3.11/var/lib/sage/scripts/packaging/spkg-requirements.txt [packaging-23.2] Moving package files from temporary location /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv- python3.11/var/tmp/sage/build/packaging-23.2/inst to /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv-python3.11 [packaging-23.2] [spkg-pipinst] Using pip 23.3.1 from /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv-python3.11/lib/python3.11/site- packages/pip (python 3.11) [packaging-23.2] [spkg-pipinst] Looking in links: /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv-python3.11/var/lib/sage/wheels [packaging-23.2] [spkg-pipinst] Processing /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/local/var/lib/sage/venv- python3.11/var/lib/sage/wheels/packaging-23.2-py3-none-any.whl (from -r /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv- python3.11/var/lib/sage/scripts/packaging/spkg-requirements.txt (line 1)) [packaging-23.2] [spkg-pipinst] Installing collected packages: packaging [packaging-23.2] [spkg-pipinst] ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. [packaging-23.2] [spkg-pipinst] meson-python 0.15.0 requires meson>=0.63.3; python_version < "3.12", which is not installed. [packaging-23.2] [spkg-pipinst] tox 4.11.1 requires cachetools>=5.3.1, which is not installed. [packaging-23.2] [spkg-pipinst] tox 4.11.1 requires chardet>=5.2, which is not installed. [packaging-23.2] [spkg-pipinst] Successfully installed packaging-23.2 [packaging-23.2] Deleting build directory /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/local/var/lib/sage/venv- python3.11/var/tmp/sage/build/packaging-23.2 [packaging-23.2] Finished installing packaging-23.2 ``` Also displaying build times for each package, even when using `make V=0`, but suppressing very short build times: ``` $ make V=0 ... [setuptools_scm-8.0.4] installing. Log file: /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/logs/pkgs/setuptools_scm-8.0.4.log [hatchling-1.20.0] installing. Log file: /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/logs/pkgs/hatchling-1.20.0.log [setuptools_scm-8.0.4] successfully installed. [hatchling-1.20.0] successfully installed. ... [sage_conf-10.3.beta8] successfully installed (real 11.36 user 8.32 sys 2.67). [pyproject_metadata-0.7.1] successfully installed (real 16.57 user 10.70 sys 2.97). [ipykernel-6.27.1] successfully installed (real 19.31 user 11.35 sys 3.71). ``` <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: https://github.com/sagemath/sage/pull/37391 Reported by: Matthias Köppe Reviewer(s): Kwankyu Lee commit 7855be084987c6e200d4c65fee0f9d819510a819 Merge: 031064b9ce 236361bce6 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:57:55 2024 +0200 gh-37361: Add iterators, Whitney numbers, characteristic polynomial, etc Changes (mostly in `matroid.pyx`): - Add `_iterator` functions for `bases`, `circuits`, etc, and use them internally (this avoids memory consumption/blowups) - Add Whitney numbers functions (for the first and second kind) - Correct `f_vector` definition (the definition up till now referred to the Whitney numbers of second kind) - Add characteristic polynomial - Correct `is_valid` function to be `False` on a negative rank value - Optimize `circuits` function (e.g. `sage: %time C = matroids.CompleteGraphic(8).circuits()` drops from `4m` to `1m`) - Optimize `broken_circuit_complex` function - Improve docstrings (1-line outputs and other changes) ### ⌛ Dependencies * Depends on #37667 URL: https://github.com/sagemath/sage/pull/37361 Reported by: gmou3 Reviewer(s): gmou3, Matthias Köppe, Travis Scrimshaw commit 031064b9cee8f7bec802ff0af0c9c28e3fb31b44 Merge: ad0a4b03b3 34564a3962 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:57:47 2024 +0200 gh-37340: Add class FlatsMatroid This matroid subclass allows the definition and internal representation of a matroid based on its flats (closed sets). This representation can be advantageous for some algorithms. This completes the list of the most standard matroid definitions (bases, circui…
commit a047ccfd4c4454411027afb9dd0981d0ae4a8293 Merge: cc1aa671e5 14a1e5c078 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 14:41:10 2024 -0400 Merge branch 'pr/37748' of https://github.com/jacksonwalters/sage into pr/37748 commit cc1aa671e549388cc5d325cce8893062125c52dd Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 14:39:37 2024 -0400 Squashed commit of the following: commit 14a1e5c078d1684f751b9e7ef450f197e7bcf27f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 23:01:35 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Good idea. moved description from _dft_modular to dft docstring remove doctest with p=3, n=3 Update src/sage/combinat/symmetric_group_algebra.py Update src/sage/combinat/symmetric_group_algebra.py Co-Authored-By: Travis Scrimshaw <clfrngrown@aol.com> commit f3807cb141bae308906295f605939d4b2b205a5a Merge: 9ad2152942 8ea5214695 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 20:12:53 2024 -0400 Merge branch 'develop' into pr/37748 commit 8ea5214695f742eccd34bd88600771b7121cdb9f Author: Release Manager <release@sagemath.org> Date: Tue Apr 9 00:29:19 2024 +0200 Updated SageMath version to 10.4.beta2 commit 9ad2152942819a55c20d80485ad8cd8925969c6c Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:38:43 2024 -0400 double backslash for math commit 619a48dea00a0a67b8d4e542948200dc23e9589a Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:33:00 2024 -0400 add examples commit 527ae2670dd3a37b25a192ab49dad7f4c16dd5aa Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:24:13 2024 -0400 form should default to None if form is None, check if characteristic of field divides order of group. if so, it's the modular case, and we return the projection onto idempotents change-of-basis, i.e. the MFT. if not, use semi-normal form. commit 488e931da94f4872047ff8e839edc4a0c99b163e Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:09:54 2024 -0400 missing parantheses commit 7e96c904b6bc47d2108930c039b95a14155d425b Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:00:57 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit cf27c64dff0b77c6cca162849ec923ae14f4920f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:00:14 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py I thought I could do this, don't know why I convinced myself I needed flatten. Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 92699f42eba524047b09d527981dab2456802958 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:59:16 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 68f2ef140f91356f55290d100ad8a5282f19c206 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:58:30 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 618d5e1a8cb11006ef9fa6642e33f06d5728d6ae Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:57:18 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 04db911e3f6a08b3be1bf5c295e913a40ee8b28a Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:56:37 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py I see, so "None" if the user doesn't specify, and we determine which form based on whether p|n!. Sounds good. Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit e86f79410ebda01b8a85598a5754f9c383336ae1 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 11:09:57 2024 -0400 add doctest to ensure issue 37751 is fixed commit f8c64d16b3d1c7b3d338d9d2339ae2e284df3c58 Merge: aedd2f3927 3079e2d897 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:55:44 2024 -0400 Merge branch 'pr/37748' of https://github.com/jacksonwalters/sage into pr/37748 commit aedd2f3927aac05dceeb97bd484afa82557652a8 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:55:43 2024 -0400 remove multiplication stars commit 3079e2d897396222b0f23784a4d07a40f25b3c1f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:54:38 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: grhkm21 <83517584+grhkm21@users.noreply.github.com> commit b14565299a6f5a82e5fae5080de88b455ce696e5 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:51:59 2024 -0400 docstring lines are wrapped at 80 characters ensure each line is less than 80 characters commit e3fcc1f59c4668f88c184649c18627480365e646 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:24:51 2024 -0400 keep form argument keep form since there is a one year deprecation warning before removing arguments. show deprecation warning when default seminormal form is called, but suggest modular form which works in all cases commit 6d187b153b5b5c3e29fe07d9efe925e34bf5baa5 Merge: 551139c09f c8d260a6fe Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 23:34:58 2024 +0200 gh-37764: ECM-related tests fail after an incremental build ### TL;DR: This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. ### Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' ### Dependencies See also: * https://github.com/sagemath/sage/pull/37701 * https://github.com/sagemath/sage/pull/37011#issuecomment-2023089743 URL: https://github.com/sagemath/sage/pull/37764 Reported by: Volker Braun Reviewer(s): Matthias Köppe commit 71ad110e196d9f17934d030ce1c000e11b50fee8 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Sun Apr 7 19:57:42 2024 -0400 trigger GitHub actions commit c8d260a6fe37cb0379690e57dab6fd2a3d5d8048 Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 22:13:11 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit fbf896681da3ad1fad6c164e4d5a7cf452ec2eec Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 21:35:42 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit 6531f7e415230d62fecd0a38fd804081341a9f32 Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 21:35:38 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit af0e24286a62a06d85e1baf49d0dc8f624965e5c Author: Volker Braun <vbraun.name@gmail.com> Date: Sun Apr 7 19:17:37 2024 +0200 ECM-related tests fail after an incremental build This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' See also: * https://github.com/sagemath/sage/pull/37701 * https://github.com/sagemath/sage/pull/37011#issuecomment-2023089743 commit 551139c09f26a5da96b1187c3f0dd17b8d80ef84 Merge: 03be519274 547d502ed5 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:43 2024 +0200 gh-37763: Fix tolerance for scipy 1.13 After updating scipy to 1.13: ``` ********************************************************************** File "pkgs/sagemath-standard/build/lib.linux-x86_64-cpython- 312/sage/matrix/matrix_double_dense.pyx", line 3686, in sage.matrix.matrix_double_dense.Matrix_double_dense.exp Failed example: A.exp() # tol 1.1e-14 # needs sage.symbolic Expected: [-19.614602953804912 + 12.517743846762578*I 3.7949636449582176 + 28.88379930658099*I] [ -32.383580980922254 + 21.88423595789845*I 2.269633004093535 + 44.901324827684824*I] Got: [-19.61460295380496 + 12.517743846762578*I 3.7949636449581874 + 28.88379930658104*I] [-32.38358098092232 + 21.884235957898436*I 2.2696330040934853 + 44.901324827684896*I] Tolerance exceeded in 1 of 8: 2.269633004093535 vs 2.2696330040934853, tolerance 3e-14 > 1.1e-14 ********************************************************************** ``` This PR raises the tolerance to `3e-14` to fix this. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37763 Reported by: Gonzalo Tornaría Reviewer(s): Antonio Rojas commit 03be519274f1e3aa424ea729f406180a10df1498 Merge: 4d88e898e2 cd41d1e414 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:37 2024 +0200 gh-37755: src/sage/graphs/graph_decompositions/tdlib.pyx: Use -std=c++11 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> This is needed with the current Xcode command line tools on macOS with boost from homebrew. Similar to https://github.com/sagemath/sage/pull/37646#issuecomment-2017108199 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37755 Reported by: Matthias Köppe Reviewer(s): David Coudert commit 4d88e898e203d9b7297d224f40d659c213701ccb Merge: 9971cec642 6722976389 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:34 2024 +0200 gh-37753: Added rank check to doctest in `.gauss_on_polys` Fixes #37732. Also removed assignment of vectors `v` in the same doctest since they are not used. URL: https://github.com/sagemath/sage/pull/37753 Reported by: Sebastian A. Spindler Reviewer(s): Martin Rubey commit 9971cec64239679ee00ee7b22415b98ed53fbbf6 Merge: 3df3305a64 80239bc925 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:31 2024 +0200 gh-37736: Reimplementing the Witt (Sym Func) change of basis, caches, and omega involution <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> We reimplement the coercion from the Witt basis of symmetric functions to the $h$, $e$, and $p$ bases and their inverses by using the generating function identities and recursion for $w_n, h_n, e_n, p_n$ and the mulitplicative basis property for the general shape (in particular, we attempt to minimize the number of multiplications and maximize the use of the cache by recursively splitting the partition by its smallest part). We cache the result using `@cached_method` instead of custom classes. We also deprecate the `coerce_*` inputs. We also take advantage that $\omega w_n = w_n$ when $n$ is odd to compute the omega involution. This extends to a faster computation of the antipode. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37736 Reported by: Travis Scrimshaw Reviewer(s): Darij Grinberg, Martin Rubey commit 3df3305a6493f88ce86a1bc73e17c34ad01fbe33 Merge: 01333dfec1 ddcb3e45ca Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:27 2024 +0200 gh-37725: Fix typo/phrasing in README.md <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> - Removed the phrase "It assumes that you have already cloned the git repository" from the setup guide since the guide actually contains instructions on cloning the repository - Removed a random misplaced period ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37725 Reported by: Faisal Reviewer(s): gmou3 commit 01333dfec1ae7a518260c0178d4a0b254b886157 Merge: bcbb58f10a 8378fe6fdd Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:24 2024 +0200 gh-37721: Renamed "ring" argument of matrix contructor to "base_ring" <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> The matrix constructor used to accept ``ring`` as argument to specify a the base ring of a matrix. It now takes ``base_ring`` instead. ``ring`` is still accepted but deprecated (I added a deprecation in the code). This is for unification (``base_ring`` is what users expect from their experience with other classes). This solves @mkoeppe's issue #33380. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37721 Reported by: SandwichGouda Reviewer(s): Matthias Köppe commit bcbb58f10a840f43c1359934b85bfef9c143731c Merge: 08d5d97336 9b3ddf95fd Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:21 2024 +0200 gh-37720: pkgs/sagemath-repl/pyproject.toml.m4: Declare extra 'sphinx' <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> As discussed in https://github.com/sagemath/sage/pull/37589#issuecomment-2030456264, the Sage documentation system uses Sphinx to format the documentation in the terminal, for example in the help system. For the modularization project, a simple fallback for the case of Sphinx not being present was added. Here we declare the corresponding "extra" so that users can do `pip install sagemath-repl[sphinx]`. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37720 Reported by: Matthias Köppe Reviewer(s): commit 08d5d97336d5cb87f4e9731b724b320e8cef771f Merge: 253169ff7b 5a61d3c103 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:18 2024 +0200 gh-37712: src/tox.ini (rst): Add missing Sphinx roles <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Fixes #37711 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37712 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit 253169ff7b83df66d20846983ac9ce2982f3a18e Merge: 35f34ee0f6 3dc65b5797 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:16 2024 +0200 gh-37707: Implement an iterator for absolute number fields <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> We use the $\mathbb{Q}$ vector space structure. Although because of #37706, we go through `cartesian_product`. If there is an easy way to implement this in full generality (i.e., all number fields), please let me know. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37707 Reported by: Travis Scrimshaw Reviewer(s): Matthias Köppe commit 35f34ee0f66904d9f2766b646664ae67cedd3aae Merge: 0a16c78b4e e077f1edf7 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:11 2024 +0200 gh-37703: Implement an is_nilpotent() method for matrices <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Checking if a matrix is nilpotent is a fundamental test that Sage is (surprisingly) missing. We check this by using the char poly. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37703 Reported by: Travis Scrimshaw Reviewer(s): Frédéric Chapoton, Martin Rubey commit 0a16c78b4e2b677ba30b198fdc781d38e595c9d8 Merge: 9d788cb197 7e8aa98fa6 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:04 2024 +0200 gh-37699: Add `approximate_closest_vector` to `IntegerLattice`, using Babai's nearest plane algorithm This PR implements Babai's nearest plane algorithm to find vectors close to a given vector in an integer lattice. I would appreciate if someone could verify the bound stated in the docstring, it is inferred from Babai's original paper but parameterized to use the `delta` parameter of the LLL algorithm. Ideas for improvements: - The doctest is currently the same as for `closest_vector`, this could be expanded - The `delta` parameter for LLL needs to be kept track of by the user. How "much" the basis has been reduced (i.e to how high a `delta` value) could be kept track of by the class and if a further reduction is needed for some given bound then it could be performed. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37699 Reported by: TheBlupper Reviewer(s): grhkm21, TheBlupper commit 9d788cb19732f9f750c6d5a25c28ccb958414112 Merge: 6925269840 d63ab2607e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:02 2024 +0200 gh-37689: Fix changes.html in doc preview <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> by changing the base doc url. The base doc url is where the doc preview for the released version is uploaded. It changed recently: https://github.com/sagemath/sage/issues/34874#issuecomment-1870589626, but we didn't fix accordingly here: [.ci/create-changes- html.sh](https://github.com/sagemath/sage/blob/develop/.ci/create- changes-html.sh) ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37689 Reported by: Kwankyu Lee Reviewer(s): commit 6925269840b81d3a1085ae900037e71dfd440c87 Merge: 12a003eddd 3b137b50a0 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:59 2024 +0200 gh-37688: typo Small typo URL: https://github.com/sagemath/sage/pull/37688 Reported by: Dennis Yurichev Reviewer(s): Martin Rubey commit 12a003eddd08bcac14c88becd82bf52af599fe6c Merge: 3c9a67a2f0 6184336d73 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:56 2024 +0200 gh-37687: provide a construction functor using a single functor for families We enable sage to find common parents also when symmetric functions are involved. In particular, we provide a functorial construction that takes a commutative (coefficient) ring and produces a (commutative) ring of symmetric functions over this ring. For Macdonald polynomials and other symmetric functions that involve parameters we cheat a bit: the categories should actually be commutative rings with distinguished elements (namely, the parameters). However, having these is very likely overkill. This is an alternative to #37220, relying on individual construction functors instead of passing around strings, and #37686, which provides an individual functor for each family. URL: https://github.com/sagemath/sage/pull/37687 Reported by: Martin Rubey Reviewer(s): Travis Scrimshaw commit 3c9a67a2f0f8d42c1167f7fa192c70d29cdf6766 Merge: 1ab35e3a69 31645a4f35 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:53 2024 +0200 gh-37683: some shortcuts using bool fixes suggested by `ruff --select=SIM210` namely use `bool` for concision ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37683 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe, Travis Scrimshaw commit 1ab35e3a696baf5a2fdd866a670c32611fa4a996 Merge: 654ed08b89 449864f0af Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:49 2024 +0200 gh-37680: a few more uses of "in Fields()" Just replacing some tests by `R in Fields()` in some pyx files outside the `rings` folder ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37680 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 654ed08b899e3a0bcd2d72a9ea66e5f1a96569a8 Merge: 042153b0d9 a8671aef33 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:44 2024 +0200 gh-37679: simplifications in symmetric_ideal.py some simplifications in `symmetric_ideal` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37679 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 042153b0d976f8ec7b7489c404a17084321e3e06 Merge: 0de7848873 5d4a91fa85 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:41 2024 +0200 gh-37677: some simplifications in moment-angle complex a bunch of code details in the modified file fixes #36217 ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. URL: https://github.com/sagemath/sage/pull/37677 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 0de7848873bcda21b916e13ad71dd0dbe6aa9ff0 Merge: 014ccc31c4 e0ef88414d Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:38 2024 +0200 gh-37674: some pep8 and ruff cleanups in modules/ some ruff and pep8 cleanup in the `modules` folder ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37674 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 014ccc31c4118b929bb46c0811331f828041aee4 Merge: 93cc706453 42b4b671c3 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:34 2024 +0200 gh-37673: upgrade msolve to 0.6.5 routine upgrade, dropping already applied patch URL: https://github.com/sagemath/sage/pull/37673 Reported by: Dima Pasechnik Reviewer(s): Dima Pasechnik, Marc Mezzarobba, Matthias Köppe commit 93cc7064532b3456e5520833121e761078078576 Merge: cf431c8d40 f9ddc324b8 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:31 2024 +0200 gh-37672: src/sage/modular/quasimodform/ring.py: Fix pycodestyle warning <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [ ] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37672 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit cf431c8d40397205bb0f2e1f2843beec16788236 Merge: 2c71f81f0d 378ec74794 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:28 2024 +0200 gh-37671: pkgs/sagemath-standard: Support gpep517 From https://github.com/sagemath/sage/pull/37138#issuecomment-2018937633 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37671 Reported by: Matthias Köppe Reviewer(s): François Bissey commit 2c71f81f0d804932deb11f3d28eb6e7962593076 Merge: 5801382f06 b8757d814e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:24 2024 +0200 gh-37668: Wrong results in is_isotopic method of the Link class for certain chiral link <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> The following result is wrong, since `K10_67` is a chiral knot: ``` sage: L = KnotInfo.K10_67 ....: L1 = L.link() ....: L1r = L.link().reverse() ....: L1.is_isotopic(L1r) True ``` The problem is that the `get_knotinfo` method currently does not distinguish between all four symmetry mutants of a chiral knot or link. In the example, `get_knotinfo` detects both knots as *not mirrored* to the symmetry mutant of `K10_67` recorded in the KnotInfo database, as you can see from the verbose messages: ``` sage: set_verbose(1) sage: L1.is_isotopic(L1r) verbose 1 (4365: link.py, is_isotopic) KnotInfo other: KnotInfo.K10_67 mirrored False True ``` The wrong conclusion in `is_isotopic` is that they must be isotopic. The idea in this PR is to replace the boolean `mirrored` in the output of `get_knotinfo` with the value of an enum representing all symmetry mutants for an entry of the KnotInfo database. Of course, this requires major revisions in the `get_knotinfo` and `is_isotopic` methods. The key to this is a new local method `_knotinfo_matching_dict` that builds on `_knotinfo_matching_list` and returns the matching list for all symmetry mutants. On the occasion of that revision, I also fix other wrong results for example this one of a multi-component link which is not amphicheiral, but reversible: ``` sage: L = KnotInfo.L6a2_0 sage: L1 = L.link() sage: L2 = L.link(L.items.braid_notation) sage: L1.is_isotopic(L2) False ``` This bug is due to `get_knotinfo` returning the wrong mirror version for `L1` concerning `L6a2_1`: ``` ... sage: L1.get_knotinfo(unique=False) [(<KnotInfo.L6a2_0: 'L6a2{0}'>, False), (<KnotInfo.L6a2_1: 'L6a2{1}'>, False)] sage: L2.get_knotinfo(unique=False) [(<KnotInfo.L6a2_0: 'L6a2{0}'>, False), (<KnotInfo.L6a2_1: 'L6a2{1}'>, True)] ``` In addition to these fixes, improvements and corresponding adjustments, I correct some document formatting. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37668 Reported by: Sebastian Oehms Reviewer(s): Sebastian Oehms, Travis Scrimshaw commit 5801382f0638c7c8f50ae5a906b85306e5350fb5 Merge: cf365e5e51 bcc326d972 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:11 2024 +0200 gh-37667: Fix noexcept clauses (#37560) In #36507 I added a lot of `noexcept` clauses guided by a warning which is not quite right (see https://github.com/cython/cython/pull/5999#issuecomment-1986868208). A new warning in 3.0.9 shows the mistake (incorrectly added `noexcept` clauses). This broke some doctests (#37560) and a workaround was implemented for 10.3 (#37583) since we were too close to release. This PR now does the proper fix, removing all the incorrect `noexcept`, and also adding a few missing `noexcept`. Note: if one tries this PR with cython <= 3.0.8 it seems it's wrong in the sense that it will show 40k more warnings after the PR. These are *incorrect* warnings. If one uses cython 3.0.9 each of these 40k lines give a correct warning before this PR and an incorrect warnings after the PR, and there is no way to avoid 40k warnings. To confirm this PR is a good one, one needs to use cython 3.0.9 + https://github.com/cython/cython/pull/6087 or wait for cython 3.0.10. In this case, the warnings are correct and one will get 40k warnings before the PR and no warning after the PR. The last commit reverts the workaround from #37583 so we don't silence these warnings on `cython()` now that we have our own code right. @vbraun: this is "almost trivial" but touches too many files. Could we merge it in beta0 to avoid conflicts? I did this "kind of" automatically and I've been testing it for two weeks in almost all my builds. The changes made should not affect behaviour at all in the legacy mode we are using cython. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. URL: https://github.com/sagemath/sage/pull/37667 Reported by: Gonzalo Tornaría Reviewer(s): Gonzalo Tornaría, Matthias Köppe commit cf365e5e51d30495f823ed928e0fe027166545d0 Merge: 59bf21efe7 a47b98b32e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:08 2024 +0200 gh-37663: sage/rings/{complex,real}*: Untitlecase titles, add refs to libraries <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> This cleans up the table of contents https://deploy-preview-37663-- sagemath.netlify.app/html/en/reference/rings_numerical/ ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> - Depends on #37406 (merged here to resolve merge conflict) URL: https://github.com/sagemath/sage/pull/37663 Reported by: Matthias Köppe Reviewer(s): Marc Mezzarobba commit 59bf21efe755cac20496bb417285a7e3545bc790 Merge: 2fd04522f3 210c5d8389 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:06 2024 +0200 gh-37661: some cross-references btw doc of RR, RBF, ... (mainly intended to make RBF and CBF, which are the most powerful implementations for most purposes, more discoverable) URL: https://github.com/sagemath/sage/pull/37661 Reported by: Marc Mezzarobba Reviewer(s): commit 2fd04522f3caaca5fff0f78f1f1dccc6c0027475 Merge: 03f81897de 16a5261134 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:02 2024 +0200 gh-37660: Fix e302 libs pyx This is adding missing empty lines (pycodestyle E302) in pyx files in the `modules` and `libs` folders. Also some little tweak in code in the singular libs files. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37660 Reported by: Frédéric Chapoton Reviewer(s): David Coudert commit 03f81897de2bf0aaf6b7fa82982b17251b0c9fd1 Merge: 81b4ddccd1 23c45b1d61 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:59 2024 +0200 gh-37659: fix ruff codes UP012 and UP023 scripted using `ruff` ; only two minor changes see https://docs.astral.sh/ruff/rules/#pyupgrade-up ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37659 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 81b4ddccd1de963f7731661106e1e425efd2e76b Merge: 74a82d7ce4 4fa6f09984 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:54 2024 +0200 gh-37655: Removed caching of determinant in LLL for the `NTL:LLL`-algorithm The method previously computed the square root of the squared determinant to cache, thus caching the absolute value of the determinant instead of the determinant. Therefore we remove this caching completely, which fixes #37236. URL: https://github.com/sagemath/sage/pull/37655 Reported by: Sebastian A. Spindler Reviewer(s): Vincent Delecroix commit 74a82d7ce445d8d9e66595887e9fcdf40f838702 Merge: 34539cdb4b 51d423d5a2 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:52 2024 +0200 gh-37652: fix typos and no "Algebra" in the doc This fixes a bunch of typos in the doc, and also rewrites one example to use `Parent` instead of the auld `Algebra` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37652 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 34539cdb4b65fbb8f34f738c15f41a800de25141 Merge: 7a5ba77a93 5f32f5f882 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:49 2024 +0200 gh-37651: use parent in asymptotic ring trying to use the modern `Parent` and categories in the asymptotic ring, instead of the auld `Algebra` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37651 Reported by: Frédéric Chapoton Reviewer(s): Marc Mezzarobba commit 7a5ba77a93cef0ee7a44f4228070e48b890d2b73 Merge: d4ab336474 4fa36454b5 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:45 2024 +0200 gh-37640: Modified `.is_reduced()` of `binary_qf.py` to avoid square root computation Adapted the checks in `.is_reduced()` to avoid the square root computation, which fixes #37635. Furthermore added a non-singularity check. This adaption is based on the observation that $$|\sqrt{D} - 2 \cdot |a|| < b < \sqrt{D}$$ if and only if $$b > 0, \ a \cdot c < 0 \text{ and } (a-c)^2 < D$$ are all satisfied simultaneously (where $D = b^2 - 4ac > 0$). The above can be proven in a straightforward manner by taking squares and square roots while making sure that the numbers being squared are always positive, so that inequalities are preserved. URL: https://github.com/sagemath/sage/pull/37640 Reported by: Sebastian A. Spindler Reviewer(s): Lorenz Panny commit d4ab336474b9f40b9e7f637c9b3ba6ac8bbc2135 Merge: 3c174ef6a6 bf0c3695cc Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:41 2024 +0200 gh-37639: add Legendre transform and suspension for lazy symmetric functions This adds two useful functions, particularly important when working with operads and Koszul duality. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37639 Reported by: Frédéric Chapoton Reviewer(s): Martin Rubey, Travis Scrimshaw commit 3c174ef6a69d80e733dc7461b44fbc8b646ac30d Merge: 6ab45f666b d7021096c4 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:38 2024 +0200 gh-37638: use strings as label in modular-decomposition trees Fixing #37631 and adding a note saying that labels of rooted trees must be comparable ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37638 Reported by: Frédéric Chapoton Reviewer(s): cyrilbouvier commit 6ab45f666ba665ee9a0c517233830bafbea544b9 Merge: 8e26e27572 c4c26ee1bf Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:36 2024 +0200 gh-37637: Update jupyter-sphinx to version 0.5.3 and pin thebe to version 0.8.2 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> jupyter-sphinx that we are shipping was patched to use thebe@latest, which is the cause of the current breakdown of the sage live doc. The patch to jupyter-sphinx is partly based on https://github.com/jupyter/jupyter-sphinx/pull/231 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37637 Reported by: Kwankyu Lee Reviewer(s): Matthias Köppe commit 8e26e27572073bc9f54839143f52d2d7e4c710e0 Merge: 13a555d970 af97e6da28 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:28 2024 +0200 gh-37634: The Glaisher-Franklin bijections on integer partitions The Glaisher-Franklin bijections, for a positive integer $s$, map the set of parts divisible by $s$ to the set of parts which occur at least $s$ times, see https://www.findstat.org/MapsDatabase/Mp00312 for the $s=2$ case. This generalizes and streamlines the code from findstat. URL: https://github.com/sagemath/sage/pull/37634 Reported by: Martin Rubey Reviewer(s): Martin Rubey, Travis Scrimshaw commit 13a555d970eefceddd20728c6a3275447713ea7e Merge: 58e8c578fd d45422e64e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:23 2024 +0200 gh-37606: Border matrix <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Plain TeX users may remember `\bordermatrix`. Here we implement this as options of the `Matrix` class's `str` method. ``` sage: M = matrix([[1,2,3], [4,5,6], [7,8,9]]) sage: M.subdivide(None, 2) sage: print(M.str(unicode=True, ....: top_border=['ab', 'cde', 'f'], ....: bottom_border=['*', '', ''], ....: left_border=[1, 10, 100], ....: right_border=['', ' <', ''])) ab cde f 1⎛ 1 2│ 3⎞ 10⎜ 4 5│ 6⎟ < 100⎝ 7 8│ 9⎠ * ``` Follow-up PR: As the guiding application for this feature, we equip finite-dimensional modules with basis with methods `_repr_matrix`, `_ascii_art_matrix`, `_unicode_art_matrix` that can be used as in this example: ``` sage: M = matrix(ZZ, [[1, 0, 0], [0, 1, 0]], ....: column_keys=['a', 'b', 'c'], ....: row_keys=['v', 'w']); M Generic morphism: From: Free module generated by {'a', 'b', 'c'} over Integer Ring To: Free module generated by {'v', 'w'} over Integer Ring sage: M._unicode_art_ = M._unicode_art_matrix sage: unicode_art(M) # indirect doctest a b c v⎛1 0 0⎞ w⎝0 1 0⎠ ``` ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37606 Reported by: Matthias Köppe Reviewer(s): David Coudert, Matthias Köppe commit 58e8c578fdc79d94dba5de30ae3a5ba6c08630ef Merge: 294eed4041 c1d38c77d2 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:20 2024 +0200 gh-37563: trying a change in unique_representation namely break the loop over `mro` once found what we want I am not sure at all that this keeps the expected properties, but this is more efficient.. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37563 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 294eed4041447cb7420462f9548bc9195e376565 Merge: 14da417689 def8e56c30 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:17 2024 +0200 gh-37546: Sphinx ext links for Sage source files <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> In the documentation, we can now write `` :sage_root:`src/setup.py` `` or `` :sage_root:`src/doc/en/installation` ``, and it will be formatted uniformly, and a link to the file in the repository will be created. - Rebased version of #33756 Fixes #33756. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37546 Reported by: Matthias Köppe Reviewer(s): David Coudert, Kwankyu Lee commit 14da417689b26c72b4369c8a352d3f8345a3c259 Merge: 59ced5e363 1e66857af1 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:13 2024 +0200 gh-37497: remove zombie code We remove zombie code for solving linear systems over a finite field, which was (likely accidentally) created in #23214, but leads to errors when solving sparse linear equations over finite fields. This does not quite fix the issue, because we now fall back to generic code. Fixes #28586 URL: https://github.com/sagemath/sage/pull/37497 Reported by: Martin Rubey Reviewer(s): Matthias Köppe commit 59ced5e363eef8f18c34b65fbde75f007015ee0f Merge: fbaec798ee 6704b34380 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:09 2024 +0200 gh-37425: Remove mention of patchbot, remove 'make buildbot-python3' <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> - Depends on https://github.com/sagemath/sage/pull/37421 <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: https://github.com/sagemath/sage/pull/37425 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit fbaec798ee1a0df0e9ded0dd2dd0811387cbb797 Merge: 7855be0849 cb4e7184b3 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:06 2024 +0200 gh-37391: Make installation of "wheel" packages less noisy <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> Some care for `build/bin/sage-spkg`, reducing unhelpful verbosity. In particular, for "wheel" packages (https://deploy-livedoc-- sagemath.netlify.app/html/en/developer/packaging#package-source-types), there is no build step, so there is no point in talking about what C compiler is in use. Also saving a few lines of output (and making it clearer who does what) by prefixing the output from the various `spkg-...` scripts. Example: ``` $ make packaging-no-deps [packaging-23.2] Using cached file /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/upstream/packaging-23.2-py3-none-any.whl [packaging-23.2] Setting up build directory /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/local/var/lib/sage/venv- python3.11/var/tmp/sage/build/packaging-23.2 [packaging-23.2] [spkg-piprm] Found existing installation: packaging 23.2 [packaging-23.2] [spkg-piprm] Uninstalling packaging-23.2: [packaging-23.2] [spkg-piprm] Successfully uninstalled packaging-23.2 [packaging-23.2] Removing stamp file /Users/mkoeppe/s/sage/sage- rebasing/worktree-pristine/local/var/lib/sage/venv- python3.11/var/lib/sage/installed/packaging-23.2 [packaging-23.2] [spkg-install] Staged wheel file, staged /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv- python3.11/var/lib/sage/scripts/packaging/spkg-requirements.txt [packaging-23.2] Moving package files from temporary location /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv- python3.11/var/tmp/sage/build/packaging-23.2/inst to /Users/mkoeppe/s/sage/sage-rebasing/worktree- pristine/local/var/lib/sage/venv-python3.11 [packaging-23.2] [spkg-pipinst] Using pip 23.3.…
commit 1d08fd591fb1694aff33cf5047f890cb8bf3b0e4 Merge: 14a1e5c078 a03a19d0be Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 15:10:30 2024 -0400 Merge branch 'pr/37748' of https://github.com/jacksonwalters/sage into pr/37748 commit a03a19d0be7b13f6ed9d082ecdef692dfcfb100f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 14:58:25 2024 -0400 Reapply "Squashed commit of the following:" This reverts commit 794503ca9f61504c80874e26d7cc71a37de4debc. commit 794503ca9f61504c80874e26d7cc71a37de4debc Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 14:56:20 2024 -0400 Revert "Squashed commit of the following:" This reverts commit da28bff0c7bb201a2795bb8cc974df69239954ef. commit da28bff0c7bb201a2795bb8cc974df69239954ef Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 14:46:40 2024 -0400 Squashed commit of the following: commit a047ccfd4c4454411027afb9dd0981d0ae4a8293 Merge: cc1aa671e5 14a1e5c078 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 14:41:10 2024 -0400 Merge branch 'pr/37748' of https://github.com/jacksonwalters/sage into pr/37748 commit cc1aa671e549388cc5d325cce8893062125c52dd Author: Jackson Walters <jacksonwalters@gmail.com> Date: Tue Apr 9 14:39:37 2024 -0400 Squashed commit of the following: commit 14a1e5c078d1684f751b9e7ef450f197e7bcf27f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 23:01:35 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Good idea. moved description from _dft_modular to dft docstring remove doctest with p=3, n=3 Update src/sage/combinat/symmetric_group_algebra.py Update src/sage/combinat/symmetric_group_algebra.py Co-Authored-By: Travis Scrimshaw <clfrngrown@aol.com> commit f3807cb141bae308906295f605939d4b2b205a5a Merge: 9ad2152942 8ea5214695 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 20:12:53 2024 -0400 Merge branch 'develop' into pr/37748 commit 8ea5214695f742eccd34bd88600771b7121cdb9f Author: Release Manager <release@sagemath.org> Date: Tue Apr 9 00:29:19 2024 +0200 Updated SageMath version to 10.4.beta2 commit 9ad2152942819a55c20d80485ad8cd8925969c6c Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:38:43 2024 -0400 double backslash for math commit 619a48dea00a0a67b8d4e542948200dc23e9589a Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:33:00 2024 -0400 add examples commit 527ae2670dd3a37b25a192ab49dad7f4c16dd5aa Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:24:13 2024 -0400 form should default to None if form is None, check if characteristic of field divides order of group. if so, it's the modular case, and we return the projection onto idempotents change-of-basis, i.e. the MFT. if not, use semi-normal form. commit 488e931da94f4872047ff8e839edc4a0c99b163e Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:09:54 2024 -0400 missing parantheses commit 7e96c904b6bc47d2108930c039b95a14155d425b Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:00:57 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit cf27c64dff0b77c6cca162849ec923ae14f4920f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 13:00:14 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py I thought I could do this, don't know why I convinced myself I needed flatten. Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 92699f42eba524047b09d527981dab2456802958 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:59:16 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 68f2ef140f91356f55290d100ad8a5282f19c206 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:58:30 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 618d5e1a8cb11006ef9fa6642e33f06d5728d6ae Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:57:18 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit 04db911e3f6a08b3be1bf5c295e913a40ee8b28a Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 12:56:37 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py I see, so "None" if the user doesn't specify, and we determine which form based on whether p|n!. Sounds good. Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com> commit e86f79410ebda01b8a85598a5754f9c383336ae1 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 11:09:57 2024 -0400 add doctest to ensure issue 37751 is fixed commit f8c64d16b3d1c7b3d338d9d2339ae2e284df3c58 Merge: aedd2f3927 3079e2d897 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:55:44 2024 -0400 Merge branch 'pr/37748' of https://github.com/jacksonwalters/sage into pr/37748 commit aedd2f3927aac05dceeb97bd484afa82557652a8 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:55:43 2024 -0400 remove multiplication stars commit 3079e2d897396222b0f23784a4d07a40f25b3c1f Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:54:38 2024 -0400 Update src/sage/combinat/symmetric_group_algebra.py Co-authored-by: grhkm21 <83517584+grhkm21@users.noreply.github.com> commit b14565299a6f5a82e5fae5080de88b455ce696e5 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:51:59 2024 -0400 docstring lines are wrapped at 80 characters ensure each line is less than 80 characters commit e3fcc1f59c4668f88c184649c18627480365e646 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Mon Apr 8 10:24:51 2024 -0400 keep form argument keep form since there is a one year deprecation warning before removing arguments. show deprecation warning when default seminormal form is called, but suggest modular form which works in all cases commit 6d187b153b5b5c3e29fe07d9efe925e34bf5baa5 Merge: 551139c09f c8d260a6fe Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 23:34:58 2024 +0200 gh-37764: ECM-related tests fail after an incremental build ### TL;DR: This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. ### Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' ### Dependencies See also: * https://github.com/sagemath/sage/pull/37701 * https://github.com/sagemath/sage/pull/37011#issuecomment-2023089743 URL: https://github.com/sagemath/sage/pull/37764 Reported by: Volker Braun Reviewer(s): Matthias Köppe commit 71ad110e196d9f17934d030ce1c000e11b50fee8 Author: Jackson Walters <jacksonwalters@gmail.com> Date: Sun Apr 7 19:57:42 2024 -0400 trigger GitHub actions commit c8d260a6fe37cb0379690e57dab6fd2a3d5d8048 Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 22:13:11 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit fbf896681da3ad1fad6c164e4d5a7cf452ec2eec Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 21:35:42 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit 6531f7e415230d62fecd0a38fd804081341a9f32 Author: Volker Braun <tarpit@vbraun.imap.cc> Date: Sun Apr 7 21:35:38 2024 +0200 Update build/pkgs/ecm/spkg-configure.m4 Co-authored-by: Matthias Köppe <mkoeppe@math.ucdavis.edu> commit af0e24286a62a06d85e1baf49d0dc8f624965e5c Author: Volker Braun <vbraun.name@gmail.com> Date: Sun Apr 7 19:17:37 2024 +0200 ECM-related tests fail after an incremental build This is because setting the default ECMBIN=ecm is only done when using the configure test, but not when skipping the configure test because the spkg is already installed. Steps to reproduce: * ecm is not installed in the base os * Sage make distclean && make succeeeds * Tests succeed * re-running ./bootstrap && ./configure && make works * Tests now fail with PermissionError: [Errno 13] Permission denied: '' See also: * https://github.com/sagemath/sage/pull/37701 * https://github.com/sagemath/sage/pull/37011#issuecomment-2023089743 commit 551139c09f26a5da96b1187c3f0dd17b8d80ef84 Merge: 03be519274 547d502ed5 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:43 2024 +0200 gh-37763: Fix tolerance for scipy 1.13 After updating scipy to 1.13: ``` ********************************************************************** File "pkgs/sagemath-standard/build/lib.linux-x86_64-cpython- 312/sage/matrix/matrix_double_dense.pyx", line 3686, in sage.matrix.matrix_double_dense.Matrix_double_dense.exp Failed example: A.exp() # tol 1.1e-14 # needs sage.symbolic Expected: [-19.614602953804912 + 12.517743846762578*I 3.7949636449582176 + 28.88379930658099*I] [ -32.383580980922254 + 21.88423595789845*I 2.269633004093535 + 44.901324827684824*I] Got: [-19.61460295380496 + 12.517743846762578*I 3.7949636449581874 + 28.88379930658104*I] [-32.38358098092232 + 21.884235957898436*I 2.2696330040934853 + 44.901324827684896*I] Tolerance exceeded in 1 of 8: 2.269633004093535 vs 2.2696330040934853, tolerance 3e-14 > 1.1e-14 ********************************************************************** ``` This PR raises the tolerance to `3e-14` to fix this. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37763 Reported by: Gonzalo Tornaría Reviewer(s): Antonio Rojas commit 03be519274f1e3aa424ea729f406180a10df1498 Merge: 4d88e898e2 cd41d1e414 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:37 2024 +0200 gh-37755: src/sage/graphs/graph_decompositions/tdlib.pyx: Use -std=c++11 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> This is needed with the current Xcode command line tools on macOS with boost from homebrew. Similar to https://github.com/sagemath/sage/pull/37646#issuecomment-2017108199 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37755 Reported by: Matthias Köppe Reviewer(s): David Coudert commit 4d88e898e203d9b7297d224f40d659c213701ccb Merge: 9971cec642 6722976389 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:34 2024 +0200 gh-37753: Added rank check to doctest in `.gauss_on_polys` Fixes #37732. Also removed assignment of vectors `v` in the same doctest since they are not used. URL: https://github.com/sagemath/sage/pull/37753 Reported by: Sebastian A. Spindler Reviewer(s): Martin Rubey commit 9971cec64239679ee00ee7b22415b98ed53fbbf6 Merge: 3df3305a64 80239bc925 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:31 2024 +0200 gh-37736: Reimplementing the Witt (Sym Func) change of basis, caches, and omega involution <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> We reimplement the coercion from the Witt basis of symmetric functions to the $h$, $e$, and $p$ bases and their inverses by using the generating function identities and recursion for $w_n, h_n, e_n, p_n$ and the mulitplicative basis property for the general shape (in particular, we attempt to minimize the number of multiplications and maximize the use of the cache by recursively splitting the partition by its smallest part). We cache the result using `@cached_method` instead of custom classes. We also deprecate the `coerce_*` inputs. We also take advantage that $\omega w_n = w_n$ when $n$ is odd to compute the omega involution. This extends to a faster computation of the antipode. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37736 Reported by: Travis Scrimshaw Reviewer(s): Darij Grinberg, Martin Rubey commit 3df3305a6493f88ce86a1bc73e17c34ad01fbe33 Merge: 01333dfec1 ddcb3e45ca Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:27 2024 +0200 gh-37725: Fix typo/phrasing in README.md <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> - Removed the phrase "It assumes that you have already cloned the git repository" from the setup guide since the guide actually contains instructions on cloning the repository - Removed a random misplaced period ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37725 Reported by: Faisal Reviewer(s): gmou3 commit 01333dfec1ae7a518260c0178d4a0b254b886157 Merge: bcbb58f10a 8378fe6fdd Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:24 2024 +0200 gh-37721: Renamed "ring" argument of matrix contructor to "base_ring" <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> The matrix constructor used to accept ``ring`` as argument to specify a the base ring of a matrix. It now takes ``base_ring`` instead. ``ring`` is still accepted but deprecated (I added a deprecation in the code). This is for unification (``base_ring`` is what users expect from their experience with other classes). This solves @mkoeppe's issue #33380. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37721 Reported by: SandwichGouda Reviewer(s): Matthias Köppe commit bcbb58f10a840f43c1359934b85bfef9c143731c Merge: 08d5d97336 9b3ddf95fd Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:21 2024 +0200 gh-37720: pkgs/sagemath-repl/pyproject.toml.m4: Declare extra 'sphinx' <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> As discussed in https://github.com/sagemath/sage/pull/37589#issuecomment-2030456264, the Sage documentation system uses Sphinx to format the documentation in the terminal, for example in the help system. For the modularization project, a simple fallback for the case of Sphinx not being present was added. Here we declare the corresponding "extra" so that users can do `pip install sagemath-repl[sphinx]`. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37720 Reported by: Matthias Köppe Reviewer(s): commit 08d5d97336d5cb87f4e9731b724b320e8cef771f Merge: 253169ff7b 5a61d3c103 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:18 2024 +0200 gh-37712: src/tox.ini (rst): Add missing Sphinx roles <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Fixes #37711 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37712 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit 253169ff7b83df66d20846983ac9ce2982f3a18e Merge: 35f34ee0f6 3dc65b5797 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:16 2024 +0200 gh-37707: Implement an iterator for absolute number fields <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> We use the $\mathbb{Q}$ vector space structure. Although because of #37706, we go through `cartesian_product`. If there is an easy way to implement this in full generality (i.e., all number fields), please let me know. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37707 Reported by: Travis Scrimshaw Reviewer(s): Matthias Köppe commit 35f34ee0f66904d9f2766b646664ae67cedd3aae Merge: 0a16c78b4e e077f1edf7 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:11 2024 +0200 gh-37703: Implement an is_nilpotent() method for matrices <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Checking if a matrix is nilpotent is a fundamental test that Sage is (surprisingly) missing. We check this by using the char poly. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37703 Reported by: Travis Scrimshaw Reviewer(s): Frédéric Chapoton, Martin Rubey commit 0a16c78b4e2b677ba30b198fdc781d38e595c9d8 Merge: 9d788cb197 7e8aa98fa6 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:04 2024 +0200 gh-37699: Add `approximate_closest_vector` to `IntegerLattice`, using Babai's nearest plane algorithm This PR implements Babai's nearest plane algorithm to find vectors close to a given vector in an integer lattice. I would appreciate if someone could verify the bound stated in the docstring, it is inferred from Babai's original paper but parameterized to use the `delta` parameter of the LLL algorithm. Ideas for improvements: - The doctest is currently the same as for `closest_vector`, this could be expanded - The `delta` parameter for LLL needs to be kept track of by the user. How "much" the basis has been reduced (i.e to how high a `delta` value) could be kept track of by the class and if a further reduction is needed for some given bound then it could be performed. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37699 Reported by: TheBlupper Reviewer(s): grhkm21, TheBlupper commit 9d788cb19732f9f750c6d5a25c28ccb958414112 Merge: 6925269840 d63ab2607e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 14:00:02 2024 +0200 gh-37689: Fix changes.html in doc preview <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> by changing the base doc url. The base doc url is where the doc preview for the released version is uploaded. It changed recently: https://github.com/sagemath/sage/issues/34874#issuecomment-1870589626, but we didn't fix accordingly here: [.ci/create-changes- html.sh](https://github.com/sagemath/sage/blob/develop/.ci/create- changes-html.sh) ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37689 Reported by: Kwankyu Lee Reviewer(s): commit 6925269840b81d3a1085ae900037e71dfd440c87 Merge: 12a003eddd 3b137b50a0 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:59 2024 +0200 gh-37688: typo Small typo URL: https://github.com/sagemath/sage/pull/37688 Reported by: Dennis Yurichev Reviewer(s): Martin Rubey commit 12a003eddd08bcac14c88becd82bf52af599fe6c Merge: 3c9a67a2f0 6184336d73 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:56 2024 +0200 gh-37687: provide a construction functor using a single functor for families We enable sage to find common parents also when symmetric functions are involved. In particular, we provide a functorial construction that takes a commutative (coefficient) ring and produces a (commutative) ring of symmetric functions over this ring. For Macdonald polynomials and other symmetric functions that involve parameters we cheat a bit: the categories should actually be commutative rings with distinguished elements (namely, the parameters). However, having these is very likely overkill. This is an alternative to #37220, relying on individual construction functors instead of passing around strings, and #37686, which provides an individual functor for each family. URL: https://github.com/sagemath/sage/pull/37687 Reported by: Martin Rubey Reviewer(s): Travis Scrimshaw commit 3c9a67a2f0f8d42c1167f7fa192c70d29cdf6766 Merge: 1ab35e3a69 31645a4f35 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:53 2024 +0200 gh-37683: some shortcuts using bool fixes suggested by `ruff --select=SIM210` namely use `bool` for concision ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37683 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe, Travis Scrimshaw commit 1ab35e3a696baf5a2fdd866a670c32611fa4a996 Merge: 654ed08b89 449864f0af Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:49 2024 +0200 gh-37680: a few more uses of "in Fields()" Just replacing some tests by `R in Fields()` in some pyx files outside the `rings` folder ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37680 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 654ed08b899e3a0bcd2d72a9ea66e5f1a96569a8 Merge: 042153b0d9 a8671aef33 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:44 2024 +0200 gh-37679: simplifications in symmetric_ideal.py some simplifications in `symmetric_ideal` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37679 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 042153b0d976f8ec7b7489c404a17084321e3e06 Merge: 0de7848873 5d4a91fa85 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:41 2024 +0200 gh-37677: some simplifications in moment-angle complex a bunch of code details in the modified file fixes #36217 ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. URL: https://github.com/sagemath/sage/pull/37677 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 0de7848873bcda21b916e13ad71dd0dbe6aa9ff0 Merge: 014ccc31c4 e0ef88414d Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:38 2024 +0200 gh-37674: some pep8 and ruff cleanups in modules/ some ruff and pep8 cleanup in the `modules` folder ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37674 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 014ccc31c4118b929bb46c0811331f828041aee4 Merge: 93cc706453 42b4b671c3 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:34 2024 +0200 gh-37673: upgrade msolve to 0.6.5 routine upgrade, dropping already applied patch URL: https://github.com/sagemath/sage/pull/37673 Reported by: Dima Pasechnik Reviewer(s): Dima Pasechnik, Marc Mezzarobba, Matthias Köppe commit 93cc7064532b3456e5520833121e761078078576 Merge: cf431c8d40 f9ddc324b8 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:31 2024 +0200 gh-37672: src/sage/modular/quasimodform/ring.py: Fix pycodestyle warning <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [ ] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37672 Reported by: Matthias Köppe Reviewer(s): Frédéric Chapoton commit cf431c8d40397205bb0f2e1f2843beec16788236 Merge: 2c71f81f0d 378ec74794 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:28 2024 +0200 gh-37671: pkgs/sagemath-standard: Support gpep517 From https://github.com/sagemath/sage/pull/37138#issuecomment-2018937633 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37671 Reported by: Matthias Köppe Reviewer(s): François Bissey commit 2c71f81f0d804932deb11f3d28eb6e7962593076 Merge: 5801382f06 b8757d814e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:24 2024 +0200 gh-37668: Wrong results in is_isotopic method of the Link class for certain chiral link <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> The following result is wrong, since `K10_67` is a chiral knot: ``` sage: L = KnotInfo.K10_67 ....: L1 = L.link() ....: L1r = L.link().reverse() ....: L1.is_isotopic(L1r) True ``` The problem is that the `get_knotinfo` method currently does not distinguish between all four symmetry mutants of a chiral knot or link. In the example, `get_knotinfo` detects both knots as *not mirrored* to the symmetry mutant of `K10_67` recorded in the KnotInfo database, as you can see from the verbose messages: ``` sage: set_verbose(1) sage: L1.is_isotopic(L1r) verbose 1 (4365: link.py, is_isotopic) KnotInfo other: KnotInfo.K10_67 mirrored False True ``` The wrong conclusion in `is_isotopic` is that they must be isotopic. The idea in this PR is to replace the boolean `mirrored` in the output of `get_knotinfo` with the value of an enum representing all symmetry mutants for an entry of the KnotInfo database. Of course, this requires major revisions in the `get_knotinfo` and `is_isotopic` methods. The key to this is a new local method `_knotinfo_matching_dict` that builds on `_knotinfo_matching_list` and returns the matching list for all symmetry mutants. On the occasion of that revision, I also fix other wrong results for example this one of a multi-component link which is not amphicheiral, but reversible: ``` sage: L = KnotInfo.L6a2_0 sage: L1 = L.link() sage: L2 = L.link(L.items.braid_notation) sage: L1.is_isotopic(L2) False ``` This bug is due to `get_knotinfo` returning the wrong mirror version for `L1` concerning `L6a2_1`: ``` ... sage: L1.get_knotinfo(unique=False) [(<KnotInfo.L6a2_0: 'L6a2{0}'>, False), (<KnotInfo.L6a2_1: 'L6a2{1}'>, False)] sage: L2.get_knotinfo(unique=False) [(<KnotInfo.L6a2_0: 'L6a2{0}'>, False), (<KnotInfo.L6a2_1: 'L6a2{1}'>, True)] ``` In addition to these fixes, improvements and corresponding adjustments, I correct some document formatting. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37668 Reported by: Sebastian Oehms Reviewer(s): Sebastian Oehms, Travis Scrimshaw commit 5801382f0638c7c8f50ae5a906b85306e5350fb5 Merge: cf365e5e51 bcc326d972 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:11 2024 +0200 gh-37667: Fix noexcept clauses (#37560) In #36507 I added a lot of `noexcept` clauses guided by a warning which is not quite right (see https://github.com/cython/cython/pull/5999#issuecomment-1986868208). A new warning in 3.0.9 shows the mistake (incorrectly added `noexcept` clauses). This broke some doctests (#37560) and a workaround was implemented for 10.3 (#37583) since we were too close to release. This PR now does the proper fix, removing all the incorrect `noexcept`, and also adding a few missing `noexcept`. Note: if one tries this PR with cython <= 3.0.8 it seems it's wrong in the sense that it will show 40k more warnings after the PR. These are *incorrect* warnings. If one uses cython 3.0.9 each of these 40k lines give a correct warning before this PR and an incorrect warnings after the PR, and there is no way to avoid 40k warnings. To confirm this PR is a good one, one needs to use cython 3.0.9 + https://github.com/cython/cython/pull/6087 or wait for cython 3.0.10. In this case, the warnings are correct and one will get 40k warnings before the PR and no warning after the PR. The last commit reverts the workaround from #37583 so we don't silence these warnings on `cython()` now that we have our own code right. @vbraun: this is "almost trivial" but touches too many files. Could we merge it in beta0 to avoid conflicts? I did this "kind of" automatically and I've been testing it for two weeks in almost all my builds. The changes made should not affect behaviour at all in the legacy mode we are using cython. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. URL: https://github.com/sagemath/sage/pull/37667 Reported by: Gonzalo Tornaría Reviewer(s): Gonzalo Tornaría, Matthias Köppe commit cf365e5e51d30495f823ed928e0fe027166545d0 Merge: 59bf21efe7 a47b98b32e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:08 2024 +0200 gh-37663: sage/rings/{complex,real}*: Untitlecase titles, add refs to libraries <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> This cleans up the table of contents https://deploy-preview-37663-- sagemath.netlify.app/html/en/reference/rings_numerical/ ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> - Depends on #37406 (merged here to resolve merge conflict) URL: https://github.com/sagemath/sage/pull/37663 Reported by: Matthias Köppe Reviewer(s): Marc Mezzarobba commit 59bf21efe755cac20496bb417285a7e3545bc790 Merge: 2fd04522f3 210c5d8389 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:06 2024 +0200 gh-37661: some cross-references btw doc of RR, RBF, ... (mainly intended to make RBF and CBF, which are the most powerful implementations for most purposes, more discoverable) URL: https://github.com/sagemath/sage/pull/37661 Reported by: Marc Mezzarobba Reviewer(s): commit 2fd04522f3caaca5fff0f78f1f1dccc6c0027475 Merge: 03f81897de 16a5261134 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:59:02 2024 +0200 gh-37660: Fix e302 libs pyx This is adding missing empty lines (pycodestyle E302) in pyx files in the `modules` and `libs` folders. Also some little tweak in code in the singular libs files. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37660 Reported by: Frédéric Chapoton Reviewer(s): David Coudert commit 03f81897de2bf0aaf6b7fa82982b17251b0c9fd1 Merge: 81b4ddccd1 23c45b1d61 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:59 2024 +0200 gh-37659: fix ruff codes UP012 and UP023 scripted using `ruff` ; only two minor changes see https://docs.astral.sh/ruff/rules/#pyupgrade-up ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37659 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 81b4ddccd1de963f7731661106e1e425efd2e76b Merge: 74a82d7ce4 4fa6f09984 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:54 2024 +0200 gh-37655: Removed caching of determinant in LLL for the `NTL:LLL`-algorithm The method previously computed the square root of the squared determinant to cache, thus caching the absolute value of the determinant instead of the determinant. Therefore we remove this caching completely, which fixes #37236. URL: https://github.com/sagemath/sage/pull/37655 Reported by: Sebastian A. Spindler Reviewer(s): Vincent Delecroix commit 74a82d7ce445d8d9e66595887e9fcdf40f838702 Merge: 34539cdb4b 51d423d5a2 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:52 2024 +0200 gh-37652: fix typos and no "Algebra" in the doc This fixes a bunch of typos in the doc, and also rewrites one example to use `Parent` instead of the auld `Algebra` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37652 Reported by: Frédéric Chapoton Reviewer(s): Matthias Köppe commit 34539cdb4b65fbb8f34f738c15f41a800de25141 Merge: 7a5ba77a93 5f32f5f882 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:49 2024 +0200 gh-37651: use parent in asymptotic ring trying to use the modern `Parent` and categories in the asymptotic ring, instead of the auld `Algebra` ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37651 Reported by: Frédéric Chapoton Reviewer(s): Marc Mezzarobba commit 7a5ba77a93cef0ee7a44f4228070e48b890d2b73 Merge: d4ab336474 4fa36454b5 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:45 2024 +0200 gh-37640: Modified `.is_reduced()` of `binary_qf.py` to avoid square root computation Adapted the checks in `.is_reduced()` to avoid the square root computation, which fixes #37635. Furthermore added a non-singularity check. This adaption is based on the observation that $$|\sqrt{D} - 2 \cdot |a|| < b < \sqrt{D}$$ if and only if $$b > 0, \ a \cdot c < 0 \text{ and } (a-c)^2 < D$$ are all satisfied simultaneously (where $D = b^2 - 4ac > 0$). The above can be proven in a straightforward manner by taking squares and square roots while making sure that the numbers being squared are always positive, so that inequalities are preserved. URL: https://github.com/sagemath/sage/pull/37640 Reported by: Sebastian A. Spindler Reviewer(s): Lorenz Panny commit d4ab336474b9f40b9e7f637c9b3ba6ac8bbc2135 Merge: 3c174ef6a6 bf0c3695cc Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:41 2024 +0200 gh-37639: add Legendre transform and suspension for lazy symmetric functions This adds two useful functions, particularly important when working with operads and Koszul duality. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37639 Reported by: Frédéric Chapoton Reviewer(s): Martin Rubey, Travis Scrimshaw commit 3c174ef6a69d80e733dc7461b44fbc8b646ac30d Merge: 6ab45f666b d7021096c4 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:38 2024 +0200 gh-37638: use strings as label in modular-decomposition trees Fixing #37631 and adding a note saying that labels of rooted trees must be comparable ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. URL: https://github.com/sagemath/sage/pull/37638 Reported by: Frédéric Chapoton Reviewer(s): cyrilbouvier commit 6ab45f666ba665ee9a0c517233830bafbea544b9 Merge: 8e26e27572 c4c26ee1bf Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:36 2024 +0200 gh-37637: Update jupyter-sphinx to version 0.5.3 and pin thebe to version 0.8.2 <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> jupyter-sphinx that we are shipping was patched to use thebe@latest, which is the cause of the current breakdown of the sage live doc. The patch to jupyter-sphinx is partly based on https://github.com/jupyter/jupyter-sphinx/pull/231 ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37637 Reported by: Kwankyu Lee Reviewer(s): Matthias Köppe commit 8e26e27572073bc9f54839143f52d2d7e4c710e0 Merge: 13a555d970 af97e6da28 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:28 2024 +0200 gh-37634: The Glaisher-Franklin bijections on integer partitions The Glaisher-Franklin bijections, for a positive integer $s$, map the set of parts divisible by $s$ to the set of parts which occur at least $s$ times, see https://www.findstat.org/MapsDatabase/Mp00312 for the $s=2$ case. This generalizes and streamlines the code from findstat. URL: https://github.com/sagemath/sage/pull/37634 Reported by: Martin Rubey Reviewer(s): Martin Rubey, Travis Scrimshaw commit 13a555d970eefceddd20728c6a3275447713ea7e Merge: 58e8c578fd d45422e64e Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:23 2024 +0200 gh-37606: Border matrix <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> Plain TeX users may remember `\bordermatrix`. Here we implement this as options of the `Matrix` class's `str` method. ``` sage: M = matrix([[1,2,3], [4,5,6], [7,8,9]]) sage: M.subdivide(None, 2) sage: print(M.str(unicode=True, ....: top_border=['ab', 'cde', 'f'], ....: bottom_border=['*', '', ''], ....: left_border=[1, 10, 100], ....: right_border=['', ' <', ''])) ab cde f 1⎛ 1 2│ 3⎞ 10⎜ 4 5│ 6⎟ < 100⎝ 7 8│ 9⎠ * ``` Follow-up PR: As the guiding application for this feature, we equip finite-dimensional modules with basis with methods `_repr_matrix`, `_ascii_art_matrix`, `_unicode_art_matrix` that can be used as in this example: ``` sage: M = matrix(ZZ, [[1, 0, 0], [0, 1, 0]], ....: column_keys=['a', 'b', 'c'], ....: row_keys=['v', 'w']); M Generic morphism: From: Free module generated by {'a', 'b', 'c'} over Integer Ring To: Free module generated by {'v', 'w'} over Integer Ring sage: M._unicode_art_ = M._unicode_art_matrix sage: unicode_art(M) # indirect doctest a b c v⎛1 0 0⎞ w⎝0 1 0⎠ ``` ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. - [ ] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> <!-- - #12345: short description why this is a dependency --> <!-- - #34567: ... --> URL: https://github.com/sagemath/sage/pull/37606 Reported by: Matthias Köppe Reviewer(s): David Coudert, Matthias Köppe commit 58e8c578fdc79d94dba5de30ae3a5ba6c08630ef Merge: 294eed4041 c1d38c77d2 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:20 2024 +0200 gh-37563: trying a change in unique_representation namely break the loop over `mro` once found what we want I am not sure at all that this keeps the expected properties, but this is more efficient.. ### :memo: Checklist - [x] The title is concise and informative. - [x] The description explains in detail what this PR is about. URL: https://github.com/sagemath/sage/pull/37563 Reported by: Frédéric Chapoton Reviewer(s): Travis Scrimshaw commit 294eed4041447cb7420462f9548bc9195e376565 Merge: 14da417689 def8e56c30 Author: Release Manager <release@sagemath.org> Date: Sun Apr 7 13:58:17 2024 +0200 gh-37546: Sphinx ext links for Sage source files <!-- ^ Please provide a concise and informative title. --> <!-- ^ Don't put issue numbers in the title, do this in the PR description below. --> <!-- ^ For example, instead of "Fixes #12345" use "Introduce new method to calculate 1 + 2". --> <!-- v Describe your changes below in detail. --> <!-- v Why is this change required? What problem does it solve? --> <!-- v If this PR resolves an open issue, please link to it here. For example, "Fixes #12345". --> In the documentation, we can now write `` :sage_root:`src/setup.py` `` or `` :sage_root:`src/doc/en/installation` ``, and it will be formatted uniformly, and a link to the file in the repository will be created. - Rebased version of #33756 Fixes #33756. ### :memo: Checklist <!-- Put an `x` in all the boxes that apply. --> - [x] The title is concise and informative. - [ ] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [ ] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### :hourglass: Dependencies <!-- List all open PRs that this PR logically depends on. For example, --> …
ECM executable in Fedora is called
gmp-ecm
This PR allows both names,
ecm
andgmp-ecm
, to be used