-
-
Notifications
You must be signed in to change notification settings - Fork 482
Sage 10.2 Release Tour
Sage 10.2 was released on Dec 3, 2023.
Here is an overview of some of the main changes in this version.
- Mod 2 homology and cohomology of a simplicial complex or simplicial set as a module over the mod 2 Steenrod algebra: for any element
a
of the Steenrod algebra and any (co)homology classx
, computea*x
andx*a
. #36310
- Isogeny-finding (including the computation of duals) now uses the quasilinear-time BMSS algorithm. #36285
- Computing traces of arbitrary endomorphisms is now supported (at least over finite fields and number fields). #35546
- The
groebner_basis
method of polynomial ideals now supports ideals defined over ℚ when using msolve as a backend. #36103
Live doc has arrived. Every doc page gets a "Make live" button that activates code examples. The button is half hidden at the middle of the right edge. It becomes "Ready" when the Sage kernel is fully loaded. You may experiment with the examples while modifying code in place. Code is run by the Sage kernel built from the Sage Binder repo. You may find the kernel loading too slow. Sorry but that's what we get for free. Come back after having a cup of coffee.
To have it on your system, rebuild Sage (doc) with export SAGE_LIVE_DOC=yes && make -j4
. For zero latency in loading the kernel, rebuild Sage with
export SAGE_LIVE_DOC=yes && export SAGE_JUPYTER_SERVER=http://localhost:8889 && make -j4
and, before browsing documentation, run a local Jupyter server by
./sage --notebook=jupyterlab \
--ServerApp.token='secret' \
--ServerApp.allow_origin='null' \
--ServerApp.disable_check_xsrf=true \
--ServerApp.port=8889 \
--ServerApp.open_browser=false
For more details, see #36144.
Sage docs in non-English languages are available in the doc preview.
The Help
menu now contains links to online Sage documentation. Previously the links were to local files, which did not work well with JupyterLab.
Support for using system Python 3.8.x has been removed; Sage now accepts system Python 3.9.x–3.11.x. This has enabled major upgrades of SciPy, NumPy, and other packages that follow the NEP 29 schedule for Python version support. #35404
Cython has been upgraded from the classic 0.29.x series to the 3.0.x series, which has been in the making since 2020 (changelog 3.0.2). Sage developers may find the Cython 3 migration guide valuable. #35084, #36109, #36110, #36416
NumPy has been upgraded from 1.23.5 to 1.26.1 (release notes 1.24, 1.25, 1.26). #34816, #36509
SciPy has been upgraded from 1.10.1 to 1.11.3 (release notes 1.11). #36112, #36412
Matplotlib has been upgraded to 3.8.0. #36320
FLINT and arb have been upgraded to 2.9.0 and 2.23.0. #34102, #34106
Singular has been upgraded to 4.3.2p8. #35934, #36395
PARI has been upgraded to 2.15.4. #35302
The optional package msolve
has been upgraded to 0.5.0. #36103
nauty has been upgraded to 2.8.6 (changelog). Sage developers can now assume that all features of nauty 2.8 are available. #36541, #36707
Pillow has been upgraded to 10.1.0. #36320, #36731
MathJax, providing the math typesetting in the HTML documentation, can now be taken from the system. #36098
gc
and libatomic_ops
have been upgraded to 8.2.4 and 7.8.0, respectively. #35743 #35399
tox has been upgraded from 3.x to 4.11.1 (FAQ on new features of tox 4, upgrading notes, changelog). #34840
The optional package normaliz
has been upgraded to 3.10.1. #36050
System package information for Alpine Linux has been added. #35285
For a list of all packages and their versions, see
Occasionally, a development release may not pass tightened linter requirements, or other breakage may occur that reduces the value of our CI workflows. Developers in the Triage role can now mark a PR as a hotfix for the CI by using the "p: blocker / 1" label. The hotfix PR will then be applied to all CI workflows, until it has been merged into the next beta or closed otherwise. #36338
Obviously, caution and restraint are necessary when using the label. Only narrowly focused fixes are suitable to avoid surprises and merge conflicts, and the "[p: blocker / 1]" label should only be set after the PR passes tests. When adding or removing the label, developers should post a comment that explains the reason.
Using this new, experimental switch, you allow Sage to see your system site packages, i.e., the Python packages in the system Python installation on top of which the Sage venv is created. #29665, #36256, #36276, #36316, #36332, #36382
The switch allows ./configure
to detect any Python packages that it can see and that meet the version constraints declared in the files SAGE_ROOT/build/pkgs/*/install-requires.txt
.
In the current implementation, it does not detect "user" site packages yet. The feature is experimental because it turns on a huge number of system packages, and the only way to be sure that our version constraints are accurate is to have people actually try them. In particular, distribution package maintainers (conda, nix, arch, etc.) may want give it a try because it serves as an early warning system for version incompatibilities.
Portions of the documentation can now be conditionalized using Sphinx tags .. ONLY:: feature_FEATURE
, corresponding to dynamically detectable features. #36495
The build and check phases of modularized distribution packages like sagemath_categories
have been separated. After a package has been built, for example using make SAGE_WHEELS=yes sagemath_categories
, the tests can be run using make sagemath_categories-check
. #36452
Major progress has been made in tagging doctests with # needs FEATURE
directives, which enable separate testing of the modularized distribution packages and give better attribution to upstream libraries.
See Meta-ticket #29705 for the list of modularization PRs merged in the 10.2 series.
The packages sage.docs
, sage.finance
, sage.media
, and several modules in sage.homology
, sage.rings
, sage.structure
, and sage.symbolics
have been removed after deprecation periods expired. #36300, #36303, #36304, #36305, #36306, #36307
The functions is_CallableSymbolicExpression
, is_CallableSymbolicExpressionRing
, is_Expression
, is_SymbolicExpressionRing
, as well as the method Expression.__len__
have been removed after deprecation periods expired. #36304
The backslash operator has been deprecated. #36394
The source code is available in the Sage GitHub repository.
Support for building with GCC older than version 8.4 has been removed. #35810
Sage builds successfully on the following platforms:
-
Linux 64-bit (x86_64)
- ubuntu-{trusty-toolchain-gcc_9, xenial-toolchain-gcc_9, bionic-gcc_8, focal, jammy, lunar, mantic}
- debian-{buster-gcc_spkg, bullseye, bookworm, trixie, sid}
- linuxmint-{20.1, 20.2, 21, 21.1, 21.2}
- fedora-{30, 31, 32, 33, 34, 35, 36, 37, 38, 39}
- centos-{7-devtoolset-gcc_11, stream-8-python3.9, stream-9-python3.9}
- archlinux
- gentoo
- opensuse-{15.3-gcc_11-python3.9, 15.4-gcc_11-python3.10, 15.5-gcc_11-python3.11, tumbleweed}
- conda-forge
-
Linux 32-bit (i386/i686)
- ubuntu-bionic-gcc_8
- debian-bullseye
-
macOS (Intel) (x86_64) - with Homebrew or without
- macOS 11.x (Big Sur)
- macOS 12.x (Monterey)
- macOS 13.x (Ventura)
- macOS 14.x (Sonoma)
-
macOS (Apple Silicon, M1/M2) - with Homebrew or without
- Make sure that
/usr/local
does not contain an old copy of homebrew (or other software) for x86_64 that you may have copied from an old machine. Homebrew for the M1/M2 is installed in/opt/homebrew
, not/usr/local
. - Be sure to follow the README and the instructions that the
./configure
command issues regarding the installation of system packages from Homebrew or conda.
- Make sure that
You can also build Sage on top of conda-forge on Linux and macOS.
Sage 10.x does not support Cygwin; use Windows Subsystem for Linux instead. Because of unresolved problems with several standard packages and the rebasing facility, Sage 10.x does not support Cygwin. The next development cycle will remove the remaining Cygwin support code from Sage. Users on Windows 10 and 11 should migrate to using WSL as described in our installation guide. A convenient way to use such an installation of Sage is via VS Code's WSL remote.
Sage 10.2 is already available in Arch Linux, Void Linux, and as a Homebrew Cask; see https://repology.org/project/sagemath/versions
On newer systems that ship Perl >= 5.38, the optional package polymake does not build. Workaround: Install a suitable older version of Perl, for example using perlbrew
, as recommended by the polymake project. #36023
On ubuntu-mantic, the Maxima package may fail to build when system ECL is in use. Workaround: Use ./configure --without-system-ecl
#36672
The optional packages cylp
, pari_jupyter
, pyscipopt
, p_group_cohomology
, sage_numerical_backend_*
, surface_dynamics
, symengine_py
have not been updated yet to work with Cython 3. This will be done early in the next release cycle; any help is very welcome.
The optional packages e_antic
and normaliz
have not been updated yet to work with FLINT 3. This will be done early in the next release cycle; any help is very welcome.
See README.md in the source distribution for installation instructions.
Visit sage-support for installation help.
Readme | Version | Citation | Authors | Contributing | Code of Conduct | Copyright ©️ 2023 Sage Developer Community