Skip to content

Sage 10.4 Release Tour

Matthias Köppe edited this page Apr 25, 2024 · 20 revisions

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).

Linear algebra

Jordan decomposition of a matrix and is_semisimple() test #37710

Tensor products of combinatorial free modules now have a functorial construction. #37451

Documentation

Links to source code

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

Screenshot 2024-04-25 at 4 06 29 PM

Example code is now available in pure Python form

tabs-animation

#37083

Package list by category

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

Translations

Greek #37198

New developer tools

Please read our updated Sage Developer Guide. #30201 #37399 #37401 #37444 #37485 #37487 #37508

Linking to external package documentation

#37598

#37575

Linking to Sage repository files: #37546

Modularization changes

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:

The file src/sage/misc/all.py imports * from these modules.

See the Developer Guide section on modularized doctesting for more information.

Modernized package metadata

#36951

Package upgrades, configuration changes, porting

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

Availability of Sage 10.4 and installation help

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

Sources

The source code is available in the Sage GitHub repository.

Sage builds successfully on the following platforms:

  • Linux 64-bit (x86_64)
  • 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.

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

Known problems and workarounds

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

Help

See README.md in the source distribution for installation instructions.

Visit sage-support for installation help.

More details