Skip to content
This repository has been archived by the owner on Jan 30, 2023. It is now read-only.

Commit

Permalink
Merge tag '9.4.beta4' into t/31280/jupyter_upgrade
Browse files Browse the repository at this point in the history
SageMath version 9.4.beta4, Release Date: 2021-07-01
  • Loading branch information
Matthias Koeppe committed Jul 6, 2021
2 parents c943913 + 473cd41 commit b348305
Show file tree
Hide file tree
Showing 726 changed files with 48,093 additions and 30,506 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- name: Install relint
run: pip install tox relint
- name: Lint using relint
run: tox -e relint src/
run: tox -e relint src/sage/
lint-pyright:
name: Static type check with pyright
runs-on: ubuntu-latest
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/tox-experimental.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ jobs:
fail-fast: false
max-parallel: 6
matrix:
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
# This list is different from the one in tox.yml:
# Trac #31526 switches gcc 4.x-based distributions to using the gcc_spkg configuration factor
tox_system_factor: [ubuntu-trusty-gcc_spkg, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie-gcc_spkg, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17-gcc_spkg, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7-gcc_spkg, centos-8, gentoo, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-gcc_spkg]
tox_packages_factor: [maximal]
targets_pattern: [0-g, h-o, p, q-z]
env:
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/tox-optional.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ jobs:
fail-fast: false
max-parallel: 6
matrix:
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
# This list is different from the one in tox.yml:
# Trac #31526 switches gcc 4.x-based distributions to using the gcc_spkg configuration factor
tox_system_factor: [ubuntu-trusty-gcc_spkg, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie-gcc_spkg, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17-gcc_spkg, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7-gcc_spkg, centos-8, gentoo, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-gcc_spkg]
tox_packages_factor: [maximal]
targets_pattern: [0-g, h-o, p, q-z]
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/tox.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
fail-fast: false
max-parallel: 20
matrix:
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, centos-7, centos-8, gentoo, gentoo-python3.7, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
tox_system_factor: [ubuntu-trusty, ubuntu-xenial, ubuntu-bionic, ubuntu-focal, ubuntu-groovy, ubuntu-hirsute, ubuntu-impish, debian-jessie, debian-stretch, debian-buster, debian-bullseye, debian-sid, linuxmint-17, linuxmint-18, linuxmint-19, linuxmint-19.3, linuxmint-20.1, linuxmint-20.2, fedora-26, fedora-27, fedora-28, fedora-29, fedora-30, fedora-31, fedora-32, fedora-33, fedora-34, fedora-35, centos-7, centos-8, gentoo, gentoo-python3.7, archlinux-latest, opensuse-15, opensuse-15.3, opensuse-tumbleweed, slackware-14.2, conda-forge, ubuntu-bionic-i386, manylinux-2_24-i686, debian-buster-i386, centos-7-i386]
tox_packages_factor: [minimal, standard]
env:
TOX_ENV: docker-${{ matrix.tox_system_factor }}-${{ matrix.tox_packages_factor }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ src/sage/modular/arithgroup/farey_symbol.h
!src/sage/graphs/cliquer/cl.c
!src/sage/graphs/graph_decompositions/sage_tdlib.cpp
!src/sage/libs/eclib/wrap.cpp
!src/sage/libs/linkages/padics/relaxed/flint_helper.c
!src/sage/misc/inherit_comparison_impl.c
!src/sage/modular/arithgroup/farey.cpp
!src/sage/modular/arithgroup/sl2z.cpp
Expand Down
8 changes: 4 additions & 4 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"description": "Mirror of the Sage https://sagemath.org/ source tree",
"license": "other-open",
"title": "sagemath/sage: 9.4.beta0",
"version": "9.4.beta0",
"title": "sagemath/sage: 9.4.beta4",
"version": "9.4.beta4",
"upload_type": "software",
"publication_date": "2021-05-25",
"publication_date": "2021-07-01",
"creators": [
{
"affiliation": "SageMath.org",
Expand All @@ -15,7 +15,7 @@
"related_identifiers": [
{
"scheme": "url",
"identifier": "https://github.com/sagemath/sage/tree/9.4.beta0",
"identifier": "https://github.com/sagemath/sage/tree/9.4.beta4",
"relation": "isSupplementTo"
},
{
Expand Down
49 changes: 28 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,11 @@
https://www.sagemath.org

The Sage Library is GPLv2+, and included packages have [compatible OSS
licenses](./COPYING.txt). [Over 400 people](https://www.sagemath.org/development-map.html)
have contributed code to Sage. In many cases, documentation for modules
and functions list the authors.
The Sage Library is GPLv2+, and included packages have
[compatible OSS licenses](./COPYING.txt).
[Over 400 people](https://www.sagemath.org/development-map.html)
have contributed code to Sage. In many cases, documentation
for modules and functions list the authors.

Getting Started
---------------
Expand All @@ -22,7 +23,7 @@ If you downloaded a [binary](https://www.sagemath.org/download.html)
Sage is ready to start -- just open a terminal in the directory where
you extracted the binary archive and type:

./sage
$ ./sage

(Note that the first run will take more time, as Sage needs to get itself ready.)

Expand Down Expand Up @@ -118,9 +119,9 @@ virtual appliance](https://wiki.sagemath.org/SageAppliance).
------------------------------

Make sure you have installed the most current version of Xcode
supported on your version of macOS. If you don't, go to
supported on your version of macOS. If you don't, either go to
https://developer.apple.com/, sign up, and download the free Xcode
package.
package, or get it from Apple's app store.

You also need to install the "command line tools": After installing
Xcode, run `xcode-select --install` from a terminal window; then click
Expand All @@ -131,7 +132,7 @@ and then "Install" the Command Line Tools.)

Optionally, you can consider installing Homebrew ("the missing package
manager for macOS") from https://brew.sh/, which can provide libraries
such gfortran, gmp, etc.
such as gfortran, gmp, etc.

Instructions to Build from Source
---------------------------------
Expand Down Expand Up @@ -173,11 +174,12 @@ Guide](https://doc.sagemath.org/html/en/installation).

- [Git] Alternatively, clone the Sage git repository:

$ git clone -c core.symlinks=true --branch master https://github.com/sagemath/sage.git
$ ORIG=https://github.com/sagemath/sage.git
$ git clone -c core.symlinks=true --branch master $ORIG

This will create the subdirectory `sage`. `cd sage/` and pick the branch you need
by doing `git checkout` - typically you want the latest development branch, thus do
`git checkout develop`.
This will create the subdirectory `sage`. `cd sage/` and pick
the branch you need by doing `git checkout` - typically you want
the latest development branch, thus do `git checkout develop`.

- [Windows] The Sage source tree contains symbolic links, and the
build will not work if Windows line endings rather than UNIX
Expand All @@ -186,8 +188,8 @@ Guide](https://doc.sagemath.org/html/en/installation).
Therefore it is crucial that you unpack the source tree from the
Cygwin (or WSL) `bash` using the Cygwin (or WSL) `tar` utility
and not using other Windows tools (including mingw). Likewise,
when using `git`, it is recommended (but not necessary) to use the Cygwin (or WSL)
version of `git`.
when using `git`, it is recommended (but not necessary) to use
the Cygwin (or WSL) version of `git`.

3. `cd` into the source/build directory:

Expand Down Expand Up @@ -224,11 +226,16 @@ Guide](https://doc.sagemath.org/html/en/installation).
avoid having to build Sage's own copy of Python 3.

We have collected lists of system packages that provide these build
prerequisites. See [build/pkgs/arch.txt](build/pkgs/arch.txt),
[cygwin.txt](build/pkgs/cygwin.txt),
[debian.txt](build/pkgs/debian.txt) (also for Ubuntu, Linux Mint,
etc.), [fedora.txt](build/pkgs/fedora.txt) (also for Red Hat,
CentOS), and [slackware.txt](build/pkgs/slackware.txt).
prerequisites. See, in the folder
[build/pkgs/_prereq/distros](build/pkgs/_prereq/distros),
the files
[arch.txt](build/pkgs/_prereq/distros/arch.txt),
[cygwin.txt](build/pkgs/_prereq/distros/cygwin.txt),
[debian.txt](build/pkgs/_prereq/distros/debian.txt)
(also for Ubuntu, Linux Mint, etc.),
[fedora.txt](build/pkgs/_prereq/distros/fedora.txt)
(also for Red Hat, CentOS), and
[slackware.txt](build/pkgs/_prereq/distros/slackware.txt).

7. Optional, but highly recommended: Make sure your system has an SSL
library and its development files installed.
Expand All @@ -245,7 +252,7 @@ Guide](https://doc.sagemath.org/html/en/installation).
9. Optionally, review the configuration options, which includes
many optional packages:

./configure --help
$ ./configure --help

10. Optional, but highly recommended: Set some environment variables to
customize the build.
Expand Down Expand Up @@ -470,7 +477,7 @@ do.

2. (**Obsolete, probably broken**) To make your own source tarball of Sage, type:

sage --sdist
$ sage --sdist

The result is placed in the directory `dist/`.

Expand Down
2 changes: 1 addition & 1 deletion VERSION.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
SageMath version 9.4.beta0, Release Date: 2021-05-25
SageMath version 9.4.beta4, Release Date: 2021-07-01
9 changes: 9 additions & 0 deletions build/bin/sage-bootstrap-python
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,15 @@ fi
# is accessible by this python; this is to guard on Cygwin against Pythons
# installed somewhere else in Windows.

# Trac #30008: Make it work even if the environment tries to sabotage UTF-8
# operation in Python 3.0.x-3.6.x by setting LC_ALL=C or similar.

if [ "$LC_ALL" = "C" -o "$LANG" = "C" -o "$LC_CTYPE" = "C" ]; then
LC_ALL=$(locale -a | grep -E -i '^(c|en_us)[-.]utf-?8$' | head -n 1)
LANG=$LC_ALL
export LC_ALL
export LANG
fi

PYTHONS="python python3 python3.8 python3.7 python2.7 python3.6 python2"
for PY in $PYTHONS; do
Expand Down
27 changes: 13 additions & 14 deletions build/bin/sage-dist-helpers
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@
#
# - sdh_configure [...]
#
# Runs `./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib"`,
# (for autoconf'd projects with extra
# --disable-maintainer-mode --disable-dependency-tracking)
# Additional arguments to `./configure` may be given as arguments.
# Runs `./configure --prefix="$SAGE_LOCAL" --libdir="$SAGE_LOCAL/lib"`
# --disable-static, (for autoconf'd projects with extra
# --disable-maintainer-mode --disable-dependency-tracking) Additional
# arguments to `./configure` may be given as arguments.
#
# - sdh_make [...]
#
Expand Down Expand Up @@ -160,9 +160,16 @@ sdh_configure() {
if [ -z "$CONFIG_SHELL" ]; then
export CONFIG_SHELL=`command -v bash`
fi
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" --disable-maintainer-mode --disable-dependency-tracking "$@"
if [ "$UNAME" = "CYGWIN" ]; then
# TODO: To use --disable-static for all packages on Cygwin, need
# #30814: Cygwin: Fix remaining packages to build shared libraries, using AM_LDFLAGS=-no-undefined
DISABLE_STATIC=
else
DISABLE_STATIC=--disable-static
fi
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" $DISABLE_STATIC --disable-maintainer-mode --disable-dependency-tracking "$@"
if [ $? -ne 0 ]; then # perhaps it is a non-autoconf'd project
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" "$@"
./configure --prefix="$SAGE_INST_LOCAL" --libdir="$SAGE_INST_LOCAL/lib" $DISABLE_STATIC "$@"
if [ $? -ne 0 ]; then
if [ -f "$(pwd)/config.log" ]; then
sdh_die <<_EOF_
Expand Down Expand Up @@ -211,14 +218,6 @@ sdh_setup_bdist_wheel() {

sdh_pip_install() {
echo "Installing $PKG_NAME"
if [ -n "$SAGE_DESTDIR" ]; then
local sudo=""
else
local sudo="$SAGE_SUDO"
fi
$sudo sage-pip-uninstall "$@" || \
echo 2>&1 "Warning: Failure trying to uninstall a previous version of $PKG_NAME"

mkdir -p dist
rm -f dist/*.whl
python3 -m pip wheel --wheel-dir=dist --no-binary :all: --verbose --no-deps --no-index --isolated --no-build-isolation "$@" || \
Expand Down
63 changes: 0 additions & 63 deletions build/bin/sage-pip-uninstall

This file was deleted.

1 change: 1 addition & 0 deletions build/bin/sage-site
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ if [ "$1" = "-docbuild" -o "$1" = "--docbuild" ]; then
# Trac #30002: ensure an English locale so that it is possible to
# scrape out warnings by pattern matching.
export LANG=C
export LANGUAGE=C

# See #30351: bugs in macOS implementations of openblas/libgopm can cause
# docbuild to hang if multiple OpenMP threads are allowed.
Expand Down
17 changes: 11 additions & 6 deletions build/make/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,11 @@ all-toolchain: base-toolchain
# given as a prerequisite to any pip-installed packages
PYTHON_TOOLCHAIN = setuptools pip setuptools_scm wheel setuptools_wheel

# Trac #32056: Avoid installed setuptools leaking into the build of python3 by uninstalling it.
# It will have to be reinstalled anyway because of its dependency on $(PYTHON).
python3-SAGE_LOCAL-no-deps: setuptools-clean
python3-SAGE_VENV-no-deps: setuptools-clean

# Everything needed to start up Sage using "./sage". Of course, not
# every part of Sage will work. It does not include Maxima for example.
SAGERUNTIME = sagelib $(inst_ipython) $(inst_pexpect) \
Expand Down Expand Up @@ -338,23 +343,23 @@ DOC_DEPENDENCIES = sagelib sage_docbuild $(inst_sphinx) \
doc: doc-html

doc-html: $(DOC_DEPENDENCIES)
$(AM_V_at)cd ../.. && sage-logger -p './sage --docbuild --no-pdf-links all html $(SAGE_DOCBUILD_OPTS)' logs/dochtml.log
$(AM_V_at)cd "$(SAGE_SRC)/doc" && sage-logger -p "$(MAKE) doc-html" $(SAGE_ROOT)/logs/dochtml.log

# 'doc-html-no-plot': build docs without building the graphics coming
# from the '.. plot' directive, in case you want to save a few
# megabytes of disk space. 'doc-clean' is a prerequisite because the
# presence of graphics is cached in src/doc/output.
doc-html-no-plot: doc-clean $(DOC_DEPENDENCIES)
$(AM_V_at)cd ../.. && sage-logger -p './sage --docbuild --no-pdf-links --no-plot all html $(SAGE_DOCBUILD_OPTS)' logs/dochtml.log
doc-html-no-plot: doc-clean
$(AM_V_at)sage-logger -p "$(MAKE) SAGE_DOCBUILD_OPTS=\"$(SAGE_DOCBUILD_OPTS) --no-plot\" doc-html" $(SAGE_ROOT)/logs/dochtml.log

doc-html-mathjax: $(DOC_DEPENDENCIES)
$(AM_V_at)cd ../.. && sage-logger -p './sage --docbuild --no-pdf-links all html -j $(SAGE_DOCBUILD_OPTS)' logs/dochtml.log
doc-html-mathjax:
$(AM_V_at)sage-logger -p "$(MAKE) SAGE_DOCBUILD_OPTS=\"$(SAGE_DOCBUILD_OPTS) -j\" doc-html" $(SAGE_ROOT)/logs/dochtml.log

# Keep target 'doc-html-jsmath' for backwards compatibility.
doc-html-jsmath: doc-html-mathjax

doc-pdf: $(DOC_DEPENDENCIES)
$(AM_V_at)cd ../.. && sage-logger -p './sage --docbuild all pdf $(SAGE_DOCBUILD_OPTS)' logs/docpdf.log
$(AM_V_at)cd "$(SAGE_SRC)/doc" && sage-logger -p "$(MAKE) doc-pdf" $(SAGE_ROOT)/logs/docpdf.log

doc-clean: doc-src-clean doc-output-clean

Expand Down
18 changes: 18 additions & 0 deletions build/pkgs/appdirs/SPKG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
appdirs: A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".
==========================================================================================================

Description
-----------

A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".

License
-------

MIT

Upstream Contact
----------------

https://pypi.org/project/appdirs/

5 changes: 5 additions & 0 deletions build/pkgs/appdirs/checksums.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
tarball=appdirs-VERSION.tar.gz
sha1=1fa04e44b1084338cb7b21e9cf44fce5efb81840
md5=d6bca12613174185dd9abc8a29f4f012
cksum=1191718163
upstream_url=https://pypi.io/packages/source/a/appdirs/appdirs-VERSION.tar.gz
4 changes: 4 additions & 0 deletions build/pkgs/appdirs/dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
$(PYTHON) | $(PYTHON_TOOLCHAIN)

----------
All lines of this file are ignored except the first.
1 change: 1 addition & 0 deletions build/pkgs/appdirs/install-requires.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
appdirs
Loading

0 comments on commit b348305

Please sign in to comment.