Sage 10.4 Release Tour
These are the work-in-progress release notes for the upcoming 10.4 release (2024). For the current stable version, see the Sage 10.3 Release Tour (March 2024).
Jordan decomposition of a matrix and is_semisimple() test #37710
Tensor products of combinatorial free modules now have a functorial construction. #37451
The Reference Manual in HTML format now provides links for each class, function, and method back to the source code on GitHub. This makes it convenient to make small edits to the docstring directly on GitHub, or just to inspect the source code. #37589
The package lists in the Reference Manual have been reorganized by categories. #37315
Standard packages | Optional Packages | Experimental Packages |
---|---|---|
Mathematics | Mathematics | Mathematics |
Front-end, graphics, document preparation | Front-end, graphics, document preparation | |
Other dependencies | Other dependencies | Other dependencies |
The dependency graph and SBOM provided by GitHub for SageMath now includes all Python packages that Sage uses. #36999
Greek #37198
Please read our updated Sage Developer Guide. #30201 #37399 #37401 #37444 #37485 #37487 #37508
Linking to Sage repository files: #37546
Guided by the technical constraints outlined in the June 2023 sage-devel post Modularization project: IV. The rules, we define distribution packages (pip-installable packages) sagemath-{brial, combinat, eclib, flint, gap, giac, glpk, graphs, groups, homfly, lcalc, libbraiding, libecm, linbox, modules, mpmath, ntl, pari, plot, polyhedra, schemes, singular, standard-no-symbolics, symbolics}.
Most source files of the Sage library now carry # sage_setup: distribution
directives, which indicate which distribution package will ship this source file. #36964
As most of the tests of the Sage library are doctests that refer to the bindings in the sage.all
namespace, we have created files that provide the top level namespaces for doctesting the modularized distribution packages. #36676
For example, the namespace package sage.misc
is filled by modules from several distribution packages, so we use modules named:
- src/sage/misc/all__sagemath_environment.py
- src/sage/misc/all__sagemath_objects.py
- src/sage/misc/all__sagemath_repl.py
- etc.
The file src/sage/misc/all.py
imports *
from these modules.
See the Developer Guide section on modularized doctesting for more information.
NTL has been upgraded from 11.4.3 to 11.5.1. #37251
SciPy has been upgrade to 1.12 (release notes). #37266
cypari2 2.1.5, memory_allocator 0.1.4 #37665
The new optional package python_flint provides alternative bindings to the FLINT library. We have added it as preparation for an upgrade of SymPy. https://github.com/sagemath/sage/pull/37224
PySCIPOpt #37392
The polynomial system solver msolve has been upgraded from 0.5.0 to 0.6.5. #37673
gnumake_tokenpool #37498
jupyter-sphinx 0.5.3. #37637
For a list of all packages and their versions, see
The Sage 10.4 release cycle started in March 2024. The first development release, 10.4.beta0, was tagged on 2024-03-25. The current development release is 10.4.beta3, tagged on 2024-04-12.
Please read our updated Sage Installation Guide. #37184 #37309 #37411
The source code is available in the Sage GitHub repository.
Sage builds successfully on the following platforms:
-
Linux 64-bit (x86_64)
- ubuntu-{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.5-gcc_11-python3.11, tumbleweed}
-
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. The support code for Cygwin was removed in the Sage 10.3 development cycle. 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 Dev Containers or WSL remote.
Support of ubuntu-trusty
has been dropped, as the platform has reached its end of life. #37351
On ubuntu-mantic, the Maxima package may fail to build when system ECL is in use. Workaround: Use ./configure --without-system-ecl
#36672
OpenJPEG 2.5.1 is broken and leads to a build failure in Pillow. Upgrade OpenJPEG to 2.5.2 or use #37505 as a workaround.
No latex display in the Jupyter notebook when offline. Workaround: Use ./sage -pip uninstall jupyterlab-mathjax2
. #36914
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