From bfac057d8fa119a63ea0daf7c66f4ab94109b149 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 20 Oct 2023 10:06:16 +0000 Subject: [PATCH 001/161] Use meson instead of configure for conda install --- .github/workflows/ci-conda.yml | 2 +- .vscode/settings.json | 3 +- meson.build | 40 +++++++++++++++++++ pkgs/sage-conf/pyproject.toml | 7 ++++ pkgs/sage-conf_meson/.gitignore | 7 ++++ pkgs/sage-conf_meson/README.rst | 1 + pkgs/sage-conf_meson/VERSION.txt | 1 + pkgs/sage-conf_meson/_sage_conf | 1 + pkgs/sage-conf_meson/pyproject.toml | 1 + pkgs/sage-conf_meson/sage_conf.py | 6 +++ pkgs/sage-conf_meson/setup.py | 62 +++++++++++++++++++++++++++++ src/doc/en/installation/conda.rst | 5 ++- 12 files changed, 133 insertions(+), 3 deletions(-) create mode 100644 meson.build create mode 100644 pkgs/sage-conf_meson/.gitignore create mode 120000 pkgs/sage-conf_meson/README.rst create mode 100644 pkgs/sage-conf_meson/VERSION.txt create mode 120000 pkgs/sage-conf_meson/_sage_conf create mode 120000 pkgs/sage-conf_meson/pyproject.toml create mode 100644 pkgs/sage-conf_meson/sage_conf.py create mode 100644 pkgs/sage-conf_meson/setup.py diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index e520fa17104..961cd439d18 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -91,7 +91,7 @@ jobs: shell: bash -l {0} run: | # Use --no-deps and pip check below to verify that all necessary dependencies are installed via conda. - pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf ./pkgs/sage-setup + pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf_meson ./pkgs/sage-setup pip install --no-build-isolation --no-deps -v -v -e ./src env: SAGE_NUM_THREADS: 2 diff --git a/.vscode/settings.json b/.vscode/settings.json index b3079a7c4ee..fc6789fe0e6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -34,5 +34,6 @@ "sagemath", "Cython" ], - "editor.formatOnType": true + "editor.formatOnType": true, + "esbonio.sphinx.confDir": "" } diff --git a/meson.build b/meson.build new file mode 100644 index 00000000000..5cfb720d243 --- /dev/null +++ b/meson.build @@ -0,0 +1,40 @@ +project('sage', 'c') +cc = meson.get_compiler('c') +conf_data = configuration_data() + +conf_data.set('PACKAGE_VERSION', '1.2.3') + +maxima = find_program('maxima', required: true) +conf_data.set('SAGE_MAXIMA', maxima.path()) +# Conda's ecl does not have any problems with Maxima, so nothing needs to be set here: +conf_data.set('SAGE_MAXIMA_FAS', '') + +# Kenzo cannot yet be provided by the system, so we always use the SAGE_LOCAL path for now. +conf_data.set('SAGE_KENZO_FAS', '\'${prefix}\'/lib/ecl/kenzo.fas') + +conf_data.set('SAGE_ARB_LIBRARY', 'arb') + +#ntl = dependency('ntl', required: true) doesn't work, so ask the compiler directly: +ntl = cc.find_library('ntl', required: true) +# It can be found, so we don't have to set anything here: +conf_data.set('NTL_INCDIR', '') +conf_data.set('NTL_LIBDIR', '') + +ecl_config = find_program('ecl-config', required: true) +conf_data.set('SAGE_ECL_CONFIG', ecl_config.path()) + +conf_data.set('SAGE_ARCHFLAGS', 'unset') + +# not needed when using conda, as we then don't build any pc files +conf_data.set('SAGE_PKG_CONFIG_PATH', '') + +openmp = dependency('openmp', required : false) +if openmp.found() + conf_data.set('OPENMP_CFLAGS', '-fopenmp') + conf_data.set('OPENMP_CXXFLAGS', '-fopenmp') +endif + +configure_file(input : 'pkgs/sage-conf_conda/_sage_conf/_conf.py.in', + output : '_conf.py', + configuration : conf_data) + diff --git a/pkgs/sage-conf/pyproject.toml b/pkgs/sage-conf/pyproject.toml index 9787c3bdf00..9b39d5d8816 100644 --- a/pkgs/sage-conf/pyproject.toml +++ b/pkgs/sage-conf/pyproject.toml @@ -1,3 +1,10 @@ [build-system] requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" + +[project] +name = "sage-conf" +dynamic = ["version"] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} diff --git a/pkgs/sage-conf_meson/.gitignore b/pkgs/sage-conf_meson/.gitignore new file mode 100644 index 00000000000..ff1f6bd336e --- /dev/null +++ b/pkgs/sage-conf_meson/.gitignore @@ -0,0 +1,7 @@ +/_sage_conf/_conf.py +/builddir +/build +/dist +/*.egg-info +/.tox +/bin/sage-env-config diff --git a/pkgs/sage-conf_meson/README.rst b/pkgs/sage-conf_meson/README.rst new file mode 120000 index 00000000000..feda886cd36 --- /dev/null +++ b/pkgs/sage-conf_meson/README.rst @@ -0,0 +1 @@ +../sage-conf/README.rst \ No newline at end of file diff --git a/pkgs/sage-conf_meson/VERSION.txt b/pkgs/sage-conf_meson/VERSION.txt new file mode 100644 index 00000000000..e3fab2e6628 --- /dev/null +++ b/pkgs/sage-conf_meson/VERSION.txt @@ -0,0 +1 @@ +10.2.beta7 diff --git a/pkgs/sage-conf_meson/_sage_conf b/pkgs/sage-conf_meson/_sage_conf new file mode 120000 index 00000000000..d92a91bef8c --- /dev/null +++ b/pkgs/sage-conf_meson/_sage_conf @@ -0,0 +1 @@ +../sage-conf/_sage_conf \ No newline at end of file diff --git a/pkgs/sage-conf_meson/pyproject.toml b/pkgs/sage-conf_meson/pyproject.toml new file mode 120000 index 00000000000..52c93c824e2 --- /dev/null +++ b/pkgs/sage-conf_meson/pyproject.toml @@ -0,0 +1 @@ +../sage-conf/pyproject.toml \ No newline at end of file diff --git a/pkgs/sage-conf_meson/sage_conf.py b/pkgs/sage-conf_meson/sage_conf.py new file mode 100644 index 00000000000..1b09bb76a83 --- /dev/null +++ b/pkgs/sage-conf_meson/sage_conf.py @@ -0,0 +1,6 @@ +from _sage_conf.__main__ import _main + +from builddir._conf import * +from builddir.build_info import CONDA_PREFIX, SAGE_ROOT + +SAGE_LOCAL = CONDA_PREFIX diff --git a/pkgs/sage-conf_meson/setup.py b/pkgs/sage-conf_meson/setup.py new file mode 100644 index 00000000000..34ce471d429 --- /dev/null +++ b/pkgs/sage-conf_meson/setup.py @@ -0,0 +1,62 @@ +import os +import sys +from distutils.command.build_scripts import \ + build_scripts as distutils_build_scripts +from pathlib import Path + +from setuptools import setup +from setuptools.command.build_py import build_py as setuptools_build_py +from setuptools.command.editable_wheel import \ + editable_wheel as setuptools_editable_wheel +from setuptools.errors import SetupError + + +class build_py(setuptools_build_py): + def run(self): + here = Path(__file__).parent + if self.editable_mode: + root = here.parent.parent + else: + raise SetupError('Not supported') + + conda_prefix = os.environ.get('CONDA_PREFIX', '') + if not conda_prefix: + raise SetupError( + 'No conda environment is active. ' + 'See https://doc.sagemath.org/html/en/installation/conda.html on how to get started.' + ) + + builddir = here / "builddir" + cmd = f"cd {root} && meson setup {builddir} --wipe" + print(f"Running {cmd}") + sys.stdout.flush() + if os.system(cmd) != 0: + raise SetupError("configure failed") + + # Write build info + with open(builddir / 'build_info.py', 'w', encoding="utf-8") as build_info: + build_info.write(f'SAGE_ROOT = "{root}"\n') + build_info.write(f'CONDA_PREFIX = "{conda_prefix}"\n') + + +class build_scripts(distutils_build_scripts): + def run(self): + self.distribution.scripts.append(os.path.join('bin', 'sage-env-config')) + if not self.distribution.entry_points: + self.entry_points = self.distribution.entry_points = dict() + distutils_build_scripts.run(self) + + +class editable_wheel(setuptools_editable_wheel): + r""" + Customized so that exceptions raised by our build_py + do not lead to the "Customization incompatible with editable install" message + """ + _safely_run = setuptools_editable_wheel.run_command + + +setup( + cmdclass=dict( + build_py=build_py, build_scripts=build_scripts, editable_wheel=editable_wheel + ) +) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 14fe52ad2e2..dd6f02810ab 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -138,9 +138,12 @@ Here we assume that you are using a git checkout. - Install the build prerequisites and the Sage library:: - $ pip install --no-build-isolation -v -v --editable ./pkgs/sage-conf_conda ./pkgs/sage-setup + $ pip install --no-build-isolation -v -v --editable ./pkgs/sage-conf_meson ./pkgs/sage-setup $ pip install --no-build-isolation --config-settings editable_mode=compat -v -v --editable ./src + In case of errors, try to use `sage-conf_conda` instead of `sage-conf_meson`, + and please report the problem by opening an issue on GitHub. + - Verify that Sage has been installed:: $ sage -c 'print(version())' From 96940465d99ac7215e5382bc56527ceb941dcd4e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 20 Oct 2023 11:10:19 +0000 Subject: [PATCH 002/161] remove editable wheel customization --- pkgs/sage-conf_meson/setup.py | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/pkgs/sage-conf_meson/setup.py b/pkgs/sage-conf_meson/setup.py index 34ce471d429..f2bbe98b8ff 100644 --- a/pkgs/sage-conf_meson/setup.py +++ b/pkgs/sage-conf_meson/setup.py @@ -6,8 +6,6 @@ from setuptools import setup from setuptools.command.build_py import build_py as setuptools_build_py -from setuptools.command.editable_wheel import \ - editable_wheel as setuptools_editable_wheel from setuptools.errors import SetupError @@ -47,16 +45,8 @@ def run(self): distutils_build_scripts.run(self) -class editable_wheel(setuptools_editable_wheel): - r""" - Customized so that exceptions raised by our build_py - do not lead to the "Customization incompatible with editable install" message - """ - _safely_run = setuptools_editable_wheel.run_command - - setup( cmdclass=dict( - build_py=build_py, build_scripts=build_scripts, editable_wheel=editable_wheel + build_py=build_py, build_scripts=build_scripts ) ) From 376742a50e9807269cdaa4476ea59ca587d8a8fd Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 20 Oct 2023 11:11:25 +0000 Subject: [PATCH 003/161] remove configure from conda ci --- .github/workflows/ci-conda.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index 961cd439d18..78af8eed170 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -77,15 +77,9 @@ jobs: conda info conda list - - name: Configure + - name: Bootstrap shell: bash -l {0} - continue-on-error: true - run: | - ./bootstrap - echo "::add-matcher::.github/workflows/configure-systempackage-problem-matcher.json" - ./configure --enable-build-as-root --with-python=$CONDA_PREFIX/bin/python --prefix=$CONDA_PREFIX --enable-system-site-packages $(for pkg in $(./sage -package list :standard: --has-file spkg-configure.m4 --has-file distros/conda.txt --exclude rpy2); do echo --with-system-$pkg=force; done) - echo "::remove-matcher owner=configure-system-package-warning::" - echo "::remove-matcher owner=configure-system-package-error::" + run: ./bootstrap - name: Build shell: bash -l {0} From 84ff7ffe0d5a9e06bd5a20b41ef59b26f92e933b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 20 Oct 2023 12:44:23 +0000 Subject: [PATCH 004/161] Revert "remove editable wheel customization" This reverts commit 96940465d99ac7215e5382bc56527ceb941dcd4e. --- pkgs/sage-conf_meson/setup.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pkgs/sage-conf_meson/setup.py b/pkgs/sage-conf_meson/setup.py index f2bbe98b8ff..34ce471d429 100644 --- a/pkgs/sage-conf_meson/setup.py +++ b/pkgs/sage-conf_meson/setup.py @@ -6,6 +6,8 @@ from setuptools import setup from setuptools.command.build_py import build_py as setuptools_build_py +from setuptools.command.editable_wheel import \ + editable_wheel as setuptools_editable_wheel from setuptools.errors import SetupError @@ -45,8 +47,16 @@ def run(self): distutils_build_scripts.run(self) +class editable_wheel(setuptools_editable_wheel): + r""" + Customized so that exceptions raised by our build_py + do not lead to the "Customization incompatible with editable install" message + """ + _safely_run = setuptools_editable_wheel.run_command + + setup( cmdclass=dict( - build_py=build_py, build_scripts=build_scripts + build_py=build_py, build_scripts=build_scripts, editable_wheel=editable_wheel ) ) From 885e2b4cb478785702a3e1d5aa48ececefe0caf6 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 20 Oct 2023 12:48:14 +0000 Subject: [PATCH 005/161] split setup and conf for cleaner display --- .github/workflows/ci-conda.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index c859b7d68e6..ccafb4af359 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -74,7 +74,12 @@ jobs: shell: bash -l {0} run: | # Use --no-deps and pip check below to verify that all necessary dependencies are installed via conda. - pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf_meson ./pkgs/sage-setup + echo "::group::sage-setup" + pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-setup + echo "::endgroup::" + echo "::group::sage-conf" + pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf_meson + echo "::endgroup::" pip install --no-build-isolation --no-deps --config-settings editable_mode=compat -v -v -e ./src env: SAGE_NUM_THREADS: 2 From f755a8eb5b0b3b04855bde18012cc71a86b7d460 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 20 Oct 2023 14:01:01 +0000 Subject: [PATCH 006/161] add meson to conda env --- bootstrap-conda | 1 + 1 file changed, 1 insertion(+) diff --git a/bootstrap-conda b/bootstrap-conda index faa29513db4..ba007779b8a 100755 --- a/bootstrap-conda +++ b/bootstrap-conda @@ -95,6 +95,7 @@ echo >&2 $0:$LINENO: generate conda environment files for pkg in $BOOTSTRAP_SYSTEM_PACKAGES; do echo " - $pkg" done + echo " - meson" ) > environment-template.yml ( sed 's/name: sage-build/name: sage/' environment-template.yml From 4406868d891c9dd57f9dc8d6a633fb79ac1e3033 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 21 Oct 2023 23:32:48 +0800 Subject: [PATCH 007/161] Fix style in conda docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Matthias Köppe --- src/doc/en/installation/conda.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 009c71946a7..8f1712ffa33 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -142,7 +142,7 @@ Here we assume that you are using a git checkout. $ pip install --no-build-isolation -v -v --editable ./pkgs/sage-conf_meson ./pkgs/sage-setup $ pip install --no-build-isolation --config-settings editable_mode=compat -v -v --editable ./src - In case of errors, try to use `sage-conf_conda` instead of `sage-conf_meson`, + In case of errors, try to use ``sage-conf_conda`` instead of ``sage-conf_meson``, and please report the problem by opening an issue on GitHub. - Verify that Sage has been installed:: From c0cdb5f95e1816cd31807c6687f7e6085e128b37 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 21 Oct 2023 15:44:14 +0000 Subject: [PATCH 008/161] add meson only in src env files --- bootstrap-conda | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap-conda b/bootstrap-conda index ba007779b8a..d50e39499cc 100755 --- a/bootstrap-conda +++ b/bootstrap-conda @@ -95,10 +95,10 @@ echo >&2 $0:$LINENO: generate conda environment files for pkg in $BOOTSTRAP_SYSTEM_PACKAGES; do echo " - $pkg" done - echo " - meson" ) > environment-template.yml ( sed 's/name: sage-build/name: sage/' environment-template.yml + echo " - meson" echo " # Additional packages providing all dependencies for the Sage library" for pkg in $SAGELIB_SYSTEM_PACKAGES; do echo " - $pkg" From b40831138e67581b2dfb8639bdd42988c6d73b16 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 21 Oct 2023 15:49:09 +0000 Subject: [PATCH 009/161] keep configure around in the ci --- .github/workflows/ci-conda.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index ccafb4af359..2d29839367a 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -94,6 +94,14 @@ jobs: shell: bash -l {0} run: ./sage -t --all -p0 + # We keep this step for now to make sure that the configure-based setup still works. + - name: Test configure + run: + echo "::add-matcher::.github/workflows/configure-systempackage-problem-matcher.json" + ./configure --enable-build-as-root --with-python=$CONDA_PREFIX/bin/python --prefix=$CONDA_PREFIX --enable-system-site-packages $(for pkg in $(./sage -package list :standard: --has-file spkg-configure.m4 --has-file distros/conda.txt --exclude rpy2); do echo --with-system-$pkg=force; done) + echo "::remove-matcher owner=configure-system-package-warning::" + echo "::remove-matcher owner=configure-system-package-error::" + - name: Print logs if: always() run: | From f6f27d97c6183da3376ab36545d179e44f2ac7ac Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 21 Oct 2023 16:21:18 +0000 Subject: [PATCH 010/161] fix conda-ci --- .github/workflows/ci-conda.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index 2d29839367a..df331cf99c0 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -96,7 +96,8 @@ jobs: # We keep this step for now to make sure that the configure-based setup still works. - name: Test configure - run: + shell: bash -l {0} + run: | echo "::add-matcher::.github/workflows/configure-systempackage-problem-matcher.json" ./configure --enable-build-as-root --with-python=$CONDA_PREFIX/bin/python --prefix=$CONDA_PREFIX --enable-system-site-packages $(for pkg in $(./sage -package list :standard: --has-file spkg-configure.m4 --has-file distros/conda.txt --exclude rpy2); do echo --with-system-$pkg=force; done) echo "::remove-matcher owner=configure-system-package-warning::" From b4ff544442da45e8119783e7a7a2178f03453ab8 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 24 Oct 2023 02:18:36 +0000 Subject: [PATCH 011/161] Compile categories with meson --- generate-meson.py | 52 +++++++ meson.build | 20 ++- src/doc/en/developer/meson.rst | 27 ++++ src/meson.build | 59 +++++++ src/sage/categories/__init__.py | 0 src/sage/categories/meson.build | 207 +++++++++++++++++++++++++ src/sage/cpython/atexit.pyx | 29 ---- src/sage/cpython/dict_del_by_value.pyx | 2 +- src/sage/cpython/meson.build | 21 +++ src/sage/libs/gmp/meson.build | 11 ++ src/sage/misc/__init__.py | 0 src/sage/misc/meson.build | 114 ++++++++++++++ src/sage/misc/sage_ostools.pyx | 41 ----- src/sage/structure/meson.build | 48 ++++++ 14 files changed, 559 insertions(+), 72 deletions(-) create mode 100644 generate-meson.py create mode 100644 src/doc/en/developer/meson.rst create mode 100644 src/meson.build create mode 100644 src/sage/categories/__init__.py create mode 100644 src/sage/categories/meson.build create mode 100644 src/sage/cpython/meson.build create mode 100644 src/sage/libs/gmp/meson.build create mode 100644 src/sage/misc/__init__.py create mode 100644 src/sage/misc/meson.build create mode 100644 src/sage/structure/meson.build diff --git a/generate-meson.py b/generate-meson.py new file mode 100644 index 00000000000..66959e8ceb7 --- /dev/null +++ b/generate-meson.py @@ -0,0 +1,52 @@ +# Small script that generates a meson.build file in the given folder. +# The generated build file contains all python files as `install_sources` and all cython files as `extension_module` + +import argparse +import sys +from pathlib import Path + +parser = argparse.ArgumentParser(description='Generate meson.build file for a given folder.') +parser.add_argument('folder', type=str, nargs='?', default='.', + help='folder for which the meson.build file will be generated') +parser.add_argument('--dry-run', '-n', action='store_true', + help='do not write any files, just print the output') +parser.add_argument('--force', '-f', action='store_true', + help='overwrite existing meson.build file') + +args = parser.parse_args() + +folder = Path(args.folder) +dry_run = args.dry_run +force = args.force + +if not folder.is_dir(): + print(f'Error: {folder} is not a directory') + sys.exit(1) +folder_rel_to_src = folder.relative_to('src') + +python_files = list(folder.glob('*.py')) +cython_files = list(folder.glob('*.pyx')) + +if not python_files and not cython_files: + print(f'Error: {folder} does not contain any python or cython files') + sys.exit(1) + +meson_build_path = folder / 'meson.build' +if not dry_run and not force and meson_build_path.exists(): + print(f'Error: {meson_build_path} already exists, use --force to overwrite') + sys.exit(1) + +with open(meson_build_path, 'w') if not dry_run else sys.stdout as meson_build: + meson_build.write('py.install_sources(\n') + for file in python_files: + meson_build.write(f" '{file.name}',\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(')\n\n') + + meson_build.write('py.extension_module(\n') + for file in cython_files: + meson_build.write(f" '{file.name}',\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(' install: true,\n') + meson_build.write(' dependencies: py_dep,\n') + meson_build.write(')\n') diff --git a/meson.build b/meson.build index 5cfb720d243..1c9e28b8fe4 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,22 @@ -project('sage', 'c') +project( + 'SageMath', + ['c', 'cpp', 'cython'], + version: '10.2.beta8', + license: 'GPL v3', + meson_version: '>= 1.2.0', +) + +# Python module +# https://mesonbuild.com/Python-module.html +py = import('python').find_installation(pure: false) +py_dep = py.dependency() + +# Compilers cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') + +# Generate the configuration file conf_data = configuration_data() conf_data.set('PACKAGE_VERSION', '1.2.3') @@ -38,3 +55,4 @@ configure_file(input : 'pkgs/sage-conf_conda/_sage_conf/_conf.py.in', output : '_conf.py', configuration : conf_data) +subdir('src') diff --git a/src/doc/en/developer/meson.rst b/src/doc/en/developer/meson.rst new file mode 100644 index 00000000000..e9dd1bf21df --- /dev/null +++ b/src/doc/en/developer/meson.rst @@ -0,0 +1,27 @@ +Assume we're starting from a clean repo and a fully set up conda environment:: + + ```bash + ./bootstrap-conda + mamba env create --file src/environment-dev-3.11.yml --name sage-dev + conda activate sage-dev + ``` + +Now to configure the project, we need to run the following commands:: + + ```bash + ./bootstrap + meson setup builddir + ``` + +This will create a build directory ``builddir`` that will hold the build artifacts. +To compile the project, run the following command:: + + ```bash + meson compile -C builddir + ``` + +Installing the project is done with the following command:: + + ```bash + meson install -C builddir + ``` diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 00000000000..ca2b1a5e846 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,59 @@ +# Setup dependencies that are needed by many modules + +# Meson currently ignores include_directories for Cython modules, so we +# have to add them manually. +# https://github.com/mesonbuild/meson/issues/9562 +add_project_arguments('-I', meson.current_source_dir(), language : 'cython') + +inc_numpy = run_command(py, + [ + '-c', + ''' +import numpy +print(numpy.get_include()) + '''.strip() + ], + check: true + ).stdout().strip() +numpy = declare_dependency( + include_directories: inc_numpy, +) + +inc_cysignals = run_command(py, + [ + '-c', + ''' +import cysignals +print(cysignals.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +cysignals = declare_dependency( + include_directories: inc_cysignals, +) + +inc_gmpy2 = run_command(py, + [ + '-c', + ''' +import gmpy2 +print(gmpy2.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +gmpy2 = declare_dependency( + include_directories: inc_gmpy2, +) + +inc_cpython = include_directories('sage/cpython') +inc_rings = include_directories('sage/rings') +inc_src = include_directories('.') + +# Submodules +subdir('sage/cpython') +subdir('sage/libs/gmp') +subdir('sage/misc') +subdir('sage/structure') +subdir('sage/categories') diff --git a/src/sage/categories/__init__.py b/src/sage/categories/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build new file mode 100644 index 00000000000..76fd199555b --- /dev/null +++ b/src/sage/categories/meson.build @@ -0,0 +1,207 @@ +py.install_sources( + 'homset.py', + 'filtered_modules_with_basis.py', + 'modules_with_basis.py', + 'finitely_generated_lie_conformal_algebras.py', + 'bialgebras.py', + 'lambda_bracket_algebras_with_basis.py', + 'tutorial.py', + 'highest_weight_crystals.py', + 'signed_tensor.py', + 'principal_ideal_domains.py', + 'matrix_algebras.py', + 'additive_semigroups.py', + 'graded_bialgebras.py', + 'groups.py', + 'partially_ordered_monoids.py', + 'commutative_additive_groups.py', + 'algebra_modules.py', + 'loop_crystals.py', + 'additive_monoids.py', + 'g_sets.py', + 'semirings.py', + 'regular_crystals.py', + 'realizations.py', + 'finite_dimensional_coalgebras_with_basis.py', + 'dual.py', + 'graded_modules_with_basis.py', + 'sets_with_partial_maps.py', + 'lie_groups.py', + 'semisimple_algebras.py', + 'magmas_and_additive_magmas.py', + 'graphs.py', + 'category_types.py', + 'sets_with_grading.py', + 'complex_reflection_groups.py', + 'topological_spaces.py', + 'coalgebras_with_basis.py', + 'finite_fields.py', + 'isomorphic_objects.py', + 'right_modules.py', + 'finite_dimensional_modules_with_basis.py', + 'algebras.py', + 'associative_algebras.py', + 'coxeter_group_algebras.py', + 'hopf_algebras_with_basis.py', + 'distributive_magmas_and_additive_magmas.py', + 'algebra_ideals.py', + 'simplicial_complexes.py', + 'algebras_with_basis.py', + 'additive_groups.py', + 'super_hopf_algebras_with_basis.py', + 'graded_algebras.py', + 'hecke_modules.py', + 'j_trivial_semigroups.py', + 'finite_dimensional_lie_algebras_with_basis.py', + 'finite_weyl_groups.py', + 'complex_reflection_or_generalized_coxeter_groups.py', + 'triangular_kac_moody_algebras.py', + 'function_fields.py', + 'supercommutative_algebras.py', + 'schemes.py', + 'lie_algebras_with_basis.py', + 'modules.py', + 'groupoid.py', + 'graded_bialgebras_with_basis.py', + 'super_modules.py', + 'poor_man_map.py', + 'finite_dimensional_algebras_with_basis.py', + 'vector_bundles.py', + 'finite_dimensional_semisimple_algebras_with_basis.py', + 'commutative_additive_semigroups.py', + 'unital_algebras.py', + 'finite_dimensional_bialgebras_with_basis.py', + 'graded_algebras_with_basis.py', + 'integral_domains.py', + 'magmas.py', + 'modular_abelian_varieties.py', + 'unique_factorization_domains.py', + 'monoids.py', + 'quotient_fields.py', + 'commutative_algebra_ideals.py', + 'all.py', + 'monoid_algebras.py', + 'additive_magmas.py', + 'graded_modules.py', + 'filtered_algebras_with_basis.py', + 'finite_lattice_posets.py', + 'category.py', + 'all__sagemath_objects.py', + 'finite_groups.py', + 'commutative_algebras.py', + 'discrete_valuation.py', + 'commutative_rings.py', + 'graded_lie_algebras.py', + 'group_algebras.py', + 'covariant_functorial_construction.py', + 'bialgebras_with_basis.py', + 'simplicial_sets.py', + 'filtered_hopf_algebras_with_basis.py', + 'commutative_additive_monoids.py', + 'subobjects.py', + 'coxeter_groups.py', + 'pointed_sets.py', + 'weyl_groups.py', + 'super_algebras.py', + 'super_algebras_with_basis.py', + 'homsets.py', + 'with_realizations.py', + 'semigroups.py', + 'category_with_axiom.py', + 'supercrystals.py', + 'finitely_generated_semigroups.py', + 'aperiodic_semigroups.py', + 'bimodules.py', + 'primer.py', + 'basic.py', + 'regular_supercrystals.py', + 'classical_crystals.py', + 'finite_dimensional_graded_lie_algebras_with_basis.py', + 'posets.py', + 'finitely_generated_lambda_bracket_algebras.py', + 'algebra_functor.py', + 'finite_monoids.py', + 'drinfeld_modules.py', + 'finite_semigroups.py', + 'graded_hopf_algebras_with_basis.py', + 'finite_sets.py', + 'permutation_groups.py', + 'enumerated_sets.py', + 'finite_dimensional_nilpotent_lie_algebras_with_basis.py', + 'generalized_coxeter_groups.py', + 'super_modules_with_basis.py', + 'finite_crystals.py', + 'lambda_bracket_algebras.py', + 'vector_spaces.py', + 'tensor.py', + 'lie_conformal_algebras_with_basis.py', + 'polyhedra.py', + 'lie_conformal_algebras.py', + 'infinite_enumerated_sets.py', + 'ring_ideals.py', + 'lattice_posets.py', + 'l_trivial_semigroups.py', + 'pushout.py', + 'number_fields.py', + 'finite_coxeter_groups.py', + 'division_rings.py', + 'cw_complexes.py', + 'finite_enumerated_sets.py', + 'fields.py', + 'filtered_algebras.py', + 'lie_algebras.py', + 'shephard_groups.py', + 'chain_complexes.py', + 'finite_dimensional_hopf_algebras_with_basis.py', + 'graded_lie_algebras_with_basis.py', + 'affine_weyl_groups.py', + 'cartesian_product.py', + 'kac_moody_algebras.py', + 'magmatic_algebras.py', + 'quantum_group_representations.py', + 'finitely_generated_magmas.py', + 'facade_sets.py', + 'crystals.py', + 'hopf_algebras.py', + 'finite_posets.py', + 'super_lie_conformal_algebras.py', + 'commutative_ring_ideals.py', + 'graded_lie_conformal_algebras.py', + 'objects.py', + 'graded_coalgebras_with_basis.py', + 'finite_permutation_groups.py', + 'coalgebras.py', + 'complete_discrete_valuation.py', + 'r_trivial_semigroups.py', + 'subquotients.py', + 'finite_complex_reflection_groups.py', + 'h_trivial_semigroups.py', + 'graded_hopf_algebras.py', + 'metric_spaces.py', + 'quotients.py', + 'filtered_modules.py', + 'domains.py', + 'rings.py', + 'left_modules.py', + 'sets_cat.py', + 'graded_coalgebras.py', + 'euclidean_domains.py', + 'manifolds.py', + 'rngs.py', + 'gcd_domains.py', + subdir: 'sage/categories', +) + +py.extension_module( + 'category_singleton.pyx', + 'functor.pyx', + 'category_cy_helper.pyx', + 'morphism.pyx', + 'coercion_methods.pyx', + 'map.pyx', + 'action.pyx', + subdir: 'sage/categories', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep], +) diff --git a/src/sage/cpython/atexit.pyx b/src/sage/cpython/atexit.pyx index e5a82735137..feed692e696 100644 --- a/src/sage/cpython/atexit.pyx +++ b/src/sage/cpython/atexit.pyx @@ -148,44 +148,15 @@ from cpython.ref cimport PyObject # Implement "_atexit_callbacks()" for each supported python version cdef extern from *: """ - #if PY_VERSION_HEX >= 0x030a0000 - /********** Python 3.10 **********/ #define Py_BUILD_CORE #undef _PyGC_FINALIZED #include "internal/pycore_interp.h" #include "internal/pycore_pystate.h" - #if PY_VERSION_HEX >= 0x030c0000 - // struct atexit_callback was renamed in 3.12 to atexit_py_callback - #define atexit_callback atexit_py_callback - #endif static atexit_callback ** _atexit_callbacks(PyObject *self) { PyInterpreterState *interp = _PyInterpreterState_GET(); struct atexit_state state = interp->atexit; return state.callbacks; } - #else - /********** Python < 3.10 **********/ - /* Internal structures defined in the CPython source in - * Modules/atexitmodule.c and subject to (but unlikely to) change. Watch - * https://bugs.python.org/issue32082 for a request to (eventually) - * re-expose more of the atexit module's internals to Python - * typedef struct - */ - typedef struct { - PyObject *func; - PyObject *args; - PyObject *kwargs; - } atexit_callback; - typedef struct { - atexit_callback **atexit_callbacks; - int ncallbacks; - int callback_len; - } atexitmodule_state; - static atexit_callback ** _atexit_callbacks(PyObject *self) { - atexitmodule_state *state = PyModule_GetState(self); - return state->atexit_callbacks; - } - #endif """ ctypedef struct atexit_callback: PyObject* func diff --git a/src/sage/cpython/dict_del_by_value.pyx b/src/sage/cpython/dict_del_by_value.pyx index 19dd2bb2731..11c34019729 100644 --- a/src/sage/cpython/dict_del_by_value.pyx +++ b/src/sage/cpython/dict_del_by_value.pyx @@ -48,7 +48,7 @@ cdef extern from "dict_internal.h": # dk_lookup was removed in python 3.11 -DEF HAS_DK_LOOKUP = PY_VERSION_HEX < 0x30b0000 +DEF HAS_DK_LOOKUP = False IF HAS_DK_LOOKUP: diff --git a/src/sage/cpython/meson.build b/src/sage/cpython/meson.build new file mode 100644 index 00000000000..91d0cdabbd1 --- /dev/null +++ b/src/sage/cpython/meson.build @@ -0,0 +1,21 @@ +py.install_sources( + 'all.py', + '__init__.py', + '_py2_random.py', + subdir: 'sage/cpython', +) + +py.extension_module( + 'debug.pyx', + 'getattr.pyx', + 'atexit.pyx', + 'wrapperdescr.pyx', + 'builtin_types.pyx', + 'cython_metaclass.pyx', + 'dict_del_by_value.pyx', + 'string.pyx', + 'type.pyx', + subdir: 'sage/cpython', + install: true, + dependencies: py_dep, +) diff --git a/src/sage/libs/gmp/meson.build b/src/sage/libs/gmp/meson.build new file mode 100644 index 00000000000..8618c3972ff --- /dev/null +++ b/src/sage/libs/gmp/meson.build @@ -0,0 +1,11 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/gmp', +) + +py.extension_module( + 'pylong.pyx', + subdir: 'sage/libs/gmp', + install: true, + dependencies: py_dep, +) diff --git a/src/sage/misc/__init__.py b/src/sage/misc/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/misc/meson.build b/src/sage/misc/meson.build new file mode 100644 index 00000000000..7965a637fab --- /dev/null +++ b/src/sage/misc/meson.build @@ -0,0 +1,114 @@ +py.install_sources( + 'sageinspect.py', + 'banner.py', + 'timing.py', + 'method_decorator.py', + 'sage_eval.py', + 'package.py', + 'temporary_file.py', + 'defaults.py', + 'compat.py', + 'rest_index_of_methods.py', + 'sage_input.py', + 'python.py', + 'sagedoc_conf.py', + 'replace_dot_all.py', + 'cython.py', + 'element_with_label.py', + 'sage_timeit.py', + 'latex.py', + 'lazy_format.py', + 'converting_dict.py', + 'map_threaded.py', + 'remote_file.py', + 'bindable_class.py', + 'dev_tools.py', + 'unknown.py', + 'sh.py', + 'verbose.py', + 'sage_unittest.py', + 'functional.py', + 'superseded.py', + 'all.py', + 'pager.py', + 'all__sagemath_objects.py', + 'edit_module.py', + 'latex_macros.py', + 'explain_pickle.py', + 'html.py', + 'classgraph.py', + 'namespace_package.py', + 'random_testing.py', + 'viewer.py', + 'table.py', + 'profiler.py', + 'object_multiplexer.py', + 'benchmark.py', + 'multireplace.py', + 'gperftools.py', + 'trace.py', + 'test_class_pickling.py', + 'mrange.py', + 'decorators.py', + 'func_persist.py', + 'copying.py', + 'prandom.py', + 'misc.py', + 'sagedoc.py', + 'test_nested_class.py', + 'repr.py', + 'mathml.py', + 'sphinxify.py', + 'flatten.py', + 'messaging.py', + 'package_dir.py', + 'call.py', + 'abstract_method.py', + 'lazy_import_cache.py', + 'dist.py', + 'all__sagemath_repl.py', + 'all__sagemath_environment.py', + 'inline_fortran.py', + 'proof.py', + 'latex_standalone.py', + subdir: 'sage/misc', +) + +py.extension_module( + 'c3_controlled.pyx', + 'lazy_import.pyx', + 'fpickle.pyx', + 'nested_class.pyx', + 'persist.pyx', + 'binary_tree.pyx', + 'parser.pyx', + 'lazy_list.pyx', + 'function_mangling.pyx', + 'classcall_metaclass.pyx', + 'randstate.pyx', + 'citation.pyx', + 'lazy_string.pyx', + 'search.pyx', + 'stopgap.pyx', + 'weak_dict.pyx', + 'misc_c.pyx', + 'instancedoc.pyx', + 'fast_methods.pyx', + 'sage_ostools.pyx', + 'pickle_old.pyx', + 'inherit_comparison.pyx', + 'derivative.pyx', + 'session.pyx', + 'allocator.pyx', + 'lazy_attribute.pyx', + 'callable_dict.pyx', + 'constant_function.pyx', + 'c3.pyx', + 'reset.pyx', + 'sage_timeit_class.pyx', + 'cachefunc.pyx', + subdir: 'sage/misc', + include_directories: [inc_cpython], + install: true, + dependencies: [py_dep, cysignals], +) diff --git a/src/sage/misc/sage_ostools.pyx b/src/sage/misc/sage_ostools.pyx index 678b6731b82..a291cd45e1b 100644 --- a/src/sage/misc/sage_ostools.pyx +++ b/src/sage/misc/sage_ostools.pyx @@ -304,44 +304,3 @@ cdef class redirection: if self.close_dest: self.dest_file.close() self.dest_fd = -1 - - -IF PY_PLATFORM == 'cygwin': - from libc.stddef cimport wchar_t - - cdef extern from "Windows.h": - int SetDllDirectoryW(wchar_t* lpPathName) - - cdef extern from "sqlite3.h": - int sqlite3_initialize() - - def fix_for_ticket_30157(): - """ - Cygwin-only workaround for an issue caused by the sqlite3 library. - - See :trac:`30157`. - - The issue here is that when the sqlite3 library is first initialized - it modifies Windows' default DLL search path order, which can possibly - break the correct search path for subsequent DLL loads. - - This workaround ensures that the sqlite3 library is initialized very - early on (this does not add any significant overhead) and then - immediately undoes its deleterious effects. In particular, calling - SetDllDirectoryW(NULL) restores the default DLL search path. - - To be clear, there's no reason sqlite3 needs this to function - correctly; it's just a poorly-considered hack that attempted to work - around a problem that doesn't affect us. - - Returns 0 if it succeeeds or a non-zero value if not. - """ - - ret = sqlite3_initialize() - - if ret != 0: - # Library initialization failed for some reason - return ret - - # SetDllDirectory returns 1 if it succeeds. - return not SetDllDirectoryW(NULL) diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build new file mode 100644 index 00000000000..ef6c0218f6a --- /dev/null +++ b/src/sage/structure/meson.build @@ -0,0 +1,48 @@ +py.install_sources( + 'coerce_exceptions.py', + 'unique_representation.py', + 'nonexact.py', + 'global_options.py', + 'sequence.py', + 'all.py', + 'factorization_integer.py', + 'gens_py.py', + 'sage_object_test.py', + 'dynamic_class.py', + 'support_view.py', + '__init__.py', + 'indexed_generators.py', + 'factorization.py', + 'test_factory.py', + 'list_clone_timings.py', + 'formal_sum.py', + 'set_factories.py', + 'set_factories_example.py', + subdir: 'sage/structure', +) + +py.extension_module( + 'list_clone_timings_cy.pyx', + 'sage_object.pyx', + 'parent_base.pyx', + 'debug_options.pyx', + 'coerce.pyx', + 'factory.pyx', + 'parent_old.pyx', + 'coerce_maps.pyx', + 'category_object.pyx', + 'richcmp.pyx', + 'element.pyx', + 'list_clone_demo.pyx', + 'parent_gens.pyx', + 'coerce_dict.pyx', + 'mutability.pyx', + 'element_wrapper.pyx', + 'coerce_actions.pyx', + 'parent.pyx', + 'list_clone.pyx', + subdir: 'sage/structure', + install: true, + include_directories: [inc_cpython, inc_rings, inc_src], + dependencies: [py_dep, gmpy2, cysignals], +) From 26cca827eba76cdaeea195f1af7d0511839462ab Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 24 Oct 2023 02:45:00 +0000 Subject: [PATCH 012/161] Restore atexit --- src/sage/cpython/atexit.pyx | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/sage/cpython/atexit.pyx b/src/sage/cpython/atexit.pyx index feed692e696..e5a82735137 100644 --- a/src/sage/cpython/atexit.pyx +++ b/src/sage/cpython/atexit.pyx @@ -148,15 +148,44 @@ from cpython.ref cimport PyObject # Implement "_atexit_callbacks()" for each supported python version cdef extern from *: """ + #if PY_VERSION_HEX >= 0x030a0000 + /********** Python 3.10 **********/ #define Py_BUILD_CORE #undef _PyGC_FINALIZED #include "internal/pycore_interp.h" #include "internal/pycore_pystate.h" + #if PY_VERSION_HEX >= 0x030c0000 + // struct atexit_callback was renamed in 3.12 to atexit_py_callback + #define atexit_callback atexit_py_callback + #endif static atexit_callback ** _atexit_callbacks(PyObject *self) { PyInterpreterState *interp = _PyInterpreterState_GET(); struct atexit_state state = interp->atexit; return state.callbacks; } + #else + /********** Python < 3.10 **********/ + /* Internal structures defined in the CPython source in + * Modules/atexitmodule.c and subject to (but unlikely to) change. Watch + * https://bugs.python.org/issue32082 for a request to (eventually) + * re-expose more of the atexit module's internals to Python + * typedef struct + */ + typedef struct { + PyObject *func; + PyObject *args; + PyObject *kwargs; + } atexit_callback; + typedef struct { + atexit_callback **atexit_callbacks; + int ncallbacks; + int callback_len; + } atexitmodule_state; + static atexit_callback ** _atexit_callbacks(PyObject *self) { + atexitmodule_state *state = PyModule_GetState(self); + return state->atexit_callbacks; + } + #endif """ ctypedef struct atexit_callback: PyObject* func From b2e70465f840166b9365c7c64169e1a40fd5e555 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 24 Oct 2023 17:48:27 +0000 Subject: [PATCH 013/161] improve installation using meson-python --- .gitignore | 3 + bootstrap-conda | 3 +- generate-meson.py | 19 +- meson.build | 29 ++- pyproject.toml | 6 + src/doc/en/developer/meson.rst | 11 +- src/meson.build | 7 +- src/sage/categories/meson.build | 367 ++++++++++++++++---------------- src/sage/cpython/meson.build | 37 ++-- src/sage/libs/gmp/meson.build | 19 +- src/sage/meson.build | 5 + src/sage/misc/meson.build | 201 ++++++++--------- src/sage/structure/meson.build | 80 +++---- 13 files changed, 438 insertions(+), 349 deletions(-) create mode 100644 pyproject.toml create mode 100644 src/sage/meson.build diff --git a/.gitignore b/.gitignore index 43f58abcafe..aa04337d12a 100644 --- a/.gitignore +++ b/.gitignore @@ -284,3 +284,6 @@ src/.coverage/ # git worktree worktree* **/worktree* + +# meson build directory +builddir diff --git a/bootstrap-conda b/bootstrap-conda index d50e39499cc..447a268f04d 100755 --- a/bootstrap-conda +++ b/bootstrap-conda @@ -98,7 +98,8 @@ echo >&2 $0:$LINENO: generate conda environment files ) > environment-template.yml ( sed 's/name: sage-build/name: sage/' environment-template.yml - echo " - meson" + echo " - meson" + echo " - meson-python" echo " # Additional packages providing all dependencies for the Sage library" for pkg in $SAGELIB_SYSTEM_PACKAGES; do echo " - $pkg" diff --git a/generate-meson.py b/generate-meson.py index 66959e8ceb7..ac77b336d7f 100644 --- a/generate-meson.py +++ b/generate-meson.py @@ -26,6 +26,8 @@ python_files = list(folder.glob('*.py')) cython_files = list(folder.glob('*.pyx')) +python_files.sort() +cython_files.sort() if not python_files and not cython_files: print(f'Error: {folder} does not contain any python or cython files') @@ -43,10 +45,15 @@ meson_build.write(f" subdir: '{folder_rel_to_src}',\n") meson_build.write(')\n\n') - meson_build.write('py.extension_module(\n') + meson_build.write('extension_data = {\n') for file in cython_files: - meson_build.write(f" '{file.name}',\n") - meson_build.write(f" subdir: '{folder_rel_to_src}',\n") - meson_build.write(' install: true,\n') - meson_build.write(' dependencies: py_dep,\n') - meson_build.write(')\n') + meson_build.write(f" '{file.stem}': files('{file.name}'),\n") + meson_build.write('}\n\n') + meson_build.write('foreach name, pyx : extension_data\n') + meson_build.write(" py.extension_module(name,\n") + meson_build.write(" sources: pyx,\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(' install: true,\n') + meson_build.write(' dependencies: py_dep,\n') + meson_build.write(' )\n') + meson_build.write('endforeach\n') diff --git a/meson.build b/meson.build index 1c9e28b8fe4..dea7505c986 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,8 @@ project( # Python module # https://mesonbuild.com/Python-module.html -py = import('python').find_installation(pure: false) +py_module = import('python') +py = py_module.find_installation(pure: false) py_dep = py.dependency() # Compilers @@ -55,4 +56,30 @@ configure_file(input : 'pkgs/sage-conf_conda/_sage_conf/_conf.py.in', output : '_conf.py', configuration : conf_data) +test( + 'import', + py, + args: [ + '-c', + 'from sage.categories.category import Category; print(Category)', + ], + ) + +# py_with_pytest = py_module.find_installation(required: false, modules: ['pytest']) +# if py_with_pytest.found() +# test( +# 'pytest', +# py_with_pytest, +# args: [ +# '-m', +# 'pytest', +# '-c', +# meson.current_source_dir() / 'tox.ini', +# '--doctest-modules', +# meson.current_source_dir() / 'src' / 'sage' / 'categories' +# ], +# timeout: 0, +# ) +# endif + subdir('src') diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000000..03f93330ac4 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,6 @@ +[build-system] +build-backend = 'mesonpy' +requires = ['meson-python', 'cython>=3.0.0'] + +[project] +name = 'sagemath' diff --git a/src/doc/en/developer/meson.rst b/src/doc/en/developer/meson.rst index e9dd1bf21df..b137c9c0956 100644 --- a/src/doc/en/developer/meson.rst +++ b/src/doc/en/developer/meson.rst @@ -4,12 +4,21 @@ Assume we're starting from a clean repo and a fully set up conda environment:: ./bootstrap-conda mamba env create --file src/environment-dev-3.11.yml --name sage-dev conda activate sage-dev + ./bootstrap + ``` + +To compile and install the project in editable install, just use + + ```bash + pip install --no-build-isolation --config-settings=builddir=builddir --editable . ``` +Under the hood, pip invokes meson to configure and build the project. +We can also use meson directly as follows. + Now to configure the project, we need to run the following commands:: ```bash - ./bootstrap meson setup builddir ``` diff --git a/src/meson.build b/src/meson.build index ca2b1a5e846..05a4c0a3e83 100644 --- a/src/meson.build +++ b/src/meson.build @@ -4,6 +4,7 @@ # have to add them manually. # https://github.com/mesonbuild/meson/issues/9562 add_project_arguments('-I', meson.current_source_dir(), language : 'cython') +#add_project_arguments('-I', py.get_path('include'), language : 'cython') inc_numpy = run_command(py, [ @@ -52,8 +53,4 @@ inc_rings = include_directories('sage/rings') inc_src = include_directories('.') # Submodules -subdir('sage/cpython') -subdir('sage/libs/gmp') -subdir('sage/misc') -subdir('sage/structure') -subdir('sage/categories') +subdir('sage') diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build index 76fd199555b..e687a2a9315 100644 --- a/src/sage/categories/meson.build +++ b/src/sage/categories/meson.build @@ -1,207 +1,214 @@ py.install_sources( - 'homset.py', - 'filtered_modules_with_basis.py', - 'modules_with_basis.py', - 'finitely_generated_lie_conformal_algebras.py', - 'bialgebras.py', - 'lambda_bracket_algebras_with_basis.py', - 'tutorial.py', - 'highest_weight_crystals.py', - 'signed_tensor.py', - 'principal_ideal_domains.py', - 'matrix_algebras.py', + '__init__.py', + 'additive_groups.py', + 'additive_magmas.py', + 'additive_monoids.py', 'additive_semigroups.py', - 'graded_bialgebras.py', - 'groups.py', - 'partially_ordered_monoids.py', - 'commutative_additive_groups.py', + 'affine_weyl_groups.py', + 'algebra_functor.py', + 'algebra_ideals.py', 'algebra_modules.py', - 'loop_crystals.py', - 'additive_monoids.py', - 'g_sets.py', - 'semirings.py', - 'regular_crystals.py', - 'realizations.py', - 'finite_dimensional_coalgebras_with_basis.py', - 'dual.py', - 'graded_modules_with_basis.py', - 'sets_with_partial_maps.py', - 'lie_groups.py', - 'semisimple_algebras.py', - 'magmas_and_additive_magmas.py', - 'graphs.py', - 'category_types.py', - 'sets_with_grading.py', - 'complex_reflection_groups.py', - 'topological_spaces.py', - 'coalgebras_with_basis.py', - 'finite_fields.py', - 'isomorphic_objects.py', - 'right_modules.py', - 'finite_dimensional_modules_with_basis.py', 'algebras.py', - 'associative_algebras.py', - 'coxeter_group_algebras.py', - 'hopf_algebras_with_basis.py', - 'distributive_magmas_and_additive_magmas.py', - 'algebra_ideals.py', - 'simplicial_complexes.py', 'algebras_with_basis.py', - 'additive_groups.py', - 'super_hopf_algebras_with_basis.py', - 'graded_algebras.py', - 'hecke_modules.py', - 'j_trivial_semigroups.py', - 'finite_dimensional_lie_algebras_with_basis.py', - 'finite_weyl_groups.py', - 'complex_reflection_or_generalized_coxeter_groups.py', - 'triangular_kac_moody_algebras.py', - 'function_fields.py', - 'supercommutative_algebras.py', - 'schemes.py', - 'lie_algebras_with_basis.py', - 'modules.py', - 'groupoid.py', - 'graded_bialgebras_with_basis.py', - 'super_modules.py', - 'poor_man_map.py', - 'finite_dimensional_algebras_with_basis.py', - 'vector_bundles.py', - 'finite_dimensional_semisimple_algebras_with_basis.py', - 'commutative_additive_semigroups.py', - 'unital_algebras.py', - 'finite_dimensional_bialgebras_with_basis.py', - 'graded_algebras_with_basis.py', - 'integral_domains.py', - 'magmas.py', - 'modular_abelian_varieties.py', - 'unique_factorization_domains.py', - 'monoids.py', - 'quotient_fields.py', - 'commutative_algebra_ideals.py', 'all.py', - 'monoid_algebras.py', - 'additive_magmas.py', - 'graded_modules.py', - 'filtered_algebras_with_basis.py', - 'finite_lattice_posets.py', - 'category.py', 'all__sagemath_objects.py', - 'finite_groups.py', + 'aperiodic_semigroups.py', + 'associative_algebras.py', + 'basic.py', + 'bialgebras.py', + 'bialgebras_with_basis.py', + 'bimodules.py', + 'cartesian_product.py', + 'category.py', + 'category_types.py', + 'category_with_axiom.py', + 'chain_complexes.py', + 'classical_crystals.py', + 'coalgebras.py', + 'coalgebras_with_basis.py', + 'commutative_additive_groups.py', + 'commutative_additive_monoids.py', + 'commutative_additive_semigroups.py', + 'commutative_algebra_ideals.py', 'commutative_algebras.py', - 'discrete_valuation.py', + 'commutative_ring_ideals.py', 'commutative_rings.py', - 'graded_lie_algebras.py', - 'group_algebras.py', + 'complete_discrete_valuation.py', + 'complex_reflection_groups.py', + 'complex_reflection_or_generalized_coxeter_groups.py', 'covariant_functorial_construction.py', - 'bialgebras_with_basis.py', - 'simplicial_sets.py', - 'filtered_hopf_algebras_with_basis.py', - 'commutative_additive_monoids.py', - 'subobjects.py', + 'coxeter_group_algebras.py', 'coxeter_groups.py', - 'pointed_sets.py', - 'weyl_groups.py', - 'super_algebras.py', - 'super_algebras_with_basis.py', - 'homsets.py', - 'with_realizations.py', - 'semigroups.py', - 'category_with_axiom.py', - 'supercrystals.py', - 'finitely_generated_semigroups.py', - 'aperiodic_semigroups.py', - 'bimodules.py', - 'primer.py', - 'basic.py', - 'regular_supercrystals.py', - 'classical_crystals.py', + 'crystals.py', + 'cw_complexes.py', + 'discrete_valuation.py', + 'distributive_magmas_and_additive_magmas.py', + 'division_rings.py', + 'domains.py', + 'drinfeld_modules.py', + 'dual.py', + 'enumerated_sets.py', + 'euclidean_domains.py', + 'facade_sets.py', + 'fields.py', + 'filtered_algebras.py', + 'filtered_algebras_with_basis.py', + 'filtered_hopf_algebras_with_basis.py', + 'filtered_modules.py', + 'filtered_modules_with_basis.py', + 'finite_complex_reflection_groups.py', + 'finite_coxeter_groups.py', + 'finite_crystals.py', + 'finite_dimensional_algebras_with_basis.py', + 'finite_dimensional_bialgebras_with_basis.py', + 'finite_dimensional_coalgebras_with_basis.py', 'finite_dimensional_graded_lie_algebras_with_basis.py', - 'posets.py', - 'finitely_generated_lambda_bracket_algebras.py', - 'algebra_functor.py', + 'finite_dimensional_hopf_algebras_with_basis.py', + 'finite_dimensional_lie_algebras_with_basis.py', + 'finite_dimensional_modules_with_basis.py', + 'finite_dimensional_nilpotent_lie_algebras_with_basis.py', + 'finite_dimensional_semisimple_algebras_with_basis.py', + 'finite_enumerated_sets.py', + 'finite_fields.py', + 'finite_groups.py', + 'finite_lattice_posets.py', 'finite_monoids.py', - 'drinfeld_modules.py', + 'finite_permutation_groups.py', + 'finite_posets.py', 'finite_semigroups.py', - 'graded_hopf_algebras_with_basis.py', 'finite_sets.py', - 'permutation_groups.py', - 'enumerated_sets.py', - 'finite_dimensional_nilpotent_lie_algebras_with_basis.py', + 'finite_weyl_groups.py', + 'finitely_generated_lambda_bracket_algebras.py', + 'finitely_generated_lie_conformal_algebras.py', + 'finitely_generated_magmas.py', + 'finitely_generated_semigroups.py', + 'function_fields.py', + 'g_sets.py', + 'gcd_domains.py', 'generalized_coxeter_groups.py', - 'super_modules_with_basis.py', - 'finite_crystals.py', - 'lambda_bracket_algebras.py', - 'vector_spaces.py', - 'tensor.py', - 'lie_conformal_algebras_with_basis.py', - 'polyhedra.py', - 'lie_conformal_algebras.py', + 'graded_algebras.py', + 'graded_algebras_with_basis.py', + 'graded_bialgebras.py', + 'graded_bialgebras_with_basis.py', + 'graded_coalgebras.py', + 'graded_coalgebras_with_basis.py', + 'graded_hopf_algebras.py', + 'graded_hopf_algebras_with_basis.py', + 'graded_lie_algebras.py', + 'graded_lie_algebras_with_basis.py', + 'graded_lie_conformal_algebras.py', + 'graded_modules.py', + 'graded_modules_with_basis.py', + 'graphs.py', + 'group_algebras.py', + 'groupoid.py', + 'groups.py', + 'h_trivial_semigroups.py', + 'hecke_modules.py', + 'highest_weight_crystals.py', + 'homset.py', + 'homsets.py', + 'hopf_algebras.py', + 'hopf_algebras_with_basis.py', 'infinite_enumerated_sets.py', - 'ring_ideals.py', - 'lattice_posets.py', + 'integral_domains.py', + 'isomorphic_objects.py', + 'j_trivial_semigroups.py', + 'kac_moody_algebras.py', 'l_trivial_semigroups.py', - 'pushout.py', - 'number_fields.py', - 'finite_coxeter_groups.py', - 'division_rings.py', - 'cw_complexes.py', - 'finite_enumerated_sets.py', - 'fields.py', - 'filtered_algebras.py', + 'lambda_bracket_algebras.py', + 'lambda_bracket_algebras_with_basis.py', + 'lattice_posets.py', + 'left_modules.py', 'lie_algebras.py', - 'shephard_groups.py', - 'chain_complexes.py', - 'finite_dimensional_hopf_algebras_with_basis.py', - 'graded_lie_algebras_with_basis.py', - 'affine_weyl_groups.py', - 'cartesian_product.py', - 'kac_moody_algebras.py', + 'lie_algebras_with_basis.py', + 'lie_conformal_algebras.py', + 'lie_conformal_algebras_with_basis.py', + 'lie_groups.py', + 'loop_crystals.py', + 'magmas.py', + 'magmas_and_additive_magmas.py', 'magmatic_algebras.py', - 'quantum_group_representations.py', - 'finitely_generated_magmas.py', - 'facade_sets.py', - 'crystals.py', - 'hopf_algebras.py', - 'finite_posets.py', - 'super_lie_conformal_algebras.py', - 'commutative_ring_ideals.py', - 'graded_lie_conformal_algebras.py', - 'objects.py', - 'graded_coalgebras_with_basis.py', - 'finite_permutation_groups.py', - 'coalgebras.py', - 'complete_discrete_valuation.py', - 'r_trivial_semigroups.py', - 'subquotients.py', - 'finite_complex_reflection_groups.py', - 'h_trivial_semigroups.py', - 'graded_hopf_algebras.py', + 'manifolds.py', + 'matrix_algebras.py', 'metric_spaces.py', + 'modular_abelian_varieties.py', + 'modules.py', + 'modules_with_basis.py', + 'monoid_algebras.py', + 'monoids.py', + 'number_fields.py', + 'objects.py', + 'partially_ordered_monoids.py', + 'permutation_groups.py', + 'pointed_sets.py', + 'polyhedra.py', + 'poor_man_map.py', + 'posets.py', + 'primer.py', + 'principal_ideal_domains.py', + 'pushout.py', + 'quantum_group_representations.py', + 'quotient_fields.py', 'quotients.py', - 'filtered_modules.py', - 'domains.py', + 'r_trivial_semigroups.py', + 'realizations.py', + 'regular_crystals.py', + 'regular_supercrystals.py', + 'right_modules.py', + 'ring_ideals.py', 'rings.py', - 'left_modules.py', - 'sets_cat.py', - 'graded_coalgebras.py', - 'euclidean_domains.py', - 'manifolds.py', 'rngs.py', - 'gcd_domains.py', + 'schemes.py', + 'semigroups.py', + 'semirings.py', + 'semisimple_algebras.py', + 'sets_cat.py', + 'sets_with_grading.py', + 'sets_with_partial_maps.py', + 'shephard_groups.py', + 'signed_tensor.py', + 'simplicial_complexes.py', + 'simplicial_sets.py', + 'subobjects.py', + 'subquotients.py', + 'super_algebras.py', + 'super_algebras_with_basis.py', + 'super_hopf_algebras_with_basis.py', + 'super_lie_conformal_algebras.py', + 'super_modules.py', + 'super_modules_with_basis.py', + 'supercommutative_algebras.py', + 'supercrystals.py', + 'tensor.py', + 'topological_spaces.py', + 'triangular_kac_moody_algebras.py', + 'tutorial.py', + 'unique_factorization_domains.py', + 'unital_algebras.py', + 'vector_bundles.py', + 'vector_spaces.py', + 'weyl_groups.py', + 'with_realizations.py', subdir: 'sage/categories', ) -py.extension_module( - 'category_singleton.pyx', - 'functor.pyx', - 'category_cy_helper.pyx', - 'morphism.pyx', - 'coercion_methods.pyx', - 'map.pyx', - 'action.pyx', - subdir: 'sage/categories', - install: true, - include_directories: [inc_cpython], - dependencies: [py_dep], -) +extension_data = { + 'action': files('action.pyx'), + 'category_cy_helper': files('category_cy_helper.pyx'), + #'category_singleton': files('category_singleton.pyx'), -- cannot find cpython for some reason?! + 'coercion_methods': files('coercion_methods.pyx'), + 'functor': files('functor.pyx'), + 'map': files('map.pyx'), + 'morphism': files('morphism.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/categories', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep], + ) +endforeach diff --git a/src/sage/cpython/meson.build b/src/sage/cpython/meson.build index 91d0cdabbd1..d7a55aa2d7b 100644 --- a/src/sage/cpython/meson.build +++ b/src/sage/cpython/meson.build @@ -1,21 +1,28 @@ py.install_sources( - 'all.py', '__init__.py', '_py2_random.py', + 'all.py', subdir: 'sage/cpython', ) -py.extension_module( - 'debug.pyx', - 'getattr.pyx', - 'atexit.pyx', - 'wrapperdescr.pyx', - 'builtin_types.pyx', - 'cython_metaclass.pyx', - 'dict_del_by_value.pyx', - 'string.pyx', - 'type.pyx', - subdir: 'sage/cpython', - install: true, - dependencies: py_dep, -) +extension_data = { + 'atexit': files('atexit.pyx'), + 'builtin_types': files('builtin_types.pyx'), + 'cython_metaclass': files('cython_metaclass.pyx'), + 'debug': files('debug.pyx'), + 'dict_del_by_value': files('dict_del_by_value.pyx'), + 'getattr': files('getattr.pyx'), + 'string': files('string.pyx'), + 'type': files('type.pyx'), + 'wrapperdescr': files('wrapperdescr.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/cpython', + install: true, + include_directories: [inc_src], + dependencies: py_dep, + ) +endforeach diff --git a/src/sage/libs/gmp/meson.build b/src/sage/libs/gmp/meson.build index 8618c3972ff..0245b073baa 100644 --- a/src/sage/libs/gmp/meson.build +++ b/src/sage/libs/gmp/meson.build @@ -3,9 +3,16 @@ py.install_sources( subdir: 'sage/libs/gmp', ) -py.extension_module( - 'pylong.pyx', - subdir: 'sage/libs/gmp', - install: true, - dependencies: py_dep, -) +extension_data = { + 'pylong': files('pylong.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/gmp', + install: true, + include_directories: [inc_cpython], + dependencies: py_dep, + ) +endforeach diff --git a/src/sage/meson.build b/src/sage/meson.build new file mode 100644 index 00000000000..7089abc814b --- /dev/null +++ b/src/sage/meson.build @@ -0,0 +1,5 @@ +subdir('cpython') +subdir('libs/gmp') +subdir('misc') +subdir('structure') +subdir('categories') diff --git a/src/sage/misc/meson.build b/src/sage/misc/meson.build index 7965a637fab..e653623c0a4 100644 --- a/src/sage/misc/meson.build +++ b/src/sage/misc/meson.build @@ -1,114 +1,121 @@ py.install_sources( - 'sageinspect.py', + '__init__.py', + 'abstract_method.py', + 'all.py', + 'all__sagemath_environment.py', + 'all__sagemath_objects.py', + 'all__sagemath_repl.py', 'banner.py', - 'timing.py', - 'method_decorator.py', - 'sage_eval.py', - 'package.py', - 'temporary_file.py', - 'defaults.py', + 'benchmark.py', + 'bindable_class.py', + 'call.py', + 'classgraph.py', 'compat.py', - 'rest_index_of_methods.py', - 'sage_input.py', - 'python.py', - 'sagedoc_conf.py', - 'replace_dot_all.py', + 'converting_dict.py', + 'copying.py', 'cython.py', + 'decorators.py', + 'defaults.py', + 'dev_tools.py', + 'dist.py', + 'edit_module.py', 'element_with_label.py', - 'sage_timeit.py', + 'explain_pickle.py', + 'flatten.py', + 'func_persist.py', + 'functional.py', + 'gperftools.py', + 'html.py', + 'inline_fortran.py', 'latex.py', + 'latex_macros.py', + 'latex_standalone.py', 'lazy_format.py', - 'converting_dict.py', + 'lazy_import_cache.py', 'map_threaded.py', + 'mathml.py', + 'messaging.py', + 'method_decorator.py', + 'misc.py', + 'mrange.py', + 'multireplace.py', + 'namespace_package.py', + 'object_multiplexer.py', + 'package.py', + 'package_dir.py', + 'pager.py', + 'prandom.py', + 'profiler.py', + 'proof.py', + 'python.py', + 'random_testing.py', 'remote_file.py', - 'bindable_class.py', - 'dev_tools.py', - 'unknown.py', - 'sh.py', - 'verbose.py', + 'replace_dot_all.py', + 'repr.py', + 'rest_index_of_methods.py', + 'sage_eval.py', + 'sage_input.py', + 'sage_timeit.py', 'sage_unittest.py', - 'functional.py', + 'sagedoc.py', + 'sagedoc_conf.py', + 'sageinspect.py', + 'sh.py', + 'sphinxify.py', 'superseded.py', - 'all.py', - 'pager.py', - 'all__sagemath_objects.py', - 'edit_module.py', - 'latex_macros.py', - 'explain_pickle.py', - 'html.py', - 'classgraph.py', - 'namespace_package.py', - 'random_testing.py', - 'viewer.py', 'table.py', - 'profiler.py', - 'object_multiplexer.py', - 'benchmark.py', - 'multireplace.py', - 'gperftools.py', - 'trace.py', + 'temporary_file.py', 'test_class_pickling.py', - 'mrange.py', - 'decorators.py', - 'func_persist.py', - 'copying.py', - 'prandom.py', - 'misc.py', - 'sagedoc.py', 'test_nested_class.py', - 'repr.py', - 'mathml.py', - 'sphinxify.py', - 'flatten.py', - 'messaging.py', - 'package_dir.py', - 'call.py', - 'abstract_method.py', - 'lazy_import_cache.py', - 'dist.py', - 'all__sagemath_repl.py', - 'all__sagemath_environment.py', - 'inline_fortran.py', - 'proof.py', - 'latex_standalone.py', + 'timing.py', + 'trace.py', + 'unknown.py', + 'verbose.py', + 'viewer.py', subdir: 'sage/misc', ) -py.extension_module( - 'c3_controlled.pyx', - 'lazy_import.pyx', - 'fpickle.pyx', - 'nested_class.pyx', - 'persist.pyx', - 'binary_tree.pyx', - 'parser.pyx', - 'lazy_list.pyx', - 'function_mangling.pyx', - 'classcall_metaclass.pyx', - 'randstate.pyx', - 'citation.pyx', - 'lazy_string.pyx', - 'search.pyx', - 'stopgap.pyx', - 'weak_dict.pyx', - 'misc_c.pyx', - 'instancedoc.pyx', - 'fast_methods.pyx', - 'sage_ostools.pyx', - 'pickle_old.pyx', - 'inherit_comparison.pyx', - 'derivative.pyx', - 'session.pyx', - 'allocator.pyx', - 'lazy_attribute.pyx', - 'callable_dict.pyx', - 'constant_function.pyx', - 'c3.pyx', - 'reset.pyx', - 'sage_timeit_class.pyx', - 'cachefunc.pyx', - subdir: 'sage/misc', - include_directories: [inc_cpython], - install: true, - dependencies: [py_dep, cysignals], -) +extension_data = { + 'allocator': files('allocator.pyx'), + 'binary_tree': files('binary_tree.pyx'), + 'c3': files('c3.pyx'), + 'c3_controlled': files('c3_controlled.pyx'), + 'cachefunc': files('cachefunc.pyx'), + 'callable_dict': files('callable_dict.pyx'), + 'citation': files('citation.pyx'), + 'classcall_metaclass': files('classcall_metaclass.pyx'), + 'constant_function': files('constant_function.pyx'), + 'derivative': files('derivative.pyx'), + 'fast_methods': files('fast_methods.pyx'), + 'fpickle': files('fpickle.pyx'), + 'function_mangling': files('function_mangling.pyx'), + 'inherit_comparison': files('inherit_comparison.pyx'), + 'instancedoc': files('instancedoc.pyx'), + 'lazy_attribute': files('lazy_attribute.pyx'), + 'lazy_import': files('lazy_import.pyx'), + 'lazy_list': files('lazy_list.pyx'), + 'lazy_string': files('lazy_string.pyx'), + 'misc_c': files('misc_c.pyx'), + 'nested_class': files('nested_class.pyx'), + 'parser': files('parser.pyx'), + 'persist': files('persist.pyx'), + 'pickle_old': files('pickle_old.pyx'), + 'randstate': files('randstate.pyx'), + 'reset': files('reset.pyx'), + 'sage_ostools': files('sage_ostools.pyx'), + 'sage_timeit_class': files('sage_timeit_class.pyx'), + 'search': files('search.pyx'), + 'session': files('session.pyx'), + 'stopgap': files('stopgap.pyx'), + 'weak_dict': files('weak_dict.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/misc', + include_directories: [inc_cpython], + install: true, + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index ef6c0218f6a..d9df8e8d78e 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -1,48 +1,54 @@ py.install_sources( - 'coerce_exceptions.py', - 'unique_representation.py', - 'nonexact.py', - 'global_options.py', - 'sequence.py', + '__init__.py', 'all.py', + 'coerce_exceptions.py', + 'dynamic_class.py', + 'factorization.py', 'factorization_integer.py', + 'formal_sum.py', 'gens_py.py', - 'sage_object_test.py', - 'dynamic_class.py', - 'support_view.py', - '__init__.py', + 'global_options.py', 'indexed_generators.py', - 'factorization.py', - 'test_factory.py', 'list_clone_timings.py', - 'formal_sum.py', + 'nonexact.py', + 'sage_object_test.py', + 'sequence.py', 'set_factories.py', 'set_factories_example.py', + 'support_view.py', + 'test_factory.py', + 'unique_representation.py', subdir: 'sage/structure', ) -py.extension_module( - 'list_clone_timings_cy.pyx', - 'sage_object.pyx', - 'parent_base.pyx', - 'debug_options.pyx', - 'coerce.pyx', - 'factory.pyx', - 'parent_old.pyx', - 'coerce_maps.pyx', - 'category_object.pyx', - 'richcmp.pyx', - 'element.pyx', - 'list_clone_demo.pyx', - 'parent_gens.pyx', - 'coerce_dict.pyx', - 'mutability.pyx', - 'element_wrapper.pyx', - 'coerce_actions.pyx', - 'parent.pyx', - 'list_clone.pyx', - subdir: 'sage/structure', - install: true, - include_directories: [inc_cpython, inc_rings, inc_src], - dependencies: [py_dep, gmpy2, cysignals], -) +extension_data = { + 'category_object': files('category_object.pyx'), + 'coerce': files('coerce.pyx'), + 'coerce_actions': files('coerce_actions.pyx'), + 'coerce_dict': files('coerce_dict.pyx'), + 'coerce_maps': files('coerce_maps.pyx'), + 'debug_options': files('debug_options.pyx'), + 'element': files('element.pyx'), + 'element_wrapper': files('element_wrapper.pyx'), + 'factory': files('factory.pyx'), + 'list_clone': files('list_clone.pyx'), + 'list_clone_demo': files('list_clone_demo.pyx'), + 'list_clone_timings_cy': files('list_clone_timings_cy.pyx'), + 'mutability': files('mutability.pyx'), + 'parent': files('parent.pyx'), + 'parent_base': files('parent_base.pyx'), + 'parent_gens': files('parent_gens.pyx'), + 'parent_old': files('parent_old.pyx'), + 'richcmp': files('richcmp.pyx'), + 'sage_object': files('sage_object.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/structure', + install: true, + include_directories: [inc_cpython, inc_rings, inc_src], + dependencies: [py_dep, gmpy2, cysignals], + ) +endforeach From 090aa2a20655a19921844f08c0606ca815e62f2c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Wed, 25 Oct 2023 03:41:57 +0000 Subject: [PATCH 014/161] small improvements --- meson.build | 4 ++-- src/doc/en/developer/meson.rst | 4 ++++ src/sage/misc/cachefunc.pxd | 2 +- src/sage/structure/__init__.py | 2 -- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index dea7505c986..b1c16df6459 100644 --- a/meson.build +++ b/meson.build @@ -23,7 +23,7 @@ conf_data = configuration_data() conf_data.set('PACKAGE_VERSION', '1.2.3') maxima = find_program('maxima', required: true) -conf_data.set('SAGE_MAXIMA', maxima.path()) +conf_data.set('SAGE_MAXIMA', maxima.full_path()) # Conda's ecl does not have any problems with Maxima, so nothing needs to be set here: conf_data.set('SAGE_MAXIMA_FAS', '') @@ -39,7 +39,7 @@ conf_data.set('NTL_INCDIR', '') conf_data.set('NTL_LIBDIR', '') ecl_config = find_program('ecl-config', required: true) -conf_data.set('SAGE_ECL_CONFIG', ecl_config.path()) +conf_data.set('SAGE_ECL_CONFIG', ecl_config.full_path()) conf_data.set('SAGE_ARCHFLAGS', 'unset') diff --git a/src/doc/en/developer/meson.rst b/src/doc/en/developer/meson.rst index b137c9c0956..422aa5001cf 100644 --- a/src/doc/en/developer/meson.rst +++ b/src/doc/en/developer/meson.rst @@ -7,6 +7,10 @@ Assume we're starting from a clean repo and a fully set up conda environment:: ./bootstrap ``` +(Note, that in the codespace environment you first have to delete the +already compiled files, e.g. with ``shopt -s globstar`` followed by ``rm src/**/*.so`` +) + To compile and install the project in editable install, just use ```bash diff --git a/src/sage/misc/cachefunc.pxd b/src/sage/misc/cachefunc.pxd index 8e5d9dfa42a..1ebd6f25a9d 100644 --- a/src/sage/misc/cachefunc.pxd +++ b/src/sage/misc/cachefunc.pxd @@ -1,4 +1,4 @@ -from .function_mangling cimport ArgumentFixer +from sage.misc.function_mangling cimport ArgumentFixer cpdef dict_key(o) cpdef cache_key(o) diff --git a/src/sage/structure/__init__.py b/src/sage/structure/__init__.py index 8689eb1717f..e69de29bb2d 100644 --- a/src/sage/structure/__init__.py +++ b/src/sage/structure/__init__.py @@ -1,2 +0,0 @@ -# Resolve a cyclic import -import sage.structure.element From 393aa081508a7c58ab2b896988fc26bb30773056 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 28 Oct 2023 15:49:39 +0000 Subject: [PATCH 015/161] add a few more meson build files --- src/sage/data_structures/meson.build | 25 +++++++++++++++++++ src/sage/meson.build | 32 ++++++++++++++++++++++++ src/sage/sets/meson.build | 37 ++++++++++++++++++++++++++++ src/sage/structure/__init__.py | 0 src/sage/structure/meson.build | 2 +- 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 src/sage/data_structures/meson.build create mode 100644 src/sage/sets/meson.build delete mode 100644 src/sage/structure/__init__.py diff --git a/src/sage/data_structures/meson.build b/src/sage/data_structures/meson.build new file mode 100644 index 00000000000..a33c5904eb2 --- /dev/null +++ b/src/sage/data_structures/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + 'all.py', + 'mutable_poset.py', + 'stream.py', + subdir: 'sage/data_structures', +) + +extension_data = { + #'binary_search': files('binary_search.pyx'), compilation error + 'bitset': files('bitset.pyx'), + 'bitset_base': files('bitset_base.pyx'), + 'blas_dict': files('blas_dict.pyx'), + #'bounded_integer_sequences': files('bounded_integer_sequences.pyx'), requires flint + 'list_of_pairs': files('list_of_pairs.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/data_structures', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/meson.build b/src/sage/meson.build index 7089abc814b..6a30c76b371 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -1,5 +1,37 @@ +sage_install_dir = py.get_install_dir() / 'sage' + +# Packages that need no processing and can be installed directly +no_processing = [ + 'repl', + 'doctest', + 'features', +] +foreach package : no_processing + install_subdir(package, install_dir: sage_install_dir) +endforeach + +py.install_sources( + 'all.py', + 'all__sagemath_bliss.py', + 'all__sagemath_categories.py', + 'all__sagemath_coxeter3.py', + 'all__sagemath_environment.py', + 'all__sagemath_mcqd.py', + 'all__sagemath_meataxe.py', + 'all__sagemath_objects.py', + 'all__sagemath_repl.py', + 'all__sagemath_sirocco.py', + 'all__sagemath_tdlib.py', + 'all_cmdline.py', + 'env.py', + 'version.py', + subdir: 'sage', +) + subdir('cpython') subdir('libs/gmp') subdir('misc') subdir('structure') subdir('categories') +subdir('sets') +subdir('data_structures') diff --git a/src/sage/sets/meson.build b/src/sage/sets/meson.build new file mode 100644 index 00000000000..734754d05b6 --- /dev/null +++ b/src/sage/sets/meson.build @@ -0,0 +1,37 @@ +py.install_sources( + 'all.py', + 'all__sagemath_objects.py', + 'cartesian_product.py', + 'condition_set.py', + 'disjoint_union_enumerated_sets.py', + 'family.py', + 'finite_enumerated_set.py', + 'finite_set_maps.py', + 'image_set.py', + 'integer_range.py', + 'non_negative_integers.py', + 'positive_integers.py', + 'primes.py', + 'real_set.py', + 'set.py', + 'set_from_iterator.py', + 'totally_ordered_finite_set.py', + subdir: 'sage/sets', +) + +extension_data = { + #'disjoint_set': files('disjoint_set.pyx'), Needs other imports + 'finite_set_map_cy': files('finite_set_map_cy.pyx'), + 'pythonclass': files('pythonclass.pyx'), + 'recursively_enumerated_set': files('recursively_enumerated_set.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/sets', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/structure/__init__.py b/src/sage/structure/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index d9df8e8d78e..05d1c095874 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -1,5 +1,4 @@ py.install_sources( - '__init__.py', 'all.py', 'coerce_exceptions.py', 'dynamic_class.py', @@ -20,6 +19,7 @@ py.install_sources( 'unique_representation.py', subdir: 'sage/structure', ) +install_subdir('proof', install_dir: sage_install_dir / 'structure' / 'proof') extension_data = { 'category_object': files('category_object.pyx'), From 7c2f3a1b4e312559830dda18ab78ee0e9d58ab4b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 29 Oct 2023 15:58:41 +0000 Subject: [PATCH 016/161] add more meson files --- meson.build | 3 + src/meson.build | 58 ++++++++++-- src/sage/arith/meson.build | 25 ++++++ src/sage/categories/meson.build | 6 +- src/sage/combinat/meson.build | 151 ++++++++++++++++++++++++++++++++ src/sage/libs/flint/meson.build | 23 +++++ src/sage/libs/gmp/meson.build | 2 +- src/sage/libs/gsl/meson.build | 17 ++++ src/sage/libs/meson.build | 38 ++++++++ src/sage/meson.build | 6 +- src/sage/misc/meson.build | 2 +- src/sage/rings/meson.build | 105 ++++++++++++++++++++++ 12 files changed, 424 insertions(+), 12 deletions(-) create mode 100644 src/sage/arith/meson.build create mode 100644 src/sage/combinat/meson.build create mode 100644 src/sage/libs/flint/meson.build create mode 100644 src/sage/libs/gsl/meson.build create mode 100644 src/sage/libs/meson.build create mode 100644 src/sage/rings/meson.build diff --git a/meson.build b/meson.build index b1c16df6459..d3b48741eaf 100644 --- a/meson.build +++ b/meson.build @@ -56,6 +56,9 @@ configure_file(input : 'pkgs/sage-conf_conda/_sage_conf/_conf.py.in', output : '_conf.py', configuration : conf_data) +#arb = dependency('arb', required: true) +#cpari = dependency('cpari', required: true) + test( 'import', py, diff --git a/src/meson.build b/src/meson.build index 05a4c0a3e83..3a023d92c68 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,11 +1,5 @@ # Setup dependencies that are needed by many modules -# Meson currently ignores include_directories for Cython modules, so we -# have to add them manually. -# https://github.com/mesonbuild/meson/issues/9562 -add_project_arguments('-I', meson.current_source_dir(), language : 'cython') -#add_project_arguments('-I', py.get_path('include'), language : 'cython') - inc_numpy = run_command(py, [ '-c', @@ -47,9 +41,61 @@ print(gmpy2.__file__.replace('__init__.py', '')) gmpy2 = declare_dependency( include_directories: inc_gmpy2, ) +gmp = dependency('gmp', required: true) + +inc_cypari2 = run_command(py, + [ + '-c', + ''' +import cypari2 +print(cypari2.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +cypari2 = declare_dependency( + include_directories: inc_cypari2, +) + +# It's strange but cython cannot find its own include files +# so we find them ourselves, and add them to the include path +inc_cython = run_command(py, + [ + '-c', + ''' +import Cython +print(Cython.__file__.replace('__init__.py', '')) + '''.strip() + ], + check: true + ).stdout().strip() +add_project_arguments('-I', inc_cython + 'Includes', language : 'cython') + +# Meson currently ignores include_directories for Cython modules, so we +# have to add them manually. +# https://github.com/mesonbuild/meson/issues/9562 +add_project_arguments('-I', meson.current_source_dir(), language : 'cython') +#add_project_arguments('-I', py.get_path('include'), language : 'cython') + +# Add global compiler flags +add_project_arguments('-X auto_pickle=False', language : 'cython') +add_project_arguments('-X autotestdict=False', language : 'cython') +add_project_arguments('-X binding=False', language : 'cython') +add_project_arguments('-X c_api_binop_methods=True', language : 'cython') +add_project_arguments('-X cdivision=True', language : 'cython') +add_project_arguments('-X cpow=True', language : 'cython') +add_project_arguments('-X embedsignature=True', language : 'cython') +add_project_arguments('-X fast_getattr=True', language : 'cython') +#add_project_arguments('-X language_level="3"', language : 'cython') +add_project_arguments('-X legacy_implicit_noexcept=True', language : 'cython') +add_project_arguments('-X preliminary_late_includes_cy28=True', language : 'cython') inc_cpython = include_directories('sage/cpython') inc_rings = include_directories('sage/rings') +inc_flint = include_directories('sage/libs/flint') +inc_gsl = include_directories('sage/libs/gsl') +inc_data_structures = include_directories('sage/data_structures') +inc_ext = include_directories('sage/ext') inc_src = include_directories('.') # Submodules diff --git a/src/sage/arith/meson.build b/src/sage/arith/meson.build new file mode 100644 index 00000000000..c987f21b7e4 --- /dev/null +++ b/src/sage/arith/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + 'all.py', + 'all__sagemath_objects.py', + 'misc.py', + subdir: 'sage/arith', +) + +extension_data = { + 'functions': files('functions.pyx'), + 'multi_modular': files('multi_modular.pyx'),# - compilation error + 'numerical_approx': files('numerical_approx.pyx'), + 'power': files('power.pyx'), + 'rational_reconstruction': files('rational_reconstruction.pyx'), + 'srange': files('srange.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/arith', + install: true, + include_directories: [inc_cpython, inc_rings, inc_ext], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build index e687a2a9315..0639d5bd1ff 100644 --- a/src/sage/categories/meson.build +++ b/src/sage/categories/meson.build @@ -1,5 +1,4 @@ py.install_sources( - '__init__.py', 'additive_groups.py', 'additive_magmas.py', 'additive_monoids.py', @@ -196,7 +195,7 @@ py.install_sources( extension_data = { 'action': files('action.pyx'), 'category_cy_helper': files('category_cy_helper.pyx'), - #'category_singleton': files('category_singleton.pyx'), -- cannot find cpython for some reason?! + 'category_singleton': files('category_singleton.pyx'), 'coercion_methods': files('coercion_methods.pyx'), 'functor': files('functor.pyx'), 'map': files('map.pyx'), @@ -208,7 +207,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/categories', install: true, - include_directories: [inc_cpython], + #cython_args: ['-I', inc_numpy, '-I', '/workspaces/sage/builddir'], + include_directories: [inc_cpython, inc_numpy], dependencies: [py_dep], ) endforeach diff --git a/src/sage/combinat/meson.build b/src/sage/combinat/meson.build new file mode 100644 index 00000000000..6573914b5d8 --- /dev/null +++ b/src/sage/combinat/meson.build @@ -0,0 +1,151 @@ +py.install_sources( + 'abstract_tree.py', + 'affine_permutation.py', + 'algebraic_combinatorics.py', + 'all.py', + 'alternating_sign_matrix.py', + 'backtrack.py', + 'baxter_permutations.py', + 'bijectionist.py', + 'binary_recurrence_sequences.py', + 'binary_tree.py', + 'blob_algebra.py', + 'cartesian_product.py', + 'catalog_partitions.py', + 'cluster_complex.py', + 'colored_permutations.py', + 'combinat.py', + 'combination.py', + 'combinatorial_map.py', + 'composition.py', + 'composition_signed.py', + 'composition_tableau.py', + 'constellation.py', + 'core.py', + 'counting.py', + 'cyclic_sieving_phenomenon.py', + 'decorated_permutation.py', + 'derangements.py', + 'descent_algebra.py', + 'diagram.py', + 'diagram_algebras.py', + 'dlx.py', + 'dyck_word.py', + 'e_one_star.py', + 'enumerated_sets.py', + 'family.py', + 'finite_state_machine.py', + 'finite_state_machine_generators.py', + 'fqsym.py', + 'free_dendriform_algebra.py', + 'free_module.py', + 'free_prelie_algebra.py', + 'fully_commutative_elements.py', + 'fully_packed_loop.py', + 'gelfand_tsetlin_patterns.py', + 'graph_path.py', + 'gray_codes.py', + 'grossman_larson_algebras.py', + 'growth.py', + 'hall_polynomial.py', + 'hillman_grassl.py', + 'integer_matrices.py', + 'integer_vector.py', + 'integer_vector_weighted.py', + 'integer_vectors_mod_permgroup.py', + 'interval_posets.py', + 'k_tableau.py', + 'kazhdan_lusztig.py', + 'key_polynomial.py', + 'knutson_tao_puzzles.py', + 'lr_tableau.py', + 'misc.py', + 'multiset_partition_into_sets_ordered.py', + 'necklace.py', + 'non_decreasing_parking_function.py', + 'nu_dyck_word.py', + 'nu_tamari_lattice.py', + 'ordered_tree.py', + 'output.py', + 'parallelogram_polyomino.py', + 'parking_functions.py', + 'partition.py', + 'partition_algebra.py', + 'partition_kleshchev.py', + 'partition_shifting_algebras.py', + 'partition_tuple.py', + 'perfect_matching.py', + 'permutation.py', + 'plane_partition.py', + 'q_analogues.py', + 'quickref.py', + 'ranker.py', + 'recognizable_series.py', + 'regular_sequence.py', + 'restricted_growth.py', + 'ribbon.py', + 'ribbon_shaped_tableau.py', + 'ribbon_tableau.py', + 'rooted_tree.py', + 'rsk.py', + 'schubert_polynomial.py', + 'set_partition.py', + 'set_partition_ordered.py', + 'shard_order.py', + 'shifted_primed_tableau.py', + 'shuffle.py', + 'sidon_sets.py', + 'similarity_class_type.py', + 'sine_gordon.py', + 'six_vertex_model.py', + 'skew_partition.py', + 'skew_tableau.py', + 'sloane_functions.py', + 'specht_module.py', + 'subset.py', + 'subsets_hereditary.py', + 'subsets_pairwise.py', + 'subword.py', + 'subword_complex.py', + 'super_tableau.py', + 'superpartition.py', + 'symmetric_group_algebra.py', + 'symmetric_group_representations.py', + 't_sequences.py', + 'tableau.py', + 'tableau_residues.py', + 'tableau_tuple.py', + 'tamari_lattices.py', + 'tiling.py', + 'tools.py', + 'triangles_FHM.py', + 'tuple.py', + 'tutorial.py', + 'vector_partition.py', + 'yang_baxter_graph.py', + subdir: 'sage/combinat', +) + +extension_data = { + 'combinat_cython': files('combinat_cython.pyx'), + 'debruijn_sequence': files('debruijn_sequence.pyx'), + 'degree_sequences': files('degree_sequences.pyx'), + 'enumeration_mod_permgroup': files('enumeration_mod_permgroup.pyx'), + 'expnums': files('expnums.pyx'), + 'fast_vector_partitions': files('fast_vector_partitions.pyx'), + 'partitions': files('partitions.pyx'), + 'permutation_cython': files('permutation_cython.pyx'), + 'q_bernoulli': files('q_bernoulli.pyx'), + 'set_partition_iterator': files('set_partition_iterator.pyx'), + 'subword_complex_c': files('subword_complex_c.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat', + install: true, + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build new file mode 100644 index 00000000000..7d64f9d44fd --- /dev/null +++ b/src/sage/libs/flint/meson.build @@ -0,0 +1,23 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/flint', +) + +extension_data = { + 'arith': files('arith.pyx'), + 'flint': files('flint.pyx'), + 'fmpz_factor': files('fmpz_factor.pyx'), + 'fmpz_poly': files('fmpz_poly.pyx'), + 'qsieve': files('qsieve.pyx'), + 'ulong_extras': files('ulong_extras.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/flint', + install: true, + include_directories: [inc_cpython, inc_src, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/libs/gmp/meson.build b/src/sage/libs/gmp/meson.build index 0245b073baa..1145393220a 100644 --- a/src/sage/libs/gmp/meson.build +++ b/src/sage/libs/gmp/meson.build @@ -13,6 +13,6 @@ foreach name, pyx : extension_data subdir: 'sage/libs/gmp', install: true, include_directories: [inc_cpython], - dependencies: py_dep, + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/libs/gsl/meson.build b/src/sage/libs/gsl/meson.build new file mode 100644 index 00000000000..4d7d3c61a4d --- /dev/null +++ b/src/sage/libs/gsl/meson.build @@ -0,0 +1,17 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/gsl', +) + +extension_data = { + 'array': files('array.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/gsl', + install: true, + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build new file mode 100644 index 00000000000..d75b624652c --- /dev/null +++ b/src/sage/libs/meson.build @@ -0,0 +1,38 @@ +py.install_sources( + 'all.py', + 'all__sagemath_coxeter3.py', + 'all__sagemath_meataxe.py', + 'all__sagemath_objects.py', + 'all__sagemath_sirocco.py', + subdir: 'sage/libs', +) + +extension_data = { + #'braiding': files('braiding.pyx'),# - compile error (ios) + 'ecl': files('ecl.pyx'), + 'homfly': files('homfly.pyx'), + 'libecm': files('libecm.pyx'), + #'meataxe': files('meataxe.pyx'),# - need meataxe +} + +dependencies = [py_dep, cysignals, cypari2] + +sirocco = dependency('sirocco', required: false) +if sirocco.found() + #extension_data['sirocco'] += files('sirocco.pxd') + dependencies += [sirocco] +endif + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs', + install: true, + include_directories: [inc_cpython], + dependencies: dependencies, + ) +endforeach + +subdir('gmp') +subdir('gsl') +subdir('flint') diff --git a/src/sage/meson.build b/src/sage/meson.build index 6a30c76b371..327cf4bf11c 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -5,6 +5,7 @@ no_processing = [ 'repl', 'doctest', 'features', + 'typeset', ] foreach package : no_processing install_subdir(package, install_dir: sage_install_dir) @@ -29,9 +30,12 @@ py.install_sources( ) subdir('cpython') -subdir('libs/gmp') +subdir('libs') subdir('misc') subdir('structure') subdir('categories') subdir('sets') subdir('data_structures') +subdir('rings') +subdir('arith') +subdir('combinat') diff --git a/src/sage/misc/meson.build b/src/sage/misc/meson.build index e653623c0a4..5556645215a 100644 --- a/src/sage/misc/meson.build +++ b/src/sage/misc/meson.build @@ -116,6 +116,6 @@ foreach name, pyx : extension_data subdir: 'sage/misc', include_directories: [inc_cpython], install: true, - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build new file mode 100644 index 00000000000..eeb3e4e5480 --- /dev/null +++ b/src/sage/rings/meson.build @@ -0,0 +1,105 @@ +py.install_sources( + 'algebraic_closure_finite_field.py', + 'all.py', + 'all__sagemath_categories.py', + 'all__sagemath_objects.py', + 'big_oh.py', + 'cc.py', + 'cfinite_sequence.py', + 'cif.py', + 'commutative_algebra.py', + 'complex_interval_field.py', + 'continued_fraction.py', + 'continued_fraction_gosper.py', + 'derivation.py', + 'fraction_field.py', + 'generic.py', + 'homset.py', + 'ideal.py', + 'ideal_monoid.py', + 'imaginary_unit.py', + 'infinity.py', + 'laurent_series_ring.py', + 'lazy_series.py', + 'lazy_series_ring.py', + 'localization.py', + 'monomials.py', + 'multi_power_series_ring.py', + 'multi_power_series_ring_element.py', + 'numbers_abc.py', + 'pari_ring.py', + 'power_series_ring.py', + 'puiseux_series_ring.py', + 'qqbar.py', + 'qqbar_decorators.py', + 'quotient_ring.py', + 'quotient_ring_element.py', + 'rational_field.py', + 'real_field.py', + 'ring_extension_homset.py', + 'tate_algebra.py', + 'tests.py', + 'universal_cyclotomic_field.py', + subdir: 'sage/rings', +) + +extension_data = { + 'abc': files('abc.pyx'), + #'bernmm': files('bernmm.pyx'), - compilation error + #'bernoulli_mod_p': files('bernoulli_mod_p.pyx'), - compilation error + #'complex_arb': files('complex_arb.pyx'), - needs arb + 'complex_conversion': files('complex_conversion.pyx'), + 'complex_double': files('complex_double.pyx'), + 'complex_interval': files('complex_interval.pyx'), + 'complex_mpc': files('complex_mpc.pyx'), + 'complex_mpfr': files('complex_mpfr.pyx'), + 'factorint': files('factorint.pyx'), + 'factorint_flint': files('factorint_flint.pyx'), + 'factorint_pari': files('factorint_pari.pyx'), + 'fast_arith': files('fast_arith.pyx'), + #'fraction_field_FpT': files('fraction_field_FpT.pyx'), - needs finite rings + 'fraction_field_element': files('fraction_field_element.pyx'), + 'integer': files('integer.pyx'), + 'integer_ring': files('integer_ring.pyx'), + 'laurent_series_ring_element': files('laurent_series_ring_element.pyx'), + 'morphism': files('morphism.pyx'), + 'noncommutative_ideals': files('noncommutative_ideals.pyx'), + 'power_series_mpoly': files('power_series_mpoly.pyx'), + 'power_series_pari': files('power_series_pari.pyx'), + 'power_series_poly': files('power_series_poly.pyx'), + 'power_series_ring_element': files('power_series_ring_element.pyx'), + 'puiseux_series_ring_element': files('puiseux_series_ring_element.pyx'), + 'rational': files('rational.pyx'), + #'real_arb': files('real_arb.pyx'), - needs arb + 'real_double': files('real_double.pyx'), + 'real_double_element_gsl': files('real_double_element_gsl.pyx'), + 'real_interval_absolute': files('real_interval_absolute.pyx'), + 'real_lazy': files('real_lazy.pyx'), + 'real_mpfi': files('real_mpfi.pyx'), + 'real_mpfr': files('real_mpfr.pyx'), + 'ring': files('ring.pyx'), + 'ring_extension': files('ring_extension.pyx'), + 'ring_extension_conversion': files('ring_extension_conversion.pyx'), + 'ring_extension_element': files('ring_extension_element.pyx'), + 'ring_extension_morphism': files('ring_extension_morphism.pyx'), + 'sum_of_squares': files('sum_of_squares.pyx'), + 'tate_algebra_element': files('tate_algebra_element.pyx'), + 'tate_algebra_ideal': files('tate_algebra_ideal.pyx'), +} + +mpfi = declare_dependency( + dependencies: [ + cc.find_library('mpfi'), + ] +) + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings', + install: true, + #cython_args: ['-I', inc_gsl], + include_directories: [inc_cpython, inc_flint, inc_gsl], + dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, gmp], + ) +endforeach From a1dc9369018a5eaf21b4df1b4b8a2f211ebcd6ed Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 29 Oct 2023 16:14:58 +0000 Subject: [PATCH 017/161] readd init --- src/sage/structure/__init__.py | 2 ++ src/sage/structure/meson.build | 1 + 2 files changed, 3 insertions(+) create mode 100644 src/sage/structure/__init__.py diff --git a/src/sage/structure/__init__.py b/src/sage/structure/__init__.py new file mode 100644 index 00000000000..006aa3024c6 --- /dev/null +++ b/src/sage/structure/__init__.py @@ -0,0 +1,2 @@ +# Resolve a cyclic import +import sage.structure.element \ No newline at end of file diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index 05d1c095874..4dd15dd48c6 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -1,4 +1,5 @@ py.install_sources( + '__init__.py', 'all.py', 'coerce_exceptions.py', 'dynamic_class.py', From 8a2cc9ce47b70b1bb6d9091ac9d3fe555f426545 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 12:10:59 +0000 Subject: [PATCH 018/161] Fix build (kind of) --- src/sage/categories/category_singleton.pyx | 2 ++ src/sage/cpython/python_debug.pxd | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sage/categories/category_singleton.pyx b/src/sage/categories/category_singleton.pyx index 543ce0375f7..5d0acb90891 100644 --- a/src/sage/categories/category_singleton.pyx +++ b/src/sage/categories/category_singleton.pyx @@ -15,6 +15,8 @@ from sage.categories.category import Category from sage.structure.category_object cimport CategoryObject from sage.structure.dynamic_class import DynamicMetaclass +# I have no idea why this is necessary, but otherwise the type import fails (maybe because its shadowed by sage's cpython module?) +from cpython.method cimport PyMethod_Check from cpython.type cimport PyType_IsSubtype # This helper class is used to implement Category_singleton.__contains__ diff --git a/src/sage/cpython/python_debug.pxd b/src/sage/cpython/python_debug.pxd index 57057a3ff9f..a7a2f112d00 100644 --- a/src/sage/cpython/python_debug.pxd +++ b/src/sage/cpython/python_debug.pxd @@ -9,7 +9,7 @@ from cpython.ref cimport PyObject, PyTypeObject -cdef extern from "sage/cpython/python_debug.h": +cdef extern from "python_debug.h": # This is what is generally meant by "a debug build" of Python. # Implies Py_REF_DEBUG, Py_TRACE_REFS, and PYMALLOC_DEBUG (if From 9baf964a0e619a49e68aab7673ceeeed44c44190 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 12:20:38 +0000 Subject: [PATCH 019/161] Add meson to ci --- .github/workflows/ci-meson.yml | 87 ++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 .github/workflows/ci-meson.yml diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml new file mode 100644 index 00000000000..b8df3fe4516 --- /dev/null +++ b/.github/workflows/ci-meson.yml @@ -0,0 +1,87 @@ +name: Build & Test using Conda + +on: + push: + branches: + - master + - develop + pull_request: + workflow_dispatch: + # Allow to run manually + +concurrency: + # Cancel previous runs of this workflow for the same branch + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: Conda (Meson) + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: ${{ github.event_name == 'pull_request' }} + max-parallel: ${{ github.event_name == 'pull_request' && 2 || 6 }} + matrix: + os: [ubuntu-latest, macos-latest] + python: ['3.9', '3.10', '3.11'] + # Optional environment is disabled for now as its not yet working + # environment: [environment, environment-optional] + conda-env: [environment] + + steps: + - uses: actions/checkout@v4 + + - name: Merge CI fixes from sagemath/sage + run: | + .ci/merge-fixes.sh + env: + GH_TOKEN: ${{ github.token }} + + - name: Create conda environment files + run: ./bootstrap-conda + + - name: Cache conda packages + uses: actions/cache@v3 + with: + path: ~/conda_pkgs_dir + key: + ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11.yml') }} + + - name: Setup Conda environment + uses: conda-incubator/setup-miniconda@v2 + with: + python-version: ${{ matrix.python }} + miniforge-version: latest + use-mamba: true + channels: conda-forge + channel-priority: true + activate-environment: sage + environment-file: src/${{ matrix.conda-env }}-${{ matrix.python }}.yml + + - name: Print Conda environment + shell: bash -l {0} + run: | + conda info + conda list + + - name: Bootstrap + shell: bash -l {0} + run: ./bootstrap + + - name: Build + shell: bash -l {0} + run: | + # Compile as extra step for better error reporting + meson compile -j2 -C builddir + pip install --no-build-isolation --config-settings=builddir=builddir --editable . + + - name: Verify dependencies + if: success() || failure() + shell: bash -l {0} + run: pip check + + - name: Test + if: success() || failure() + shell: bash -l {0} + run: python -m pytest -c src/tox.ini --doctest-modules src From 21c4c9a0cdf65812e4e1fb2ee87127cccffba1f5 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 12:30:35 +0000 Subject: [PATCH 020/161] improve ci --- .github/workflows/ci-meson.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index b8df3fe4516..0a5e490344b 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -1,4 +1,4 @@ -name: Build & Test using Conda +name: Build & Test using Conda (Meson) on: push: @@ -16,7 +16,7 @@ concurrency: jobs: test: - name: Conda (Meson) + name: Meson runs-on: ${{ matrix.os }} strategy: @@ -73,13 +73,9 @@ jobs: shell: bash -l {0} run: | # Compile as extra step for better error reporting + meson setup builddir meson compile -j2 -C builddir pip install --no-build-isolation --config-settings=builddir=builddir --editable . - - - name: Verify dependencies - if: success() || failure() - shell: bash -l {0} - run: pip check - name: Test if: success() || failure() From c3cdc3137a7eae9caa1bf6d7d07effffc0879a19 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 12:34:19 +0000 Subject: [PATCH 021/161] don't apply ci fixes --- .github/workflows/ci-meson.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 0a5e490344b..7e8814154dd 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -32,12 +32,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Merge CI fixes from sagemath/sage - run: | - .ci/merge-fixes.sh - env: - GH_TOKEN: ${{ github.token }} - - name: Create conda environment files run: ./bootstrap-conda From 52bc4c6cf8cf934eb0c622120541b2c2ea228011 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 12:43:57 +0000 Subject: [PATCH 022/161] add pytest to conda env --- bootstrap-conda | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bootstrap-conda b/bootstrap-conda index 447a268f04d..9573a8917ed 100755 --- a/bootstrap-conda +++ b/bootstrap-conda @@ -99,7 +99,8 @@ echo >&2 $0:$LINENO: generate conda environment files ( sed 's/name: sage-build/name: sage/' environment-template.yml echo " - meson" - echo " - meson-python" + echo " - meson-python" + echo " - pytest" echo " # Additional packages providing all dependencies for the Sage library" for pkg in $SAGELIB_SYSTEM_PACKAGES; do echo " - $pkg" From c52827e9f6c1293fb88ee3a9c22d5c16bd1f6bfb Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 16:13:22 +0000 Subject: [PATCH 023/161] improve generate meson script --- generate-meson.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generate-meson.py b/generate-meson.py index ac77b336d7f..4a8351217c1 100644 --- a/generate-meson.py +++ b/generate-meson.py @@ -54,6 +54,6 @@ meson_build.write(" sources: pyx,\n") meson_build.write(f" subdir: '{folder_rel_to_src}',\n") meson_build.write(' install: true,\n') - meson_build.write(' dependencies: py_dep,\n') + meson_build.write(' dependencies: [py_dep],\n') meson_build.write(' )\n') meson_build.write('endforeach\n') From 677c1f1a0dcd681b4b8efd28a0ebf85298fc6896 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 16:13:40 +0000 Subject: [PATCH 024/161] use sage to run pytest in ci --- .github/workflows/ci-meson.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 7e8814154dd..fd577c67b79 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -74,4 +74,4 @@ jobs: - name: Test if: success() || failure() shell: bash -l {0} - run: python -m pytest -c src/tox.ini --doctest-modules src + run: ./sage -m pytest -c src/tox.ini --doctest-modules src From fdd1655216cec5f04ba48ba37e2a0f4dbfb3d381 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 30 Oct 2023 17:44:45 +0000 Subject: [PATCH 025/161] add more meson configs --- src/meson.build | 2 + src/sage/__init__.py | 2 + src/sage/meson.build | 1 + src/sage/modules/meson.build | 56 +++++++++++++ src/sage/rings/__init__.py | 1 + src/sage/rings/convert/meson.build | 18 +++++ src/sage/rings/finite_rings/meson.build | 52 ++++++++++++ src/sage/rings/function_field/meson.build | 44 ++++++++++ src/sage/rings/meson.build | 12 +++ src/sage/rings/number_field/meson.build | 56 +++++++++++++ src/sage/rings/padics/meson.build | 75 ++++++++++++++++++ src/sage/rings/polynomial/meson.build | 97 +++++++++++++++++++++++ src/sage/rings/semirings/meson.build | 19 +++++ src/sage/structure/meson.build | 2 +- 14 files changed, 436 insertions(+), 1 deletion(-) create mode 100644 src/sage/__init__.py create mode 100644 src/sage/modules/meson.build create mode 100644 src/sage/rings/__init__.py create mode 100644 src/sage/rings/convert/meson.build create mode 100644 src/sage/rings/finite_rings/meson.build create mode 100644 src/sage/rings/function_field/meson.build create mode 100644 src/sage/rings/number_field/meson.build create mode 100644 src/sage/rings/padics/meson.build create mode 100644 src/sage/rings/polynomial/meson.build create mode 100644 src/sage/rings/semirings/meson.build diff --git a/src/meson.build b/src/meson.build index 3a023d92c68..e49de24cb18 100644 --- a/src/meson.build +++ b/src/meson.build @@ -92,8 +92,10 @@ add_project_arguments('-X preliminary_late_includes_cy28=True', language : 'cyth inc_cpython = include_directories('sage/cpython') inc_rings = include_directories('sage/rings') +inc_rings_finite = include_directories('sage/rings/finite_rings') inc_flint = include_directories('sage/libs/flint') inc_gsl = include_directories('sage/libs/gsl') +inc_ntl = include_directories('sage/libs/ntl') inc_data_structures = include_directories('sage/data_structures') inc_ext = include_directories('sage/ext') inc_src = include_directories('.') diff --git a/src/sage/__init__.py b/src/sage/__init__.py new file mode 100644 index 00000000000..f6eb5289696 --- /dev/null +++ b/src/sage/__init__.py @@ -0,0 +1,2 @@ +# This is only here to mark the sage directory as a Python package +# (so that cython determines the correct module name) diff --git a/src/sage/meson.build b/src/sage/meson.build index 327cf4bf11c..ca59eac42a4 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -39,3 +39,4 @@ subdir('data_structures') subdir('rings') subdir('arith') subdir('combinat') +subdir('modules') diff --git a/src/sage/modules/meson.build b/src/sage/modules/meson.build new file mode 100644 index 00000000000..b257bd523f7 --- /dev/null +++ b/src/sage/modules/meson.build @@ -0,0 +1,56 @@ +py.install_sources( + 'all.py', + 'complex_double_vector.py', + 'diamond_cutting.py', + 'filtered_vector_space.py', + 'free_module.py', + 'free_module_homspace.py', + 'free_module_integer.py', + 'free_module_morphism.py', + 'free_quadratic_module.py', + 'free_quadratic_module_integer_symmetric.py', + 'matrix_morphism.py', + 'misc.py', + 'module_functors.py', + 'multi_filtered_vector_space.py', + 'quotient_module.py', + 'real_double_vector.py', + 'submodule.py', + 'tensor_operations.py', + 'torsion_quadratic_module.py', + 'tutorial_free_modules.py', + 'vector_callable_symbolic_dense.py', + 'vector_space_homspace.py', + 'vector_space_morphism.py', + 'vector_symbolic_dense.py', + 'vector_symbolic_sparse.py', + subdir: 'sage/modules', +) + +extension_data = { + 'finite_submodule_iter': files('finite_submodule_iter.pyx'), + 'free_module_element': files('free_module_element.pyx'), + 'module': files('module.pyx'), + 'vector_complex_double_dense': files('vector_complex_double_dense.pyx'), + 'vector_double_dense': files('vector_double_dense.pyx'), + 'vector_integer_dense': files('vector_integer_dense.pyx'), + 'vector_integer_sparse': files('vector_integer_sparse.pyx'), + 'vector_mod2_dense': files('vector_mod2_dense.pyx'), + 'vector_modn_dense': files('vector_modn_dense.pyx'), + 'vector_modn_sparse': files('vector_modn_sparse.pyx'), + 'vector_numpy_dense': files('vector_numpy_dense.pyx'), + 'vector_numpy_integer_dense': files('vector_numpy_integer_dense.pyx'), + 'vector_rational_dense': files('vector_rational_dense.pyx'), + 'vector_rational_sparse': files('vector_rational_sparse.pyx'), + 'vector_real_double_dense': files('vector_real_double_dense.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/modules', + install: true, + include_directories: [inc_cpython, inc_numpy, inc_rings_finite, inc_ext], + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/rings/__init__.py b/src/sage/rings/__init__.py new file mode 100644 index 00000000000..5ef917c1263 --- /dev/null +++ b/src/sage/rings/__init__.py @@ -0,0 +1 @@ +# To make cython create the correct module name diff --git a/src/sage/rings/convert/meson.build b/src/sage/rings/convert/meson.build new file mode 100644 index 00000000000..cd2fbcdf7a5 --- /dev/null +++ b/src/sage/rings/convert/meson.build @@ -0,0 +1,18 @@ +py.install_sources( + 'all.py', + subdir: 'sage/rings/convert', +) + +extension_data = { + 'mpfi': files('mpfi.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/convert', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cypari2], + ) +endforeach diff --git a/src/sage/rings/finite_rings/meson.build b/src/sage/rings/finite_rings/meson.build new file mode 100644 index 00000000000..cab9f9a7b7e --- /dev/null +++ b/src/sage/rings/finite_rings/meson.build @@ -0,0 +1,52 @@ +py.install_sources( + 'all.py', + 'conway_polynomials.py', + 'finite_field_constructor.py', + 'finite_field_givaro.py', + 'finite_field_ntl_gf2e.py', + 'finite_field_pari_ffelt.py', + 'finite_field_prime_modn.py', + 'galois_group.py', + 'homset.py', + 'integer_mod_ring.py', + 'maps_finite_field.py', + subdir: 'sage/rings/finite_rings', +) + +extension_data_cpp = { + 'element_givaro': files('element_givaro.pyx'), + 'element_ntl_gf2e': files('element_ntl_gf2e.pyx'), + 'hom_finite_field': files('hom_finite_field.pyx'), + 'hom_finite_field_givaro': files('hom_finite_field_givaro.pyx'), +} +extension_data = { + 'element_base': files('element_base.pyx'), + 'element_pari_ffelt': files('element_pari_ffelt.pyx'), + 'finite_field_base': files('finite_field_base.pyx'), + 'hom_prime_finite_field': files('hom_prime_finite_field.pyx'), + 'integer_mod': files('integer_mod.pyx'), + 'residue_field': files('residue_field.pyx'), + 'residue_field_givaro': files('residue_field_givaro.pyx'), + 'residue_field_ntl_gf2e': files('residue_field_ntl_gf2e.pyx'), + 'residue_field_pari_ffelt': files('residue_field_pari_ffelt.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/finite_rings', + install: true, + include_directories: [inc_cpython, inc_ntl, inc_rings], + dependencies: [py_dep, cysignals, cypari2], + ) +endforeach +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/finite_rings', + install: true, + override_options: ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ntl, inc_rings, inc_ext], + dependencies: [py_dep, cysignals, cypari2], + ) +endforeach diff --git a/src/sage/rings/function_field/meson.build b/src/sage/rings/function_field/meson.build new file mode 100644 index 00000000000..5a2013e6844 --- /dev/null +++ b/src/sage/rings/function_field/meson.build @@ -0,0 +1,44 @@ +py.install_sources( + 'all.py', + 'constructor.py', + 'derivations.py', + 'derivations_polymod.py', + 'derivations_rational.py', + 'differential.py', + 'divisor.py', + 'extensions.py', + 'function_field.py', + 'function_field_polymod.py', + 'function_field_rational.py', + 'ideal.py', + 'ideal_polymod.py', + 'ideal_rational.py', + 'maps.py', + 'order.py', + 'order_basis.py', + 'order_polymod.py', + 'order_rational.py', + 'place.py', + 'place_polymod.py', + 'place_rational.py', + 'valuation.py', + 'valuation_ring.py', + subdir: 'sage/rings/function_field', +) + +extension_data = { + 'element': files('element.pyx'), + 'element_polymod': files('element_polymod.pyx'), + 'element_rational': files('element_rational.pyx'), + 'hermite_form_polynomial': files('hermite_form_polynomial.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/function_field', + install: true, + include_directories: [inc_cpython, inc_ntl], + dependencies: [py_dep], + ) +endforeach diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index eeb3e4e5480..05d3b602830 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -103,3 +103,15 @@ foreach name, pyx : extension_data dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, gmp], ) endforeach + +install_subdir('asymptotic', install_dir: sage_install_dir / 'rings') +install_subdir('invariants', install_dir: sage_install_dir / 'rings') +install_subdir('valuation', install_dir: sage_install_dir / 'rings') + +subdir('convert') +subdir('finite_rings') +subdir('function_field') +subdir('number_field') +subdir('padics') +subdir('polynomial') +subdir('semirings') diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build new file mode 100644 index 00000000000..6a1941bccf7 --- /dev/null +++ b/src/sage/rings/number_field/meson.build @@ -0,0 +1,56 @@ +py.install_sources( + 'S_unit_solver.py', + 'all.py', + 'bdd_height.py', + 'class_group.py', + 'galois_group.py', + 'homset.py', + 'maps.py', + 'morphism.py', + 'number_field.py', + 'number_field_ideal.py', + 'number_field_ideal_rel.py', + 'number_field_rel.py', + 'order.py', + 'selmer_group.py', + 'small_primes_of_degree_one.py', + 'splitting_field.py', + 'structure.py', + 'totallyreal_phc.py', + 'totallyreal_rel.py', + 'unit_group.py', + subdir: 'sage/rings/number_field', +) + +extension_data_cpp = { + 'number_field_element': files('number_field_element.pyx'), +} + +extension_data = { + 'number_field_base': files('number_field_base.pyx'), + 'number_field_element_base': files('number_field_element_base.pyx'), + #'number_field_element_quadratic': files('number_field_element_quadratic.pyx'), - needs arb + 'number_field_morphisms': files('number_field_morphisms.pyx'), + 'totallyreal': files('totallyreal.pyx'), + 'totallyreal_data': files('totallyreal_data.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/number_field', + install: true, + include_directories: [inc_cpython, inc_ntl], + dependencies: [py_dep, cysignals, cypari2], + ) +endforeach +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/number_field', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ntl], + dependencies: [py_dep, cysignals, cypari2], + ) +endforeach diff --git a/src/sage/rings/padics/meson.build b/src/sage/rings/padics/meson.build new file mode 100644 index 00000000000..b0549872acd --- /dev/null +++ b/src/sage/rings/padics/meson.build @@ -0,0 +1,75 @@ +py.install_sources( + 'all.py', + 'eisenstein_extension_generic.py', + 'factory.py', + 'generic_nodes.py', + 'lattice_precision.py', + 'local_generic.py', + 'misc.py', + 'padic_base_generic.py', + 'padic_base_leaves.py', + 'padic_extension_generic.py', + 'padic_extension_leaves.py', + 'padic_generic.py', + 'padic_lattice_element.py', + 'padic_valuation.py', + 'precision_error.py', + 'relative_extension_leaves.py', + 'tests.py', + 'tutorial.py', + 'unramified_extension_generic.py', + subdir: 'sage/rings/padics', +) + +extension_data_cpp = { + 'padic_ZZ_pX_CA_element': files('padic_ZZ_pX_CA_element.pyx'), + 'padic_ZZ_pX_CR_element': files('padic_ZZ_pX_CR_element.pyx'), + 'padic_ZZ_pX_FM_element': files('padic_ZZ_pX_FM_element.pyx'), + 'padic_ZZ_pX_element': files('padic_ZZ_pX_element.pyx'), + 'padic_ext_element': files('padic_ext_element.pyx'), + 'pow_computer': files('pow_computer.pyx'), + 'pow_computer_ext': files('pow_computer_ext.pyx'), +} +extension_data = { + 'common_conversion': files('common_conversion.pyx'), + 'local_generic_element': files('local_generic_element.pyx'), + 'morphism': files('morphism.pyx'), + 'padic_capped_absolute_element': files('padic_capped_absolute_element.pyx'), + 'padic_capped_relative_element': files('padic_capped_relative_element.pyx'), + 'padic_fixed_mod_element': files('padic_fixed_mod_element.pyx'), + 'padic_floating_point_element': files('padic_floating_point_element.pyx'), + 'padic_generic_element': files('padic_generic_element.pyx'), + 'padic_printing': files('padic_printing.pyx'), + #'padic_relaxed_element': files('padic_relaxed_element.pyx'), - compilation error (needs libs/linkages) + 'padic_relaxed_errors': files('padic_relaxed_errors.pyx'), + 'pow_computer_flint': files('pow_computer_flint.pyx'), + 'pow_computer_relative': files('pow_computer_relative.pyx'), + 'qadic_flint_CA': files('qadic_flint_CA.pyx'), + 'qadic_flint_CR': files('qadic_flint_CR.pyx'), + 'qadic_flint_FM': files('qadic_flint_FM.pyx'), + 'qadic_flint_FP': files('qadic_flint_FP.pyx'), + 'relative_ramified_CA': files('relative_ramified_CA.pyx'), + 'relative_ramified_CR': files('relative_ramified_CR.pyx'), + 'relative_ramified_FM': files('relative_ramified_FM.pyx'), + 'relative_ramified_FP': files('relative_ramified_FP.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/padics', + install: true, + include_directories: [inc_cpython, inc_ntl, inc_flint, inc_rings_finite, inc_ext], + dependencies: [py_dep, cypari2, cysignals], + ) +endforeach +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/padics', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ntl, inc_ext], + dependencies: [py_dep, cypari2, cysignals], + ) +endforeach diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build new file mode 100644 index 00000000000..ff267c5c886 --- /dev/null +++ b/src/sage/rings/polynomial/meson.build @@ -0,0 +1,97 @@ +py.install_sources( + 'all.py', + 'binary_form_reduce.py', + 'complex_roots.py', + 'convolution.py', + 'flatten.py', + 'groebner_fan.py', + 'ideal.py', + 'infinite_polynomial_element.py', + 'infinite_polynomial_ring.py', + 'integer_valued_polynomials.py', + 'laurent_polynomial_ideal.py', + 'laurent_polynomial_ring.py', + 'laurent_polynomial_ring_base.py', + 'msolve.py', + 'multi_polynomial_element.py', + 'multi_polynomial_ideal.py', + 'multi_polynomial_ring.py', + 'multi_polynomial_sequence.py', + 'omega.py', + 'ore_function_element.py', + 'ore_function_field.py', + 'ore_polynomial_ring.py', + 'polynomial_element_generic.py', + 'polynomial_fateman.py', + 'polynomial_quotient_ring.py', + 'polynomial_quotient_ring_element.py', + 'polynomial_ring.py', + 'polynomial_ring_constructor.py', + 'polynomial_singular_interface.py', + 'skew_polynomial_ring.py', + 'symmetric_ideal.py', + 'term_order.py', + 'toy_buchberger.py', + 'toy_d_basis.py', + 'toy_variety.py', + subdir: 'sage/rings/polynomial', +) + +extension_data_cpp = { + 'multi_polynomial_ideal_libsingular': files('multi_polynomial_ideal_libsingular.pyx'), + 'multi_polynomial_libsingular': files('multi_polynomial_libsingular.pyx'), + 'polynomial_gf2x': files('polynomial_gf2x.pyx'), + #'polynomial_integer_dense_flint': files('polynomial_integer_dense_flint.pyx'), - needs arb + 'polynomial_integer_dense_ntl': files('polynomial_integer_dense_ntl.pyx'), + 'polynomial_modn_dense_ntl': files('polynomial_modn_dense_ntl.pyx'), + 'polynomial_zz_pex': files('polynomial_zz_pex.pyx'), +} +extension_data = { + 'commutative_polynomial': files('commutative_polynomial.pyx'), + 'cyclotomic': files('cyclotomic.pyx'), + 'evaluation_flint': files('evaluation_flint.pyx'), + 'evaluation_ntl': files('evaluation_ntl.pyx'), + 'hilbert': files('hilbert.pyx'), + 'laurent_polynomial': files('laurent_polynomial.pyx'), + 'laurent_polynomial_mpair': files('laurent_polynomial_mpair.pyx'), + 'multi_polynomial': files('multi_polynomial.pyx'), + 'multi_polynomial_ring_base': files('multi_polynomial_ring_base.pyx'), + 'ore_polynomial_element': files('ore_polynomial_element.pyx'), + #'plural': files('plural.pyx'), - compile error + 'polydict': files('polydict.pyx'), + 'polynomial_compiled': files('polynomial_compiled.pyx'), + #'polynomial_complex_arb': files('polynomial_complex_arb.pyx'), - needs arb + 'polynomial_element': files('polynomial_element.pyx'), + 'polynomial_number_field': files('polynomial_number_field.pyx'), + #'polynomial_rational_flint': files('polynomial_rational_flint.pyx'), - needs arb + 'polynomial_real_mpfr_dense': files('polynomial_real_mpfr_dense.pyx'), + 'polynomial_ring_homomorphism': files('polynomial_ring_homomorphism.pyx'), + 'polynomial_zmod_flint': files('polynomial_zmod_flint.pyx'), + 'real_roots': files('real_roots.pyx'), + 'refine_root': files('refine_root.pyx'), + 'skew_polynomial_element': files('skew_polynomial_element.pyx'), + 'skew_polynomial_finite_field': files('skew_polynomial_finite_field.pyx'), + 'skew_polynomial_finite_order': files('skew_polynomial_finite_order.pyx'), + 'symmetric_reduction': files('symmetric_reduction.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/polynomial', + install: true, + include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings, inc_numpy, inc_ext], + dependencies: [py_dep, cysignals, cypari2], + ) +endforeach + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/polynomial', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings_finite, inc_ext], + dependencies: [py_dep, cysignals, cypari2], + ) +endforeach diff --git a/src/sage/rings/semirings/meson.build b/src/sage/rings/semirings/meson.build new file mode 100644 index 00000000000..0180e4c3059 --- /dev/null +++ b/src/sage/rings/semirings/meson.build @@ -0,0 +1,19 @@ +py.install_sources( + 'all.py', + 'non_negative_integer_semiring.py', + subdir: 'sage/rings/semirings', +) + +extension_data = { + 'tropical_semiring': files('tropical_semiring.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/semirings', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep], + ) +endforeach diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index 4dd15dd48c6..7ea0c457413 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -20,7 +20,7 @@ py.install_sources( 'unique_representation.py', subdir: 'sage/structure', ) -install_subdir('proof', install_dir: sage_install_dir / 'structure' / 'proof') +install_subdir('proof', install_dir: sage_install_dir / 'structure') extension_data = { 'category_object': files('category_object.pyx'), From 119fcfa65f270219b55d12381580a3a26bc25a1d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 31 Oct 2023 00:02:58 +0000 Subject: [PATCH 026/161] add version to pyproject.toml --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 03f93330ac4..1d197d695b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,3 +4,7 @@ requires = ['meson-python', 'cython>=3.0.0'] [project] name = 'sagemath' +dynamic = ["version"] + +[tool.setuptools.dynamic] +version = {file = ["VERSION.txt"]} From 0760fb2fd7f563d7d7e8454105a8dcf0867e65ac Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 31 Oct 2023 00:34:44 +0000 Subject: [PATCH 027/161] fix test command in ci --- .github/workflows/ci-meson.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index fd577c67b79..de268f733c2 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -66,12 +66,9 @@ jobs: - name: Build shell: bash -l {0} run: | - # Compile as extra step for better error reporting - meson setup builddir - meson compile -j2 -C builddir pip install --no-build-isolation --config-settings=builddir=builddir --editable . - name: Test if: success() || failure() shell: bash -l {0} - run: ./sage -m pytest -c src/tox.ini --doctest-modules src + run: ./sage -python -m pytest -c src/tox.ini --doctest-modules src From f25cbfaef30a2f79bfe2c26972ae02791747d775 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 31 Oct 2023 04:05:31 +0000 Subject: [PATCH 028/161] add more meson build files --- src/meson.build | 11 +++ src/sage/arith/meson.build | 2 +- src/sage/data_structures/__init__.py | 1 + src/sage/data_structures/meson.build | 2 +- src/sage/ext/interpreters/meson.build | 35 ++++++++++ src/sage/ext/meson.build | 23 +++++++ src/sage/interfaces/meson.build | 76 +++++++++++++++++++++ src/sage/libs/meson.build | 18 ++++- src/sage/libs/mpmath/meson.build | 22 ++++++ src/sage/libs/ntl/meson.build | 40 +++++++++++ src/sage/libs/pari/meson.build | 25 +++++++ src/sage/libs/symmetrica/meson.build | 25 +++++++ src/sage/meson.build | 5 ++ src/sage/rings/finite_rings/meson.build | 2 +- src/sage/rings/meson.build | 3 +- src/sage/rings/polynomial/meson.build | 4 ++ src/sage/rings/polynomial/pbori/meson.build | 43 ++++++++++++ src/sage/rings/polynomial/weil/meson.build | 18 +++++ src/sage/tests/meson.build | 54 +++++++++++++++ 19 files changed, 404 insertions(+), 5 deletions(-) create mode 100644 src/sage/data_structures/__init__.py create mode 100644 src/sage/ext/interpreters/meson.build create mode 100644 src/sage/ext/meson.build create mode 100644 src/sage/interfaces/meson.build create mode 100644 src/sage/libs/mpmath/meson.build create mode 100644 src/sage/libs/ntl/meson.build create mode 100644 src/sage/libs/pari/meson.build create mode 100644 src/sage/libs/symmetrica/meson.build create mode 100644 src/sage/rings/polynomial/pbori/meson.build create mode 100644 src/sage/rings/polynomial/weil/meson.build create mode 100644 src/sage/tests/meson.build diff --git a/src/meson.build b/src/meson.build index e49de24cb18..b73764d95dc 100644 --- a/src/meson.build +++ b/src/meson.build @@ -56,6 +56,17 @@ print(cypari2.__file__.replace('__init__.py', '')) cypari2 = declare_dependency( include_directories: inc_cypari2, ) +pari = declare_dependency( + dependencies: [ + cc.find_library('pari'), + ] +) + +mpfr = declare_dependency( + dependencies: [ + cc.find_library('mpfr'), + ] +) # It's strange but cython cannot find its own include files # so we find them ourselves, and add them to the include path diff --git a/src/sage/arith/meson.build b/src/sage/arith/meson.build index c987f21b7e4..c9f26a1d1c5 100644 --- a/src/sage/arith/meson.build +++ b/src/sage/arith/meson.build @@ -7,7 +7,7 @@ py.install_sources( extension_data = { 'functions': files('functions.pyx'), - 'multi_modular': files('multi_modular.pyx'),# - compilation error + 'multi_modular': files('multi_modular.pyx'), 'numerical_approx': files('numerical_approx.pyx'), 'power': files('power.pyx'), 'rational_reconstruction': files('rational_reconstruction.pyx'), diff --git a/src/sage/data_structures/__init__.py b/src/sage/data_structures/__init__.py new file mode 100644 index 00000000000..a347df6f046 --- /dev/null +++ b/src/sage/data_structures/__init__.py @@ -0,0 +1 @@ +# So that cython creates the correct module names diff --git a/src/sage/data_structures/meson.build b/src/sage/data_structures/meson.build index a33c5904eb2..d79435dcd6d 100644 --- a/src/sage/data_structures/meson.build +++ b/src/sage/data_structures/meson.build @@ -20,6 +20,6 @@ foreach name, pyx : extension_data subdir: 'sage/data_structures', install: true, include_directories: [inc_cpython], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build new file mode 100644 index 00000000000..7fc1a937831 --- /dev/null +++ b/src/sage/ext/interpreters/meson.build @@ -0,0 +1,35 @@ +py.install_sources( + 'all.py', + subdir: 'sage/ext/interpreters', +) + +extension_data = { + #'wrapper_cc': files('wrapper_cc.pyx'), - compiliation error + #'wrapper_cdf': files('wrapper_cdf.pyx'), - compiliation error + #'wrapper_el': files('wrapper_el.pyx'), - compiliation error + 'wrapper_py': files('wrapper_py.pyx'), + 'wrapper_rdf': files('wrapper_rdf.pyx'), + #'wrapper_rr': files('wrapper_rr.pyx'), - compiliation error +} +extension_data_cpp = { +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/ext/interpreters', + install: true, + include_directories: [inc_cpython, inc_src], + dependencies: [py_dep, cypari2, cysignals], + ) +endforeach +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/ext/interpreters', + install: true, + override_options: ['cython_language=cpp'], + include_directories: [inc_cpython, inc_src], + dependencies: [py_dep, cypari2, cysignals], + ) +endforeach diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build new file mode 100644 index 00000000000..b03aaa368ee --- /dev/null +++ b/src/sage/ext/meson.build @@ -0,0 +1,23 @@ +py.install_sources( + 'all__sagemath_objects.py', + subdir: 'sage/ext', +) + +extension_data = { + 'fast_callable': files('fast_callable.pyx'), + 'fast_eval': files('fast_eval.pyx'), + 'memory': files('memory.pyx'), + 'memory_allocator': files('memory_allocator.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/ext', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, cysignals, cypari2, gmp], + ) +endforeach + +subdir('interpreters') diff --git a/src/sage/interfaces/meson.build b/src/sage/interfaces/meson.build new file mode 100644 index 00000000000..f3a4c50e13d --- /dev/null +++ b/src/sage/interfaces/meson.build @@ -0,0 +1,76 @@ +py.install_sources( + 'abc.py', + 'all.py', + 'all__sagemath_polyhedra.py', + 'axiom.py', + 'chomp.py', + 'cleaner.py', + 'ecm.py', + 'expect.py', + 'four_ti_2.py', + 'fricas.py', + 'frobby.py', + 'gap.py', + 'gap3.py', + 'gap_workspace.py', + 'genus2reduction.py', + 'gfan.py', + 'giac.py', + 'gnuplot.py', + 'gp.py', + 'interface.py', + 'jmoldata.py', + 'kash.py', + 'kenzo.py', + 'latte.py', + 'lie.py', + 'lisp.py', + 'macaulay2.py', + 'magma.py', + 'magma_free.py', + 'maple.py', + 'mathematica.py', + 'mathics.py', + 'matlab.py', + 'maxima.py', + 'maxima_abstract.py', + 'maxima_lib.py', + 'mupad.py', + 'mwrank.py', + 'octave.py', + 'phc.py', + 'polymake.py', + 'povray.py', + 'psage.py', + 'qepcad.py', + 'qsieve.py', + 'quit.py', + 'r.py', + 'read_data.py', + 'rubik.py', + 'sage0.py', + 'scilab.py', + 'singular.py', + 'sympy.py', + 'sympy_wrapper.py', + 'tab_completion.py', + 'tachyon.py', + 'tests.py', + 'tides.py', + subdir: 'sage/interfaces', +) + +extension_data = { + 'process': files('process.pyx'), + 'sagespawn': files('sagespawn.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/interfaces', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep], + ) +endforeach diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index d75b624652c..aebda9d93e4 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -7,8 +7,10 @@ py.install_sources( subdir: 'sage/libs', ) +extension_data_cpp = { + 'braiding': files('braiding.pyx'), +} extension_data = { - #'braiding': files('braiding.pyx'),# - compile error (ios) 'ecl': files('ecl.pyx'), 'homfly': files('homfly.pyx'), 'libecm': files('libecm.pyx'), @@ -32,7 +34,21 @@ foreach name, pyx : extension_data dependencies: dependencies, ) endforeach +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython], + dependencies: dependencies, + ) +endforeach subdir('gmp') subdir('gsl') subdir('flint') +subdir('pari') +subdir('mpmath') +subdir('ntl') +subdir('symmetrica') diff --git a/src/sage/libs/mpmath/meson.build b/src/sage/libs/mpmath/meson.build new file mode 100644 index 00000000000..e581ea7161f --- /dev/null +++ b/src/sage/libs/mpmath/meson.build @@ -0,0 +1,22 @@ +py.install_sources( + '__init__.py', + 'all.py', + subdir: 'sage/libs/mpmath', +) + +extension_data = { + 'ext_impl': files('ext_impl.pyx'), + 'ext_libmp': files('ext_libmp.pyx'), + 'ext_main': files('ext_main.pyx'), + 'utils': files('utils.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/mpmath', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, cysignals, cypari2, gmp, mpfr], + ) +endforeach diff --git a/src/sage/libs/ntl/meson.build b/src/sage/libs/ntl/meson.build new file mode 100644 index 00000000000..ae5d9880c15 --- /dev/null +++ b/src/sage/libs/ntl/meson.build @@ -0,0 +1,40 @@ +py.install_sources( + '__init__.py', + 'all.py', + subdir: 'sage/libs/ntl', +) + +extension_data_cpp = { + 'convert': files('convert.pyx'), + 'error': files('error.pyx'), + 'ntl_GF2': files('ntl_GF2.pyx'), + 'ntl_GF2E': files('ntl_GF2E.pyx'), + 'ntl_GF2EContext': files('ntl_GF2EContext.pyx'), + 'ntl_GF2EX': files('ntl_GF2EX.pyx'), + 'ntl_GF2X': files('ntl_GF2X.pyx'), + 'ntl_ZZ': files('ntl_ZZ.pyx'), + 'ntl_ZZX': files('ntl_ZZX.pyx'), + 'ntl_ZZ_p': files('ntl_ZZ_p.pyx'), + 'ntl_ZZ_pContext': files('ntl_ZZ_pContext.pyx'), + 'ntl_ZZ_pE': files('ntl_ZZ_pE.pyx'), + 'ntl_ZZ_pEContext': files('ntl_ZZ_pEContext.pyx'), + 'ntl_ZZ_pEX': files('ntl_ZZ_pEX.pyx'), + 'ntl_ZZ_pX': files('ntl_ZZ_pX.pyx'), + 'ntl_lzz_p': files('ntl_lzz_p.pyx'), + 'ntl_lzz_pContext': files('ntl_lzz_pContext.pyx'), + 'ntl_lzz_pX': files('ntl_lzz_pX.pyx'), + 'ntl_mat_GF2': files('ntl_mat_GF2.pyx'), + 'ntl_mat_GF2E': files('ntl_mat_GF2E.pyx'), + 'ntl_mat_ZZ': files('ntl_mat_ZZ.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/ntl', + install: true, + include_directories: [inc_cpython, inc_ext, inc_rings_finite], + override_options: ['cython_language=cpp'], + dependencies: [py_dep, cysignals, ntl], + ) +endforeach diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build new file mode 100644 index 00000000000..93c5c33bac2 --- /dev/null +++ b/src/sage/libs/pari/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + '__init__.py', + 'all.py', + 'tests.py', + subdir: 'sage/libs/pari', +) + +extension_data = { + 'convert_flint': files('convert_flint.pyx'), + 'convert_gmp': files('convert_gmp.pyx'), + 'convert_sage': files('convert_sage.pyx'), + 'convert_sage_complex_double': files('convert_sage_complex_double.pyx'), + 'convert_sage_real_double': files('convert_sage_real_double.pyx'), + 'misc': files('misc.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/pari', + install: true, + include_directories: [inc_flint, inc_cpython], + dependencies: [py_dep, cypari2, cysignals], + ) +endforeach diff --git a/src/sage/libs/symmetrica/meson.build b/src/sage/libs/symmetrica/meson.build new file mode 100644 index 00000000000..178212c1a1e --- /dev/null +++ b/src/sage/libs/symmetrica/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + '__init__.py', + 'all.py', + subdir: 'sage/libs/symmetrica', +) + +extension_data = { + 'symmetrica': files('symmetrica.pyx'), +} + +# Cannot be found by pkg-config +symmetrica = declare_dependency( + dependencies: [ + cc.find_library('symmetrica'), + ] +) + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/symmetrica', + install: true, + dependencies: [py_dep, cysignals, symmetrica], + ) +endforeach diff --git a/src/sage/meson.build b/src/sage/meson.build index ca59eac42a4..85fb4c6abe5 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -5,6 +5,8 @@ no_processing = [ 'repl', 'doctest', 'features', + 'tensor', + 'topology', 'typeset', ] foreach package : no_processing @@ -40,3 +42,6 @@ subdir('rings') subdir('arith') subdir('combinat') subdir('modules') +subdir('tests') +subdir('ext') +subdir('interfaces') diff --git a/src/sage/rings/finite_rings/meson.build b/src/sage/rings/finite_rings/meson.build index cab9f9a7b7e..81289341f3b 100644 --- a/src/sage/rings/finite_rings/meson.build +++ b/src/sage/rings/finite_rings/meson.build @@ -37,7 +37,7 @@ foreach name, pyx : extension_data subdir: 'sage/rings/finite_rings', install: true, include_directories: [inc_cpython, inc_ntl, inc_rings], - dependencies: [py_dep, cysignals, cypari2], + dependencies: [py_dep, cysignals, cypari2, gmp], ) endforeach foreach name, pyx : extension_data_cpp diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 05d3b602830..83316ccc845 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -92,6 +92,7 @@ mpfi = declare_dependency( cc.find_library('mpfi'), ] ) +gsl = dependency('gsl') foreach name, pyx : extension_data py.extension_module(name, @@ -100,7 +101,7 @@ foreach name, pyx : extension_data install: true, #cython_args: ['-I', inc_gsl], include_directories: [inc_cpython, inc_flint, inc_gsl], - dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, gmp], + dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl], ) endforeach diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index ff267c5c886..a682949dbf6 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -36,6 +36,7 @@ py.install_sources( 'toy_variety.py', subdir: 'sage/rings/polynomial', ) +install_subdir('padics', install_dir: sage_install_dir / 'polynomial') extension_data_cpp = { 'multi_polynomial_ideal_libsingular': files('multi_polynomial_ideal_libsingular.pyx'), @@ -95,3 +96,6 @@ foreach name, pyx : extension_data_cpp dependencies: [py_dep, cysignals, cypari2], ) endforeach + +subdir('pbori') +subdir('weil') diff --git a/src/sage/rings/polynomial/pbori/meson.build b/src/sage/rings/polynomial/pbori/meson.build new file mode 100644 index 00000000000..25a800888d8 --- /dev/null +++ b/src/sage/rings/polynomial/pbori/meson.build @@ -0,0 +1,43 @@ +py.install_sources( + 'PyPolyBoRi.py', + '__init__.py', + 'blocks.py', + 'cnf.py', + 'easy_polynomials.py', + 'fglm.py', + 'frontend.py', + 'gbcore.py', + 'gbrefs.py', + 'heuristics.py', + 'interpolate.py', + 'interred.py', + 'll.py', + 'nf.py', + 'parallel.py', + 'randompoly.py', + 'rank.py', + 'specialsets.py', + 'statistics.py', + subdir: 'sage/rings/polynomial/pbori', +) + +extension_data_cpp = { + 'pbori': files('pbori.pyx'), +} + +brial = declare_dependency( + dependencies: [ + cc.find_library('brial', required: false), + ] +) + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/polynomial/pbori', + install: true, + include_directories: [inc_src, inc_cpython, inc_ext], + override_options: ['cython_language=cpp'], + dependencies: [py_dep, cysignals, brial], + ) +endforeach diff --git a/src/sage/rings/polynomial/weil/meson.build b/src/sage/rings/polynomial/weil/meson.build new file mode 100644 index 00000000000..f4d65307c3a --- /dev/null +++ b/src/sage/rings/polynomial/weil/meson.build @@ -0,0 +1,18 @@ +py.install_sources( + 'all.py', + subdir: 'sage/rings/polynomial/weil', +) + +extension_data = { + 'weil_polynomials': files('weil_polynomials.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings/polynomial/weil', + install: true, + include_directories: [inc_flint, inc_src, inc_cpython], + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/tests/meson.build b/src/sage/tests/meson.build new file mode 100644 index 00000000000..928e1666f71 --- /dev/null +++ b/src/sage/tests/meson.build @@ -0,0 +1,54 @@ +py.install_sources( + '__init__.py', + 'all.py', + 'article_heuberger_krenn_kropf_fsm-in-sage.py', + 'arxiv_0812_2725.py', + 'benchmark.py', + 'book_schilling_zabrocki_kschur_primer.py', + 'book_stein_ent.py', + 'book_stein_modform.py', + 'cmdline.py', + 'combinatorial_hopf_algebras.py', + 'finite_poset.py', + 'functools_partial_src.py', + 'gap_packages.py', + 'gosper-sum.py', + 'lazy_imports.py', + 'modular_group_cohomology.py', + 'numpy.py', + 'parigp.py', + 'startup.py', + 'symbolic-series.py', + 'sympy.py', + 'test_deprecation.py', + subdir: 'sage/tests', +) + +install_subdir('books', install_dir: sage_install_dir / 'tests') +install_subdir('memcheck', install_dir: sage_install_dir / 'tests') + +extension_data = { + 'cython': files('cython.pyx'), +} +extension_data_cpp = { + 'stl_vector': files('stl_vector.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/tests', + install: true, + dependencies: [py_dep], + ) +endforeach +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/tests', + install: true, + include_directories: [inc_cpython], + override_options : ['cython_language=cpp'], + dependencies: [py_dep, cysignals], + ) +endforeach From 5930aff3d61d44c02a3617eebe5877b10a5a6aec Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 31 Oct 2023 05:51:24 +0000 Subject: [PATCH 029/161] More meson files --- src/meson.build | 1 + src/sage/groups/meson.build | 48 +++++++++++++ src/sage/libs/pari/meson.build | 2 +- src/sage/matrix/__init__.py | 1 + src/sage/matrix/meson.build | 90 +++++++++++++++++++++++++ src/sage/meson.build | 2 + src/sage/rings/convert/meson.build | 2 +- src/sage/rings/meson.build | 21 ++++-- src/sage/rings/number_field/meson.build | 6 +- src/sage/rings/padics/meson.build | 4 +- src/sage/rings/polynomial/meson.build | 16 ++--- src/sage/structure/meson.build | 2 +- 12 files changed, 174 insertions(+), 21 deletions(-) create mode 100644 src/sage/groups/meson.build create mode 100644 src/sage/matrix/__init__.py create mode 100644 src/sage/matrix/meson.build diff --git a/src/meson.build b/src/meson.build index b73764d95dc..73b203404b1 100644 --- a/src/meson.build +++ b/src/meson.build @@ -107,6 +107,7 @@ inc_rings_finite = include_directories('sage/rings/finite_rings') inc_flint = include_directories('sage/libs/flint') inc_gsl = include_directories('sage/libs/gsl') inc_ntl = include_directories('sage/libs/ntl') +inc_arb = include_directories('sage/libs/arb') inc_data_structures = include_directories('sage/data_structures') inc_ext = include_directories('sage/ext') inc_src = include_directories('.') diff --git a/src/sage/groups/meson.build b/src/sage/groups/meson.build new file mode 100644 index 00000000000..e03f61b1ec4 --- /dev/null +++ b/src/sage/groups/meson.build @@ -0,0 +1,48 @@ +py.install_sources( + 'all.py', + 'artin.py', + 'braid.py', + 'cactus_group.py', + 'class_function.py', + 'conjugacy_classes.py', + 'cubic_braid.py', + 'finitely_presented.py', + 'finitely_presented_catalog.py', + 'finitely_presented_named.py', + 'fqf_orthogonal.py', + 'free_group.py', + 'galois_group.py', + 'generic.py', + 'group_exp.py', + 'group_semidirect_product.py', + 'groups_catalog.py', + 'indexed_free_group.py', + 'kernel_subgroup.py', + 'libgap_group.py', + 'libgap_mixin.py', + 'libgap_morphism.py', + 'pari_group.py', + 'raag.py', + subdir: 'sage/groups', +) +install_subdir('abelian_gps', install_dir: sage_install_dir / 'groups') +install_subdir('additive_abelian', install_dir: sage_install_dir / 'groups') +install_subdir('affine_gps', install_dir: sage_install_dir / 'groups') +install_subdir('lie_gps', install_dir: sage_install_dir / 'groups') +install_subdir('misc_gps', install_dir: sage_install_dir / 'groups') + +extension_data = { + 'group': files('group.pyx'), + 'libgap_wrapper': files('libgap_wrapper.pyx'), + 'old': files('old.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/groups', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep], + ) +endforeach diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build index 93c5c33bac2..45aeb21b4eb 100644 --- a/src/sage/libs/pari/meson.build +++ b/src/sage/libs/pari/meson.build @@ -20,6 +20,6 @@ foreach name, pyx : extension_data subdir: 'sage/libs/pari', install: true, include_directories: [inc_flint, inc_cpython], - dependencies: [py_dep, cypari2, cysignals], + dependencies: [py_dep, cypari2, cysignals, gmp], ) endforeach diff --git a/src/sage/matrix/__init__.py b/src/sage/matrix/__init__.py new file mode 100644 index 00000000000..165aea9af28 --- /dev/null +++ b/src/sage/matrix/__init__.py @@ -0,0 +1 @@ +# Because of relative imports diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build new file mode 100644 index 00000000000..8a4ef527163 --- /dev/null +++ b/src/sage/matrix/meson.build @@ -0,0 +1,90 @@ +py.install_sources( + 'all.py', + 'all__sagemath_meataxe.py', + 'benchmark.py', + 'berlekamp_massey.py', + 'compute_J_ideal.py', + 'docs.py', + 'matrix_integer_dense_hnf.py', + 'matrix_integer_dense_saturation.py', + 'matrix_misc.py', + 'matrix_space.py', + 'operation_table.py', + 'special.py', + 'symplectic_basis.py', + 'tests.py', + subdir: 'sage/matrix', +) + +# Cannot be found via pkg-config +meataxe = declare_dependency( + dependencies: [ + cc.find_library('meataxe', required: false), + ] +) + +extension_data = { + 'action': files('action.pyx'), + 'args': files('args.pyx'), + 'change_ring': files('change_ring.pyx'), + 'constructor': files('constructor.pyx'), + 'echelon_matrix': files('echelon_matrix.pyx'), + 'matrix0': files('matrix0.pyx'), + 'matrix1': files('matrix1.pyx'), + 'matrix2': files('matrix2.pyx'), + 'matrix_cdv': files('matrix_cdv.pyx'), + 'matrix_complex_ball_dense': files('matrix_complex_ball_dense.pyx'), + 'matrix_complex_double_dense': files('matrix_complex_double_dense.pyx'), + 'matrix_dense': files('matrix_dense.pyx'), + 'matrix_double_dense': files('matrix_double_dense.pyx'), + 'matrix_double_sparse': files('matrix_double_sparse.pyx'), + 'matrix_gap': files('matrix_gap.pyx'), + 'matrix_generic_dense': files('matrix_generic_dense.pyx'), + 'matrix_generic_sparse': files('matrix_generic_sparse.pyx'), + 'matrix_gf2e_dense': files('matrix_gf2e_dense.pyx'), + #'matrix_gfpn_dense': files('matrix_gfpn_dense.pyx'), - requires meataxe + 'matrix_integer_dense': files('matrix_integer_dense.pyx'), + 'matrix_mod2_dense': files('matrix_mod2_dense.pyx'), + #'matrix_mpolynomial_dense': files('matrix_mpolynomial_dense.pyx'), - compilation error + 'matrix_numpy_dense': files('matrix_numpy_dense.pyx'), + 'matrix_numpy_integer_dense': files('matrix_numpy_integer_dense.pyx'), + 'matrix_polynomial_dense': files('matrix_polynomial_dense.pyx'), + 'matrix_rational_sparse': files('matrix_rational_sparse.pyx'), + 'matrix_real_double_dense': files('matrix_real_double_dense.pyx'), + 'matrix_sparse': files('matrix_sparse.pyx'), + 'matrix_symbolic_dense': files('matrix_symbolic_dense.pyx'), + 'matrix_symbolic_sparse': files('matrix_symbolic_sparse.pyx'), + 'matrix_window': files('matrix_window.pyx'), + 'misc': files('misc.pyx'), + 'misc_flint': files('misc_flint.pyx'), + 'misc_mpfr': files('misc_mpfr.pyx'), + 'strassen': files('strassen.pyx'), +} +extension_data_cpp = { + 'matrix_cyclo_dense': files('matrix_cyclo_dense.pyx'), + 'matrix_modn_dense_double': files('matrix_modn_dense_double.pyx'), + 'matrix_modn_dense_float': files('matrix_modn_dense_float.pyx'), + 'matrix_integer_sparse': files('matrix_integer_sparse.pyx'), + 'matrix_modn_sparse': files('matrix_modn_sparse.pyx'), + 'matrix_rational_dense': files('matrix_rational_dense.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/matrix', + install: true, + include_directories: [inc_cpython, inc_numpy, inc_flint, inc_ext, inc_rings, inc_rings_finite, inc_arb, inc_ntl], + dependencies: [py_dep, cysignals, cypari2, gmp, mpfr], + ) +endforeach +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/matrix', + install: true, + override_options: ['cython_language=cpp'], + include_directories: [inc_cpython, inc_numpy, inc_flint, inc_ext, inc_rings_finite, inc_rings, inc_arb, inc_ntl], + dependencies: [py_dep, cysignals, cypari2, gmp, mpfr], + ) +endforeach diff --git a/src/sage/meson.build b/src/sage/meson.build index 85fb4c6abe5..daf388cc35a 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -45,3 +45,5 @@ subdir('modules') subdir('tests') subdir('ext') subdir('interfaces') +subdir('groups') +subdir('matrix') diff --git a/src/sage/rings/convert/meson.build b/src/sage/rings/convert/meson.build index cd2fbcdf7a5..a4dff8bd420 100644 --- a/src/sage/rings/convert/meson.build +++ b/src/sage/rings/convert/meson.build @@ -13,6 +13,6 @@ foreach name, pyx : extension_data subdir: 'sage/rings/convert', install: true, include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cypari2], + dependencies: [py_dep, cypari2, mpfi], ) endforeach diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 83316ccc845..a2efe401fbe 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -47,7 +47,7 @@ extension_data = { 'abc': files('abc.pyx'), #'bernmm': files('bernmm.pyx'), - compilation error #'bernoulli_mod_p': files('bernoulli_mod_p.pyx'), - compilation error - #'complex_arb': files('complex_arb.pyx'), - needs arb + 'complex_arb': files('complex_arb.pyx'), 'complex_conversion': files('complex_conversion.pyx'), 'complex_double': files('complex_double.pyx'), 'complex_interval': files('complex_interval.pyx'), @@ -70,7 +70,7 @@ extension_data = { 'power_series_ring_element': files('power_series_ring_element.pyx'), 'puiseux_series_ring_element': files('puiseux_series_ring_element.pyx'), 'rational': files('rational.pyx'), - #'real_arb': files('real_arb.pyx'), - needs arb + 'real_arb': files('real_arb.pyx'), 'real_double': files('real_double.pyx'), 'real_double_element_gsl': files('real_double_element_gsl.pyx'), 'real_interval_absolute': files('real_interval_absolute.pyx'), @@ -93,15 +93,26 @@ mpfi = declare_dependency( ] ) gsl = dependency('gsl') +# Cannot be found by pkg-config +flint = declare_dependency( + dependencies: [ + cc.find_library('flint'), + ] +) +# Cannot be found via pkg-config +arb = declare_dependency( + dependencies: [ + cc.find_library('arb'), + ] +) foreach name, pyx : extension_data py.extension_module(name, sources: pyx, subdir: 'sage/rings', install: true, - #cython_args: ['-I', inc_gsl], - include_directories: [inc_cpython, inc_flint, inc_gsl], - dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl], + include_directories: [inc_cpython, inc_flint, inc_gsl, inc_arb], + dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl, flint, arb], ) endforeach diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index 6a1941bccf7..b9183257abb 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -24,12 +24,12 @@ py.install_sources( extension_data_cpp = { 'number_field_element': files('number_field_element.pyx'), + 'number_field_element_quadratic': files('number_field_element_quadratic.pyx'), } extension_data = { 'number_field_base': files('number_field_base.pyx'), 'number_field_element_base': files('number_field_element_base.pyx'), - #'number_field_element_quadratic': files('number_field_element_quadratic.pyx'), - needs arb 'number_field_morphisms': files('number_field_morphisms.pyx'), 'totallyreal': files('totallyreal.pyx'), 'totallyreal_data': files('totallyreal_data.pyx'), @@ -50,7 +50,7 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/rings/number_field', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ntl], - dependencies: [py_dep, cysignals, cypari2], + include_directories: [inc_cpython, inc_ntl, inc_arb, inc_flint], + dependencies: [py_dep, cysignals, cypari2, ntl, mpfi, arb], ) endforeach diff --git a/src/sage/rings/padics/meson.build b/src/sage/rings/padics/meson.build index b0549872acd..71ca8a1e91f 100644 --- a/src/sage/rings/padics/meson.build +++ b/src/sage/rings/padics/meson.build @@ -60,7 +60,7 @@ foreach name, pyx : extension_data subdir: 'sage/rings/padics', install: true, include_directories: [inc_cpython, inc_ntl, inc_flint, inc_rings_finite, inc_ext], - dependencies: [py_dep, cypari2, cysignals], + dependencies: [py_dep, cypari2, cysignals, gmp], ) endforeach foreach name, pyx : extension_data_cpp @@ -70,6 +70,6 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_ntl, inc_ext], - dependencies: [py_dep, cypari2, cysignals], + dependencies: [py_dep, cypari2, cysignals, gmp], ) endforeach diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index a682949dbf6..72dc152ad14 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -39,10 +39,11 @@ py.install_sources( install_subdir('padics', install_dir: sage_install_dir / 'polynomial') extension_data_cpp = { + 'evaluation_ntl': files('evaluation_ntl.pyx'), 'multi_polynomial_ideal_libsingular': files('multi_polynomial_ideal_libsingular.pyx'), 'multi_polynomial_libsingular': files('multi_polynomial_libsingular.pyx'), 'polynomial_gf2x': files('polynomial_gf2x.pyx'), - #'polynomial_integer_dense_flint': files('polynomial_integer_dense_flint.pyx'), - needs arb + 'polynomial_integer_dense_flint': files('polynomial_integer_dense_flint.pyx'), 'polynomial_integer_dense_ntl': files('polynomial_integer_dense_ntl.pyx'), 'polynomial_modn_dense_ntl': files('polynomial_modn_dense_ntl.pyx'), 'polynomial_zz_pex': files('polynomial_zz_pex.pyx'), @@ -51,7 +52,6 @@ extension_data = { 'commutative_polynomial': files('commutative_polynomial.pyx'), 'cyclotomic': files('cyclotomic.pyx'), 'evaluation_flint': files('evaluation_flint.pyx'), - 'evaluation_ntl': files('evaluation_ntl.pyx'), 'hilbert': files('hilbert.pyx'), 'laurent_polynomial': files('laurent_polynomial.pyx'), 'laurent_polynomial_mpair': files('laurent_polynomial_mpair.pyx'), @@ -61,10 +61,10 @@ extension_data = { #'plural': files('plural.pyx'), - compile error 'polydict': files('polydict.pyx'), 'polynomial_compiled': files('polynomial_compiled.pyx'), - #'polynomial_complex_arb': files('polynomial_complex_arb.pyx'), - needs arb + 'polynomial_complex_arb': files('polynomial_complex_arb.pyx'), 'polynomial_element': files('polynomial_element.pyx'), 'polynomial_number_field': files('polynomial_number_field.pyx'), - #'polynomial_rational_flint': files('polynomial_rational_flint.pyx'), - needs arb + 'polynomial_rational_flint': files('polynomial_rational_flint.pyx'), 'polynomial_real_mpfr_dense': files('polynomial_real_mpfr_dense.pyx'), 'polynomial_ring_homomorphism': files('polynomial_ring_homomorphism.pyx'), 'polynomial_zmod_flint': files('polynomial_zmod_flint.pyx'), @@ -81,8 +81,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/polynomial', install: true, - include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings, inc_numpy, inc_ext], - dependencies: [py_dep, cysignals, cypari2], + include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings, inc_numpy, inc_ext, inc_arb], + dependencies: [py_dep, cysignals, cypari2, gmp, mpfi, arb], ) endforeach @@ -92,8 +92,8 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/rings/polynomial', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings_finite, inc_ext], - dependencies: [py_dep, cysignals, cypari2], + include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings_finite, inc_ext, inc_arb, inc_rings], + dependencies: [py_dep, cysignals, cypari2, ntl, mpfr, mpfi, arb], ) endforeach diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index 7ea0c457413..dfd0c074ed9 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -50,6 +50,6 @@ foreach name, pyx : extension_data subdir: 'sage/structure', install: true, include_directories: [inc_cpython, inc_rings, inc_src], - dependencies: [py_dep, gmpy2, cysignals], + dependencies: [py_dep, gmpy2, cysignals, gmp], ) endforeach From 100a35d56592716282fb73c9760f4e8ec9be65ff Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 2 Nov 2023 10:55:27 +0000 Subject: [PATCH 030/161] Add interpreters --- src/sage/ext/meson.build | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index b03aaa368ee..4ac3a117bef 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -20,4 +20,17 @@ foreach name, pyx : extension_data ) endforeach +interpreters = custom_target( + 'sage.ext.interpreters', + output: 'all.py', + input: '../../sage_setup/autogen/interpreters/__init__.py', + command: [py, '-m', 'sage_setup.autogen.interpreters', meson.current_source_dir() / 'interpreters'], + # This is actually against the Meson philosophy, which does not like in-source builds. + # So normally you would do something like the following (left for a follow-up) + # command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], + env: ['PYTHONPATH=' + meson.current_source_dir() / '..' / '..'], + install: true, + install_dir: 'interpreters' +) + subdir('interpreters') From 111b145468f51c081875f85e0b79209d0f795826 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 2 Nov 2023 14:40:32 +0000 Subject: [PATCH 031/161] And another round of meson files --- generate-meson.py | 171 +++++++++++++----- src/meson.build | 8 + .../finite_dimensional_algebras/meson.build | 22 +++ src/sage/algebras/fusion_rings/meson.build | 37 ++++ src/sage/algebras/hecke_algebras/meson.build | 10 + src/sage/algebras/letterplace/meson.build | 21 +++ src/sage/algebras/lie_algebras/meson.build | 38 ++++ .../lie_conformal_algebras/meson.build | 24 +++ src/sage/algebras/meson.build | 67 +++++++ src/sage/algebras/quantum_groups/meson.build | 11 ++ src/sage/algebras/quatalg/meson.build | 25 +++ .../quatalg/quaternion_algebra_cython.pyx | 2 +- src/sage/algebras/steenrod/meson.build | 10 + src/sage/all.py | 3 +- src/sage/combinat/chas/meson.build | 7 + .../cluster_algebra_quiver/meson.build | 11 ++ src/sage/combinat/crystals/meson.build | 53 ++++++ src/sage/combinat/designs/meson.build | 40 ++++ src/sage/combinat/integer_lists/meson.build | 22 +++ src/sage/combinat/matrices/meson.build | 23 +++ src/sage/combinat/meson.build | 20 +- src/sage/combinat/ncsf_qsym/meson.build | 10 + src/sage/combinat/ncsym/meson.build | 8 + src/sage/combinat/path_tableaux/meson.build | 10 + src/sage/combinat/posets/meson.build | 33 ++++ .../rigged_configurations/meson.build | 40 ++++ src/sage/combinat/root_system/meson.build | 74 ++++++++ src/sage/combinat/sf/meson.build | 29 +++ src/sage/combinat/species/meson.build | 23 +++ src/sage/combinat/words/meson.build | 35 ++++ src/sage/graphs/base/meson.build | 41 +++++ src/sage/graphs/cliquer.pyx | 2 +- src/sage/graphs/generators/meson.build | 29 +++ .../graphs/graph_decompositions/meson.build | 55 ++++++ src/sage/graphs/meson.build | 109 +++++++++++ src/sage/libs/arb/meson.build | 20 ++ src/sage/libs/coxeter3/meson.build | 23 +++ src/sage/libs/eclib/meson.build | 25 +++ src/sage/libs/flint/meson.build | 2 +- src/sage/libs/gap/meson.build | 30 +++ src/sage/libs/giac/meson.build | 21 +++ src/sage/libs/glpk/meson.build | 19 ++ src/sage/libs/lcalc/meson.build | 21 +++ src/sage/libs/linbox/meson.build | 19 ++ src/sage/libs/meson.build | 19 +- src/sage/libs/pari/meson.build | 2 +- src/sage/libs/singular/meson.build | 26 +++ src/sage/matrix/meson.build | 23 ++- src/sage/meson.build | 5 + src/sage/modules/meson.build | 6 +- src/sage/modules/with_basis/meson.build | 24 +++ src/sage/monoids/meson.build | 30 +++ src/sage/quadratic_forms/meson.build | 49 +++++ src/sage/rings/all.py | 3 +- src/sage/rings/function_field/meson.build | 2 + src/sage/rings/meson.build | 69 ++++--- src/sage/rings/padics/meson.build | 2 +- src/sage/rings/padics/pow_computer_ext.pyx | 2 +- src/sage/rings/polynomial/meson.build | 4 +- src/sage/symbolic/__init__.py | 1 + src/sage/symbolic/meson.build | 69 +++++++ 61 files changed, 1547 insertions(+), 92 deletions(-) create mode 100644 src/sage/algebras/finite_dimensional_algebras/meson.build create mode 100644 src/sage/algebras/fusion_rings/meson.build create mode 100644 src/sage/algebras/hecke_algebras/meson.build create mode 100644 src/sage/algebras/letterplace/meson.build create mode 100644 src/sage/algebras/lie_algebras/meson.build create mode 100644 src/sage/algebras/lie_conformal_algebras/meson.build create mode 100644 src/sage/algebras/meson.build create mode 100644 src/sage/algebras/quantum_groups/meson.build create mode 100644 src/sage/algebras/quatalg/meson.build create mode 100644 src/sage/algebras/steenrod/meson.build create mode 100644 src/sage/combinat/chas/meson.build create mode 100644 src/sage/combinat/cluster_algebra_quiver/meson.build create mode 100644 src/sage/combinat/crystals/meson.build create mode 100644 src/sage/combinat/designs/meson.build create mode 100644 src/sage/combinat/integer_lists/meson.build create mode 100644 src/sage/combinat/matrices/meson.build create mode 100644 src/sage/combinat/ncsf_qsym/meson.build create mode 100644 src/sage/combinat/ncsym/meson.build create mode 100644 src/sage/combinat/path_tableaux/meson.build create mode 100644 src/sage/combinat/posets/meson.build create mode 100644 src/sage/combinat/rigged_configurations/meson.build create mode 100644 src/sage/combinat/root_system/meson.build create mode 100644 src/sage/combinat/sf/meson.build create mode 100644 src/sage/combinat/species/meson.build create mode 100644 src/sage/combinat/words/meson.build create mode 100644 src/sage/graphs/base/meson.build create mode 100644 src/sage/graphs/generators/meson.build create mode 100644 src/sage/graphs/graph_decompositions/meson.build create mode 100644 src/sage/graphs/meson.build create mode 100644 src/sage/libs/arb/meson.build create mode 100644 src/sage/libs/coxeter3/meson.build create mode 100644 src/sage/libs/eclib/meson.build create mode 100644 src/sage/libs/gap/meson.build create mode 100644 src/sage/libs/giac/meson.build create mode 100644 src/sage/libs/glpk/meson.build create mode 100644 src/sage/libs/lcalc/meson.build create mode 100644 src/sage/libs/linbox/meson.build create mode 100644 src/sage/libs/singular/meson.build create mode 100644 src/sage/modules/with_basis/meson.build create mode 100644 src/sage/monoids/meson.build create mode 100644 src/sage/quadratic_forms/meson.build create mode 100644 src/sage/symbolic/__init__.py create mode 100644 src/sage/symbolic/meson.build diff --git a/generate-meson.py b/generate-meson.py index 4a8351217c1..c0648ad3b65 100644 --- a/generate-meson.py +++ b/generate-meson.py @@ -4,6 +4,7 @@ import argparse import sys from pathlib import Path +from types import SimpleNamespace parser = argparse.ArgumentParser(description='Generate meson.build file for a given folder.') parser.add_argument('folder', type=str, nargs='?', default='.', @@ -15,45 +16,133 @@ args = parser.parse_args() +def run(folder: Path): + dry_run = args.dry_run + force = args.force + + if not folder.is_dir(): + print(f'Error: {folder} is not a directory') + return + folder_rel_to_src = folder.relative_to('src') + + python_files = sorted(list(folder.glob('*.py'))) + cython_files = sorted(list(folder.glob('*.pyx'))) + + + if not python_files and not cython_files: + print(f'Error: {folder} does not contain any python or cython files') + return + + def get_metadata(path: Path): + with open(path, 'r') as file: + metadata = SimpleNamespace() + metadata.path = path + metadata.is_cpp = any(line.startswith('# distutils: language = c++') for line in file) + + metadata.libraries = [] + for line in file: + if line.startswith('# distutils: libraries ='): + libraries = line.split('libraries =')[1].strip().split() + libraries = [library.replace('NTL_LIBRARIES', 'ntl').replace('SINGULAR_LIBRARIES', 'singular') for library in libraries] + metadata.libraries += libraries + + metadata.inc_dirs = [] + c_file = path.with_suffix('.c') + if c_file.exists(): + metadata.not_yet_on_conda = False + with open(c_file, 'r') as c_file: + contents = c_file.read() + known_inc_dirs = { + 'sage/cpython': 'inc_cpython', + 'sage/rings': 'inc_rings', + 'sage/rings/finite_rings': 'inc_rings_finite', + 'sage/libs/flint': 'inc_flint', + 'sage/libs/gsl': 'inc_gsl', + 'sage/libs/ntl': 'inc_ntl', + 'sage/libs/arb': 'inc_arb', + 'sage/data_structures': 'inc_data_structures', + 'sage/ext': 'inc_ext', + } + for known_inc_dir in known_inc_dirs: + if known_inc_dir in contents: + metadata.inc_dirs.append(known_inc_dirs[known_inc_dir]) + else: + metadata.not_yet_on_conda = metadata.is_cpp is False + + return metadata + + cython_files = [get_metadata(file) for file in cython_files] + cython_c_files = [file for file in cython_files if not file.is_cpp] + cython_cpp_files = [file for file in cython_files if file.is_cpp] + all_libraries = sorted(set(library for file in cython_files for library in file.libraries)) + all_inc_dirs = sorted(set(inc_dir for file in cython_files for inc_dir in file.inc_dirs)) + subdirs = sorted(list(folder.glob('*/'))) + + meson_build_path = folder / 'meson.build' + if not dry_run and not force and meson_build_path.exists(): + print(f'Error: {meson_build_path} already exists, use --force to overwrite') + return + + with open(meson_build_path, 'w') if not dry_run else sys.stdout as meson_build: + meson_build.write('py.install_sources(\n') + for file in python_files: + meson_build.write(f" '{file.name}',\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(')\n') + + if cython_c_files: + meson_build.write('\n') + meson_build.write('extension_data = {\n') + for file in cython_c_files: + if file.not_yet_on_conda: + meson_build.write(f" # '{file.path.stem}': files('{file.path.name}'), # not yet on conda\n") + else: + meson_build.write(f" '{file.path.stem}': files('{file.path.name}'),\n") + meson_build.write('}\n\n') + + meson_build.write('foreach name, pyx : extension_data\n') + meson_build.write(" py.extension_module(name,\n") + meson_build.write(" sources: pyx,\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(' install: true,\n') + meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") + meson_build.write(f" dependencies: [py_dep, cysignals, gmp{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") + meson_build.write(' )\n') + meson_build.write('endforeach\n') + + if cython_cpp_files: + meson_build.write('\n') + meson_build.write('extension_data_cpp = {\n') + for file in cython_cpp_files: + if file.not_yet_on_conda: + meson_build.write(f" # '{file.path.stem}': files('{file.path.name}'), # not yet on conda\n") + else: + meson_build.write(f" '{file.path.stem}': files('{file.path.name}'),\n") + meson_build.write('}\n\n') + + meson_build.write('foreach name, pyx : extension_data_cpp\n') + meson_build.write(" py.extension_module(name,\n") + meson_build.write(" sources: pyx,\n") + meson_build.write(f" subdir: '{folder_rel_to_src}',\n") + meson_build.write(' install: true,\n') + meson_build.write(' override_options : [\'cython_language=cpp\'],\n') + meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") + meson_build.write(f" dependencies: [py_dep, cysignals, gmp{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") + meson_build.write(' )\n') + meson_build.write('endforeach\n') + + meson_build.write('\n') + for subdir in subdirs: + if subdir.name.startswith('_') or subdir.name.startswith('.'): + continue + if not list(subdir.glob('*.py*')): + continue + + if not list(subdir.glob('*.pyx')): + meson_build.write(f"install_subdir('{subdir.name}', install_dir: sage_install_dir / '{folder_rel_to_src.relative_to('sage')}')\n") + else: + meson_build.write(f"subdir('{subdir.name}')\n") + run(subdir) + folder = Path(args.folder) -dry_run = args.dry_run -force = args.force - -if not folder.is_dir(): - print(f'Error: {folder} is not a directory') - sys.exit(1) -folder_rel_to_src = folder.relative_to('src') - -python_files = list(folder.glob('*.py')) -cython_files = list(folder.glob('*.pyx')) -python_files.sort() -cython_files.sort() - -if not python_files and not cython_files: - print(f'Error: {folder} does not contain any python or cython files') - sys.exit(1) - -meson_build_path = folder / 'meson.build' -if not dry_run and not force and meson_build_path.exists(): - print(f'Error: {meson_build_path} already exists, use --force to overwrite') - sys.exit(1) - -with open(meson_build_path, 'w') if not dry_run else sys.stdout as meson_build: - meson_build.write('py.install_sources(\n') - for file in python_files: - meson_build.write(f" '{file.name}',\n") - meson_build.write(f" subdir: '{folder_rel_to_src}',\n") - meson_build.write(')\n\n') - - meson_build.write('extension_data = {\n') - for file in cython_files: - meson_build.write(f" '{file.stem}': files('{file.name}'),\n") - meson_build.write('}\n\n') - meson_build.write('foreach name, pyx : extension_data\n') - meson_build.write(" py.extension_module(name,\n") - meson_build.write(" sources: pyx,\n") - meson_build.write(f" subdir: '{folder_rel_to_src}',\n") - meson_build.write(' install: true,\n') - meson_build.write(' dependencies: [py_dep],\n') - meson_build.write(' )\n') - meson_build.write('endforeach\n') +run(folder) diff --git a/src/meson.build b/src/meson.build index 73b203404b1..63faf358971 100644 --- a/src/meson.build +++ b/src/meson.build @@ -68,6 +68,13 @@ mpfr = declare_dependency( ] ) +# Cannot be found by pkg-config +flint = declare_dependency( + dependencies: [ + cc.find_library('flint'), + ] +) + # It's strange but cython cannot find its own include files # so we find them ourselves, and add them to the include path inc_cython = run_command(py, @@ -108,6 +115,7 @@ inc_flint = include_directories('sage/libs/flint') inc_gsl = include_directories('sage/libs/gsl') inc_ntl = include_directories('sage/libs/ntl') inc_arb = include_directories('sage/libs/arb') +inc_iml = include_directories('sage/libs') inc_data_structures = include_directories('sage/data_structures') inc_ext = include_directories('sage/ext') inc_src = include_directories('.') diff --git a/src/sage/algebras/finite_dimensional_algebras/meson.build b/src/sage/algebras/finite_dimensional_algebras/meson.build new file mode 100644 index 00000000000..3aac590596f --- /dev/null +++ b/src/sage/algebras/finite_dimensional_algebras/meson.build @@ -0,0 +1,22 @@ +py.install_sources( + 'all.py', + 'finite_dimensional_algebra.py', + 'finite_dimensional_algebra_ideal.py', + 'finite_dimensional_algebra_morphism.py', + subdir: 'sage/algebras/finite_dimensional_algebras', +) + +extension_data = { + 'finite_dimensional_algebra_element': files('finite_dimensional_algebra_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/algebras/finite_dimensional_algebras', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/algebras/fusion_rings/meson.build b/src/sage/algebras/fusion_rings/meson.build new file mode 100644 index 00000000000..df9ab85023e --- /dev/null +++ b/src/sage/algebras/fusion_rings/meson.build @@ -0,0 +1,37 @@ +py.install_sources( + 'all.py', + 'f_matrix.py', + 'fusion_double.py', + 'fusion_ring.py', + subdir: 'sage/algebras/fusion_rings', +) + +extension_data = { + 'fast_parallel_fusion_ring_braid_repn': files('fast_parallel_fusion_ring_braid_repn.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/algebras/fusion_rings', + install: true, + include_directories: [inc_numpy, inc_ntl], + dependencies: [py_dep, cysignals], + ) +endforeach + +extension_data_cpp = { + 'fast_parallel_fmats_methods': files('fast_parallel_fmats_methods.pyx'), + 'shm_managers': files('shm_managers.pyx'), + 'poly_tup_engine': files('poly_tup_engine.pyx'), +} +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/algebras/fusion_rings', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_numpy, inc_ntl], + dependencies: [py_dep, cysignals], + ) +endforeach diff --git a/src/sage/algebras/hecke_algebras/meson.build b/src/sage/algebras/hecke_algebras/meson.build new file mode 100644 index 00000000000..2ae6f3da80c --- /dev/null +++ b/src/sage/algebras/hecke_algebras/meson.build @@ -0,0 +1,10 @@ +py.install_sources( + 'all.py', + 'ariki_koike_algebra.py', + 'cubic_hecke_algebra.py', + 'cubic_hecke_base_ring.py', + 'cubic_hecke_matrix_rep.py', + subdir: 'sage/algebras/hecke_algebras', +) + + diff --git a/src/sage/algebras/letterplace/meson.build b/src/sage/algebras/letterplace/meson.build new file mode 100644 index 00000000000..7ad5d465c6d --- /dev/null +++ b/src/sage/algebras/letterplace/meson.build @@ -0,0 +1,21 @@ +py.install_sources( + 'all.py', + subdir: 'sage/algebras/letterplace', +) + +extension_data = { + # 'free_algebra_element_letterplace': files('free_algebra_element_letterplace.pyx'), # not yet on conda + # 'free_algebra_letterplace': files('free_algebra_letterplace.pyx'), # not yet on conda + # 'letterplace_ideal': files('letterplace_ideal.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/algebras/letterplace', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/algebras/lie_algebras/meson.build b/src/sage/algebras/lie_algebras/meson.build new file mode 100644 index 00000000000..74e9975ebd7 --- /dev/null +++ b/src/sage/algebras/lie_algebras/meson.build @@ -0,0 +1,38 @@ +py.install_sources( + 'abelian.py', + 'affine_lie_algebra.py', + 'all.py', + 'bch.py', + 'classical_lie_algebra.py', + 'examples.py', + 'free_lie_algebra.py', + 'heisenberg.py', + 'lie_algebra.py', + 'morphism.py', + 'nilpotent_lie_algebra.py', + 'onsager.py', + 'poincare_birkhoff_witt.py', + 'quotient.py', + 'rank_two_heisenberg_virasoro.py', + 'structure_coefficients.py', + 'subalgebra.py', + 'symplectic_derivation.py', + 'verma_module.py', + 'virasoro.py', + subdir: 'sage/algebras/lie_algebras', +) + +extension_data = { + 'lie_algebra_element': files('lie_algebra_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/algebras/lie_algebras', + install: true, + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/algebras/lie_conformal_algebras/meson.build b/src/sage/algebras/lie_conformal_algebras/meson.build new file mode 100644 index 00000000000..500fa71e42a --- /dev/null +++ b/src/sage/algebras/lie_conformal_algebras/meson.build @@ -0,0 +1,24 @@ +py.install_sources( + 'abelian_lie_conformal_algebra.py', + 'affine_lie_conformal_algebra.py', + 'all.py', + 'bosonic_ghosts_lie_conformal_algebra.py', + 'examples.py', + 'fermionic_ghosts_lie_conformal_algebra.py', + 'finitely_freely_generated_lca.py', + 'free_bosons_lie_conformal_algebra.py', + 'free_fermions_lie_conformal_algebra.py', + 'freely_generated_lie_conformal_algebra.py', + 'graded_lie_conformal_algebra.py', + 'lie_conformal_algebra.py', + 'lie_conformal_algebra_element.py', + 'lie_conformal_algebra_with_basis.py', + 'lie_conformal_algebra_with_structure_coefs.py', + 'n2_lie_conformal_algebra.py', + 'neveu_schwarz_lie_conformal_algebra.py', + 'virasoro_lie_conformal_algebra.py', + 'weyl_lie_conformal_algebra.py', + subdir: 'sage/algebras/lie_conformal_algebras', +) + + diff --git a/src/sage/algebras/meson.build b/src/sage/algebras/meson.build new file mode 100644 index 00000000000..d7878ee1373 --- /dev/null +++ b/src/sage/algebras/meson.build @@ -0,0 +1,67 @@ +py.install_sources( + 'affine_nil_temperley_lieb.py', + 'algebra.py', + 'all.py', + 'askey_wilson.py', + 'associated_graded.py', + 'catalog.py', + 'cellular_basis.py', + 'clifford_algebra.py', + 'cluster_algebra.py', + 'commutative_dga.py', + 'down_up_algebra.py', + 'finite_gca.py', + 'free_algebra.py', + 'free_algebra_element.py', + 'free_algebra_quotient.py', + 'free_algebra_quotient_element.py', + 'free_zinbiel_algebra.py', + 'group_algebra.py', + 'hall_algebra.py', + 'iwahori_hecke_algebra.py', + 'jordan_algebra.py', + 'nil_coxeter_algebra.py', + 'orlik_solomon.py', + 'orlik_terao.py', + 'q_commuting_polynomials.py', + 'q_system.py', + 'quantum_clifford.py', + 'quantum_matrix_coordinate_algebra.py', + 'quaternion_algebra.py', + 'quaternion_algebra_element.py', + 'rational_cherednik_algebra.py', + 'schur_algebra.py', + 'shuffle_algebra.py', + 'splitting_algebra.py', + 'tensor_algebra.py', + 'weyl_algebra.py', + 'yangian.py', + 'yokonuma_hecke_algebra.py', + subdir: 'sage/algebras', +) + +extension_data = { + 'clifford_algebra_element': files('clifford_algebra_element.pyx'), + 'exterior_algebra_groebner': files('exterior_algebra_groebner.pyx'), + 'octonion_algebra': files('octonion_algebra.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/algebras', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + +subdir('finite_dimensional_algebras') +subdir('fusion_rings') +subdir('hecke_algebras') +subdir('letterplace') +subdir('lie_algebras') +subdir('lie_conformal_algebras') +subdir('quantum_groups') +subdir('quatalg') +subdir('steenrod') diff --git a/src/sage/algebras/quantum_groups/meson.build b/src/sage/algebras/quantum_groups/meson.build new file mode 100644 index 00000000000..c3f0d5c7fb5 --- /dev/null +++ b/src/sage/algebras/quantum_groups/meson.build @@ -0,0 +1,11 @@ +py.install_sources( + 'ace_quantum_onsager.py', + 'all.py', + 'fock_space.py', + 'q_numbers.py', + 'quantum_group_gap.py', + 'representations.py', + subdir: 'sage/algebras/quantum_groups', +) + + diff --git a/src/sage/algebras/quatalg/meson.build b/src/sage/algebras/quatalg/meson.build new file mode 100644 index 00000000000..8042e99b64c --- /dev/null +++ b/src/sage/algebras/quatalg/meson.build @@ -0,0 +1,25 @@ +m = dependency('m', required: false) + +py.install_sources( + 'all.py', + 'quaternion_algebra.py', + subdir: 'sage/algebras/quatalg', +) + + +extension_data_cpp = { + 'quaternion_algebra_cython': files('quaternion_algebra_cython.pyx'), + 'quaternion_algebra_element': files('quaternion_algebra_element.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/algebras/quatalg', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_flint, inc_ntl, inc_ext], + dependencies: [py_dep, cysignals, gmp, m, ntl, flint], + ) +endforeach + diff --git a/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx b/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx index 983e2515c04..130c9f5d43a 100644 --- a/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx +++ b/src/sage/algebras/quatalg/quaternion_algebra_cython.pyx @@ -35,7 +35,7 @@ from sage.matrix.matrix_space import MatrixSpace from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense from sage.matrix.matrix_rational_dense cimport Matrix_rational_dense -from .quaternion_algebra_element cimport QuaternionAlgebraElement_rational_field +from sage.algebras.quatalg.quaternion_algebra_element cimport QuaternionAlgebraElement_rational_field from sage.libs.gmp.mpz cimport mpz_t, mpz_lcm, mpz_init, mpz_set, mpz_clear, mpz_init_set, mpz_mul, mpz_fdiv_q, mpz_cmp_si diff --git a/src/sage/algebras/steenrod/meson.build b/src/sage/algebras/steenrod/meson.build new file mode 100644 index 00000000000..ad6a151b788 --- /dev/null +++ b/src/sage/algebras/steenrod/meson.build @@ -0,0 +1,10 @@ +py.install_sources( + 'all.py', + 'steenrod_algebra.py', + 'steenrod_algebra_bases.py', + 'steenrod_algebra_misc.py', + 'steenrod_algebra_mult.py', + subdir: 'sage/algebras/steenrod', +) + + diff --git a/src/sage/all.py b/src/sage/all.py index b54610c819d..e397cdee266 100644 --- a/src/sage/all.py +++ b/src/sage/all.py @@ -85,7 +85,8 @@ from sage.arith.all import * from sage.matrix.all import * -from sage.symbolic.all import * +# Cannot find ginac (and I don't know where to look for it) +#from sage.symbolic.all import * from sage.modules.all import * from sage.monoids.all import * from sage.algebras.all import * diff --git a/src/sage/combinat/chas/meson.build b/src/sage/combinat/chas/meson.build new file mode 100644 index 00000000000..55138497547 --- /dev/null +++ b/src/sage/combinat/chas/meson.build @@ -0,0 +1,7 @@ +py.install_sources( + 'all.py', + 'fsym.py', + 'wqsym.py', + subdir: 'sage/combinat/chas', +) + diff --git a/src/sage/combinat/cluster_algebra_quiver/meson.build b/src/sage/combinat/cluster_algebra_quiver/meson.build new file mode 100644 index 00000000000..33f6c253ed1 --- /dev/null +++ b/src/sage/combinat/cluster_algebra_quiver/meson.build @@ -0,0 +1,11 @@ +py.install_sources( + 'all.py', + 'cluster_seed.py', + 'interact.py', + 'mutation_class.py', + 'mutation_type.py', + 'quiver.py', + 'quiver_mutation_type.py', + subdir: 'sage/combinat/cluster_algebra_quiver', +) + diff --git a/src/sage/combinat/crystals/meson.build b/src/sage/combinat/crystals/meson.build new file mode 100644 index 00000000000..ffe467683a7 --- /dev/null +++ b/src/sage/combinat/crystals/meson.build @@ -0,0 +1,53 @@ +py.install_sources( + 'affine.py', + 'affine_factorization.py', + 'affinization.py', + 'alcove_path.py', + 'all.py', + 'bkk_crystals.py', + 'catalog.py', + 'catalog_elementary_crystals.py', + 'catalog_infinity_crystals.py', + 'catalog_kirillov_reshetikhin.py', + 'crystals.py', + 'direct_sum.py', + 'elementary_crystals.py', + 'fast_crystals.py', + 'fully_commutative_stable_grothendieck.py', + 'generalized_young_walls.py', + 'highest_weight_crystals.py', + 'induced_structure.py', + 'infinity_crystals.py', + 'kac_modules.py', + 'kirillov_reshetikhin.py', + 'kyoto_path_model.py', + 'littelmann_path.py', + 'monomial_crystals.py', + 'multisegments.py', + 'mv_polytopes.py', + 'pbw_crystal.py', + 'polyhedral_realization.py', + 'star_crystal.py', + 'subcrystal.py', + 'tensor_product.py', + 'virtual_crystal.py', + subdir: 'sage/combinat/crystals', +) + +extension_data = { + 'letters': files('letters.pyx'), + 'pbw_datum': files('pbw_datum.pyx'), + 'spins': files('spins.pyx'), + 'tensor_product_element': files('tensor_product_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/crystals', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/combinat/designs/meson.build b/src/sage/combinat/designs/meson.build new file mode 100644 index 00000000000..6dd274ca93b --- /dev/null +++ b/src/sage/combinat/designs/meson.build @@ -0,0 +1,40 @@ +py.install_sources( + 'all.py', + 'bibd.py', + 'block_design.py', + 'covering_array.py', + 'covering_design.py', + 'database.py', + 'design_catalog.py', + 'difference_family.py', + 'difference_matrices.py', + 'ext_rep.py', + 'group_divisible_designs.py', + 'incidence_structures.py', + 'latin_squares.py', + 'orthogonal_arrays.py', + 'orthogonal_arrays_build_recursive.py', + 'resolvable_bibd.py', + 'steiner_quadruple_systems.py', + 'twographs.py', + subdir: 'sage/combinat/designs', +) + +extension_data = { + 'designs_pyx': files('designs_pyx.pyx'), + 'evenly_distributed_sets': files('evenly_distributed_sets.pyx'), + 'gen_quadrangles_with_spread': files('gen_quadrangles_with_spread.pyx'), + 'orthogonal_arrays_find_recursive': files('orthogonal_arrays_find_recursive.pyx'), + 'subhypergraph_search': files('subhypergraph_search.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/designs', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/combinat/integer_lists/meson.build b/src/sage/combinat/integer_lists/meson.build new file mode 100644 index 00000000000..c4968073c27 --- /dev/null +++ b/src/sage/combinat/integer_lists/meson.build @@ -0,0 +1,22 @@ +py.install_sources( + '__init__.py', + 'lists.py', + 'nn.py', + subdir: 'sage/combinat/integer_lists', +) + +extension_data = { + 'base': files('base.pyx'), + 'invlex': files('invlex.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/integer_lists', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/combinat/matrices/meson.build b/src/sage/combinat/matrices/meson.build new file mode 100644 index 00000000000..3d1cda177a1 --- /dev/null +++ b/src/sage/combinat/matrices/meson.build @@ -0,0 +1,23 @@ +py.install_sources( + 'all.py', + 'dlxcpp.py', + 'hadamard_matrix.py', + 'latin.py', + subdir: 'sage/combinat/matrices', +) + +extension_data_cpp = { + # 'dancing_links': files('dancing_links.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/matrices', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/combinat/meson.build b/src/sage/combinat/meson.build index 6573914b5d8..b6899dc3e3d 100644 --- a/src/sage/combinat/meson.build +++ b/src/sage/combinat/meson.build @@ -145,7 +145,23 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/combinat', install: true, - include_directories: [inc_cpython, inc_data_structures], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals, gmp], ) endforeach + +install_subdir('chas', install_dir: sage_install_dir / 'combinat') +install_subdir('cluster_algebra_quiver', install_dir: sage_install_dir / 'combinat') +subdir('crystals') +subdir('designs') +subdir('integer_lists') +subdir('matrices') +install_subdir('ncsf_qsym', install_dir: sage_install_dir / 'combinat') +install_subdir('ncsym', install_dir: sage_install_dir / 'combinat') +install_subdir('path_tableaux', install_dir: sage_install_dir / 'combinat') +subdir('posets') +subdir('rigged_configurations') +subdir('root_system') +install_subdir('sf', install_dir: sage_install_dir / 'combinat') +install_subdir('species', install_dir: sage_install_dir / 'combinat') +subdir('words') diff --git a/src/sage/combinat/ncsf_qsym/meson.build b/src/sage/combinat/ncsf_qsym/meson.build new file mode 100644 index 00000000000..e30fce36206 --- /dev/null +++ b/src/sage/combinat/ncsf_qsym/meson.build @@ -0,0 +1,10 @@ +py.install_sources( + 'all.py', + 'combinatorics.py', + 'generic_basis_code.py', + 'ncsf.py', + 'qsym.py', + 'tutorial.py', + subdir: 'sage/combinat/ncsf_qsym', +) + diff --git a/src/sage/combinat/ncsym/meson.build b/src/sage/combinat/ncsym/meson.build new file mode 100644 index 00000000000..d254c159ad3 --- /dev/null +++ b/src/sage/combinat/ncsym/meson.build @@ -0,0 +1,8 @@ +py.install_sources( + 'all.py', + 'bases.py', + 'dual.py', + 'ncsym.py', + subdir: 'sage/combinat/ncsym', +) + diff --git a/src/sage/combinat/path_tableaux/meson.build b/src/sage/combinat/path_tableaux/meson.build new file mode 100644 index 00000000000..4247e6ad15e --- /dev/null +++ b/src/sage/combinat/path_tableaux/meson.build @@ -0,0 +1,10 @@ +py.install_sources( + 'all.py', + 'catalog.py', + 'dyck_path.py', + 'frieze.py', + 'path_tableau.py', + 'semistandard.py', + subdir: 'sage/combinat/path_tableaux', +) + diff --git a/src/sage/combinat/posets/meson.build b/src/sage/combinat/posets/meson.build new file mode 100644 index 00000000000..17faf8c1d80 --- /dev/null +++ b/src/sage/combinat/posets/meson.build @@ -0,0 +1,33 @@ +py.install_sources( + 'all.py', + 'cartesian_product.py', + 'd_complete.py', + 'elements.py', + 'forest.py', + 'hasse_diagram.py', + 'incidence_algebras.py', + 'lattices.py', + 'linear_extensions.py', + 'mobile.py', + 'moebius_algebra.py', + 'poset_examples.py', + 'posets.py', + subdir: 'sage/combinat/posets', +) + +extension_data = { + 'hasse_cython': files('hasse_cython.pyx'), + 'hasse_cython_flint': files('hasse_cython_flint.pyx'), + 'linear_extension_iterator': files('linear_extension_iterator.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/posets', + install: true, + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/combinat/rigged_configurations/meson.build b/src/sage/combinat/rigged_configurations/meson.build new file mode 100644 index 00000000000..b4ba8f3101a --- /dev/null +++ b/src/sage/combinat/rigged_configurations/meson.build @@ -0,0 +1,40 @@ +py.install_sources( + 'all.py', + 'bij_abstract_class.py', + 'bij_infinity.py', + 'bij_type_A.py', + 'bij_type_A2_dual.py', + 'bij_type_A2_even.py', + 'bij_type_A2_odd.py', + 'bij_type_B.py', + 'bij_type_C.py', + 'bij_type_D.py', + 'bij_type_D_tri.py', + 'bij_type_D_twisted.py', + 'bij_type_E67.py', + 'bijection.py', + 'kleber_tree.py', + 'kr_tableaux.py', + 'rc_crystal.py', + 'rc_infinity.py', + 'rigged_configuration_element.py', + 'rigged_configurations.py', + 'tensor_product_kr_tableaux.py', + 'tensor_product_kr_tableaux_element.py', + subdir: 'sage/combinat/rigged_configurations', +) + +extension_data = { + 'rigged_partition': files('rigged_partition.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/rigged_configurations', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/combinat/root_system/meson.build b/src/sage/combinat/root_system/meson.build new file mode 100644 index 00000000000..ac4f179719b --- /dev/null +++ b/src/sage/combinat/root_system/meson.build @@ -0,0 +1,74 @@ +py.install_sources( + 'all.py', + 'ambient_space.py', + 'associahedron.py', + 'braid_move_calculator.py', + 'branching_rules.py', + 'cartan_matrix.py', + 'cartan_type.py', + 'coxeter_group.py', + 'coxeter_matrix.py', + 'coxeter_type.py', + 'dynkin_diagram.py', + 'extended_affine_weyl_group.py', + 'fundamental_group.py', + 'hecke_algebra_representation.py', + 'integrable_representations.py', + 'non_symmetric_macdonald_polynomials.py', + 'pieri_factors.py', + 'plot.py', + 'reflection_group_complex.py', + 'reflection_group_real.py', + 'root_lattice_realization_algebras.py', + 'root_lattice_realizations.py', + 'root_space.py', + 'root_system.py', + 'type_A.py', + 'type_A_affine.py', + 'type_A_infinity.py', + 'type_B.py', + 'type_BC_affine.py', + 'type_B_affine.py', + 'type_C.py', + 'type_C_affine.py', + 'type_D.py', + 'type_D_affine.py', + 'type_E.py', + 'type_E_affine.py', + 'type_F.py', + 'type_F_affine.py', + 'type_G.py', + 'type_G_affine.py', + 'type_H.py', + 'type_I.py', + 'type_Q.py', + 'type_affine.py', + 'type_dual.py', + 'type_folded.py', + 'type_marked.py', + 'type_reducible.py', + 'type_relabel.py', + 'type_super_A.py', + 'weight_lattice_realizations.py', + 'weight_space.py', + 'weyl_characters.py', + 'weyl_group.py', + subdir: 'sage/combinat/root_system', +) + +extension_data = { + 'braid_orbit': files('braid_orbit.pyx'), + 'reflection_group_c': files('reflection_group_c.pyx'), + 'reflection_group_element': files('reflection_group_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/root_system', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/combinat/sf/meson.build b/src/sage/combinat/sf/meson.build new file mode 100644 index 00000000000..2d305a3bee6 --- /dev/null +++ b/src/sage/combinat/sf/meson.build @@ -0,0 +1,29 @@ +py.install_sources( + 'all.py', + 'character.py', + 'classical.py', + 'dual.py', + 'elementary.py', + 'hall_littlewood.py', + 'hecke.py', + 'homogeneous.py', + 'jack.py', + 'k_dual.py', + 'kfpoly.py', + 'llt.py', + 'macdonald.py', + 'monomial.py', + 'multiplicative.py', + 'new_kschur.py', + 'ns_macdonald.py', + 'orthogonal.py', + 'orthotriang.py', + 'powersum.py', + 'schur.py', + 'sf.py', + 'sfa.py', + 'symplectic.py', + 'witt.py', + subdir: 'sage/combinat/sf', +) + diff --git a/src/sage/combinat/species/meson.build b/src/sage/combinat/species/meson.build new file mode 100644 index 00000000000..a7bf282707c --- /dev/null +++ b/src/sage/combinat/species/meson.build @@ -0,0 +1,23 @@ +py.install_sources( + 'all.py', + 'characteristic_species.py', + 'composition_species.py', + 'cycle_species.py', + 'empty_species.py', + 'functorial_composition_species.py', + 'generating_series.py', + 'library.py', + 'linear_order_species.py', + 'misc.py', + 'partition_species.py', + 'permutation_species.py', + 'product_species.py', + 'recursive_species.py', + 'set_species.py', + 'species.py', + 'structure.py', + 'subset_species.py', + 'sum_species.py', + subdir: 'sage/combinat/species', +) + diff --git a/src/sage/combinat/words/meson.build b/src/sage/combinat/words/meson.build new file mode 100644 index 00000000000..bf2980a07af --- /dev/null +++ b/src/sage/combinat/words/meson.build @@ -0,0 +1,35 @@ +py.install_sources( + 'abstract_word.py', + 'all.py', + 'alphabet.py', + 'finite_word.py', + 'infinite_word.py', + 'lyndon_word.py', + 'morphic.py', + 'morphism.py', + 'paths.py', + 'shuffle_product.py', + 'suffix_trees.py', + 'word.py', + 'word_generators.py', + 'word_infinite_datatypes.py', + 'word_options.py', + 'words.py', + subdir: 'sage/combinat/words', +) + +extension_data = { + 'word_char': files('word_char.pyx'), + 'word_datatypes': files('word_datatypes.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/combinat/words', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/graphs/base/meson.build b/src/sage/graphs/base/meson.build new file mode 100644 index 00000000000..573a22616e6 --- /dev/null +++ b/src/sage/graphs/base/meson.build @@ -0,0 +1,41 @@ +py.install_sources( + 'all.py', + 'overview.py', + subdir: 'sage/graphs/base', +) + +extension_data = { + 'dense_graph': files('dense_graph.pyx'), + 'graph_backends': files('graph_backends.pyx'), + #'sparse_graph': files('sparse_graph.pyx'), # compilation error + 'static_dense_graph': files('static_dense_graph.pyx'), + 'static_sparse_backend': files('static_sparse_backend.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/graphs/base', + install: true, + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals], + ) +endforeach + +extension_data_cpp = { + 'boost_graph': files('boost_graph.pyx'), + 'c_graph': files('c_graph.pyx'), + #'static_sparse_graph': files('static_sparse_graph.pyx'), # compilation error +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/graphs/base', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/graphs/cliquer.pyx b/src/sage/graphs/cliquer.pyx index 6f232d97e16..2800efa5d37 100644 --- a/src/sage/graphs/cliquer.pyx +++ b/src/sage/graphs/cliquer.pyx @@ -35,7 +35,7 @@ from cysignals.memory cimport sig_free from cysignals.signals cimport sig_on, sig_off -cdef extern from "sage/graphs/cliquer/cl.c": +cdef extern from "cliquer/cl.c": cdef int sage_clique_max(graph_t *g, int ** list_of_vertices) cdef int sage_all_clique_max(graph_t *g, int ** list_of_vertices) cdef int sage_clique_number(graph_t *g) diff --git a/src/sage/graphs/generators/meson.build b/src/sage/graphs/generators/meson.build new file mode 100644 index 00000000000..28b7bcccbdf --- /dev/null +++ b/src/sage/graphs/generators/meson.build @@ -0,0 +1,29 @@ +py.install_sources( + 'all.py', + 'basic.py', + 'chessboard.py', + 'classical_geometries.py', + 'degree_sequence.py', + 'families.py', + 'intersection.py', + 'platonic_solids.py', + 'random.py', + 'smallgraphs.py', + 'world_map.py', + subdir: 'sage/graphs/generators', +) + +extension_data = { + 'distance_regular': files('distance_regular.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/graphs/generators', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/graphs/graph_decompositions/meson.build b/src/sage/graphs/graph_decompositions/meson.build new file mode 100644 index 00000000000..3c877e0134a --- /dev/null +++ b/src/sage/graphs/graph_decompositions/meson.build @@ -0,0 +1,55 @@ +tdlib = dependency('tdlib', required: false) + +py.install_sources( + 'all.py', + 'all__sagemath_tdlib.py', + 'modular_decomposition.py', + subdir: 'sage/graphs/graph_decompositions', +) + +extension_data = { + 'bandwidth': files('bandwidth.pyx'), + 'cutwidth': files('cutwidth.pyx'), + 'fast_digraph': files('fast_digraph.pyx'), + 'graph_products': files('graph_products.pyx'), + 'rankwidth': files('rankwidth.pyx'), + 'tree_decomposition': files('tree_decomposition.pyx'), + 'vertex_separation': files('vertex_separation.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/graphs/graph_decompositions', + install: true, + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals], + ) +endforeach + +extension_data_cpp = { + 'clique_separators': files('clique_separators.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/graphs/graph_decompositions', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals], + ) +endforeach + +if tdlib.found() + py.extension_module('tdlib', + sources: 'tdlib.pyx', + subdir: 'sage/graphs/graph_decompositions', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals, tdlib], + ) +endif + diff --git a/src/sage/graphs/meson.build b/src/sage/graphs/meson.build new file mode 100644 index 00000000000..2ee1d5b2c34 --- /dev/null +++ b/src/sage/graphs/meson.build @@ -0,0 +1,109 @@ +bliss = dependency('bliss', required: false) +mcqd = dependency('mcqd', required: false) + +py.install_sources( + 'all.py', + 'all__sagemath_bliss.py', + 'all__sagemath_mcqd.py', + 'all__sagemath_tdlib.py', + 'bipartite_graph.py', + 'digraph.py', + 'digraph_generators.py', + 'domination.py', + 'dot2tex_utils.py', + 'generic_graph.py', + 'graph.py', + 'graph_database.py', + 'graph_editor.py', + 'graph_generators.py', + 'graph_input.py', + 'graph_latex.py', + 'graph_list.py', + 'graph_plot.py', + 'graph_plot_js.py', + 'hypergraph_generators.py', + 'isgci.py', + 'lovasz_theta.py', + 'orientations.py', + 'partial_cube.py', + 'pq_trees.py', + 'print_graphs.py', + 'schnyder.py', + 'tutte_polynomial.py', + subdir: 'sage/graphs', +) + +extension_data = { + 'asteroidal_triples': files('asteroidal_triples.pyx'), + 'centrality': files('centrality.pyx'), + 'chrompoly': files('chrompoly.pyx'), + 'cliquer': files('cliquer.pyx'), + 'comparability': files('comparability.pyx'), + 'connectivity': files('connectivity.pyx'), + 'convexity_properties': files('convexity_properties.pyx'), + 'distances_all_pairs': files('distances_all_pairs.pyx'), + 'generic_graph_pyx': files('generic_graph_pyx.pyx'), + 'genus': files('genus.pyx'), + 'graph_generators_pyx': files('graph_generators_pyx.pyx'), + 'hyperbolicity': files('hyperbolicity.pyx'), + 'independent_sets': files('independent_sets.pyx'), + 'isoperimetric_inequalities': files('isoperimetric_inequalities.pyx'), + 'line_graph': files('line_graph.pyx'), + 'matchpoly': files('matchpoly.pyx'), + 'planarity': files('planarity.pyx'), + 'spanning_tree': files('spanning_tree.pyx'), + 'strongly_regular_db': files('strongly_regular_db.pyx'), + 'trees': files('trees.pyx'), + 'views': files('views.pyx'), + 'weakly_chordal': files('weakly_chordal.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/graphs', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + +extension_data_cpp = { + 'edge_connectivity': files('edge_connectivity.pyx'), + 'graph_coloring': files('graph_coloring.pyx'), + 'path_enumeration': files('path_enumeration.pyx'), + 'traversals': files('traversals.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/graphs', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach +if bliss.found() + py.extension_module('bliss', + sources: files('bliss.pyx'), + subdir: 'sage/graphs', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, bliss], + ) +endif +if mcqd.found() + py.extension_module('mcqd', + sources: files('mcqd.pyx'), + subdir: 'sage/graphs', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, mcqd], + ) +endif + +subdir('base') +subdir('generators') +subdir('graph_decompositions') diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build new file mode 100644 index 00000000000..d229f513c9a --- /dev/null +++ b/src/sage/libs/arb/meson.build @@ -0,0 +1,20 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/arb', +) + +extension_data = { + 'arb_version': files('arb_version.pyx'), + 'arith': files('arith.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/arb', + install: true, + include_directories: [inc_arb, inc_cpython, inc_flint, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/libs/coxeter3/meson.build b/src/sage/libs/coxeter3/meson.build new file mode 100644 index 00000000000..877508d7916 --- /dev/null +++ b/src/sage/libs/coxeter3/meson.build @@ -0,0 +1,23 @@ +py.install_sources( + '__init__.py', + 'all__sagemath_coxeter3.py', + 'coxeter_group.py', + subdir: 'sage/libs/coxeter3', +) + + +extension_data_cpp = { + # 'coxeter': files('coxeter.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/coxeter3', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [], + dependencies: [py_dep, cysignals, coxeter3], + ) +endforeach + diff --git a/src/sage/libs/eclib/meson.build b/src/sage/libs/eclib/meson.build new file mode 100644 index 00000000000..559e86ac2cb --- /dev/null +++ b/src/sage/libs/eclib/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + '__init__.py', + 'all.py', + 'constructor.py', + 'interface.py', + subdir: 'sage/libs/eclib', +) + +extension_data = { + # 'homspace': files('homspace.pyx'), # not yet on conda + # 'mat': files('mat.pyx'), # not yet on conda + # 'mwrank': files('mwrank.pyx'), # not yet on conda + # 'newforms': files('newforms.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/eclib', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build index 7d64f9d44fd..fdfbdb86180 100644 --- a/src/sage/libs/flint/meson.build +++ b/src/sage/libs/flint/meson.build @@ -18,6 +18,6 @@ foreach name, pyx : extension_data subdir: 'sage/libs/flint', install: true, include_directories: [inc_cpython, inc_src, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp, flint], ) endforeach diff --git a/src/sage/libs/gap/meson.build b/src/sage/libs/gap/meson.build new file mode 100644 index 00000000000..b3ae1e4ae0c --- /dev/null +++ b/src/sage/libs/gap/meson.build @@ -0,0 +1,30 @@ +py.install_sources( + 'all.py', + 'all_documented_functions.py', + 'assigned_names.py', + 'context_managers.py', + 'gap_functions.py', + 'gap_globals.py', + 'operations.py', + 'saved_workspace.py', + 'test.py', + 'test_long.py', + subdir: 'sage/libs/gap', +) + +extension_data = { + 'element': files('element.pyx'), + 'libgap': files('libgap.pyx'), + 'util': files('util.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/gap', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/libs/giac/meson.build b/src/sage/libs/giac/meson.build new file mode 100644 index 00000000000..ac8e5f56b09 --- /dev/null +++ b/src/sage/libs/giac/meson.build @@ -0,0 +1,21 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/giac', +) + + +extension_data_cpp = { + # 'giac': files('giac.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/giac', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/libs/glpk/meson.build b/src/sage/libs/glpk/meson.build new file mode 100644 index 00000000000..efca456cef4 --- /dev/null +++ b/src/sage/libs/glpk/meson.build @@ -0,0 +1,19 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/glpk', +) + +extension_data = { + 'error': files('error.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/glpk', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/libs/lcalc/meson.build b/src/sage/libs/lcalc/meson.build new file mode 100644 index 00000000000..1b0d35872d9 --- /dev/null +++ b/src/sage/libs/lcalc/meson.build @@ -0,0 +1,21 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/lcalc', +) + + +extension_data_cpp = { + # 'lcalc_Lfunction': files('lcalc_Lfunction.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/lcalc', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/libs/linbox/meson.build b/src/sage/libs/linbox/meson.build new file mode 100644 index 00000000000..6e1e46e6e0a --- /dev/null +++ b/src/sage/libs/linbox/meson.build @@ -0,0 +1,19 @@ +py.install_sources( + '__init__.py', + subdir: 'sage/libs/linbox', +) + +extension_data = { + # 'linbox_flint_interface': files('linbox_flint_interface.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/linbox', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index aebda9d93e4..e15a710a4b7 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -45,10 +45,25 @@ foreach name, pyx : extension_data_cpp ) endforeach +install_subdir('cremona', install_dir: sage_install_dir / 'libs') +install_subdir('linkages', install_dir: sage_install_dir / 'libs') +install_subdir('lrcalc', install_dir: sage_install_dir / 'libs') +install_subdir('mwrank', install_dir: sage_install_dir / 'libs') +install_subdir('pynac', install_dir: sage_install_dir / 'libs') + +subdir('arb') +subdir('coxeter3') +subdir('eclib') +subdir('flint') +subdir('gap') +subdir('giac') +subdir('glpk') subdir('gmp') subdir('gsl') -subdir('flint') -subdir('pari') +subdir('lcalc') +subdir('linbox') subdir('mpmath') subdir('ntl') +subdir('pari') +subdir('singular') subdir('symmetrica') diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build index 45aeb21b4eb..4950b10473e 100644 --- a/src/sage/libs/pari/meson.build +++ b/src/sage/libs/pari/meson.build @@ -20,6 +20,6 @@ foreach name, pyx : extension_data subdir: 'sage/libs/pari', install: true, include_directories: [inc_flint, inc_cpython], - dependencies: [py_dep, cypari2, cysignals, gmp], + dependencies: [py_dep, cypari2, cysignals, gmp, pari], ) endforeach diff --git a/src/sage/libs/singular/meson.build b/src/sage/libs/singular/meson.build new file mode 100644 index 00000000000..96f592c0b02 --- /dev/null +++ b/src/sage/libs/singular/meson.build @@ -0,0 +1,26 @@ +py.install_sources( + '__init__.py', + 'function_factory.py', + 'standard_options.py', + subdir: 'sage/libs/singular', +) + +extension_data = { + # 'function': files('function.pyx'), # not yet on conda + # 'groebner_strategy': files('groebner_strategy.pyx'), # not yet on conda + # 'option': files('option.pyx'), # not yet on conda + # 'polynomial': files('polynomial.pyx'), # not yet on conda + # 'ring': files('ring.pyx'), # not yet on conda + # 'singular': files('singular.pyx'), # not yet on conda +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/singular', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index 8a4ef527163..c0a73029542 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -1,3 +1,16 @@ +# Cannot be found via pkg-config +meataxe = declare_dependency( + dependencies: [ + cc.find_library('meataxe', required: false), + ] +) +iml = declare_dependency( + dependencies: [ + cc.find_library('iml'), + ] +) + + py.install_sources( 'all.py', 'all__sagemath_meataxe.py', @@ -16,12 +29,6 @@ py.install_sources( subdir: 'sage/matrix', ) -# Cannot be found via pkg-config -meataxe = declare_dependency( - dependencies: [ - cc.find_library('meataxe', required: false), - ] -) extension_data = { 'action': files('action.pyx'), @@ -74,8 +81,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/matrix', install: true, - include_directories: [inc_cpython, inc_numpy, inc_flint, inc_ext, inc_rings, inc_rings_finite, inc_arb, inc_ntl], - dependencies: [py_dep, cysignals, cypari2, gmp, mpfr], + include_directories: [inc_cpython, inc_numpy, inc_flint, inc_ext, inc_rings, inc_rings_finite, inc_arb, inc_ntl, inc_iml], + dependencies: [py_dep, cysignals, cypari2, gmp, mpfr, pari, flint, iml], ) endforeach foreach name, pyx : extension_data_cpp diff --git a/src/sage/meson.build b/src/sage/meson.build index daf388cc35a..bd87f6f21ec 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -47,3 +47,8 @@ subdir('ext') subdir('interfaces') subdir('groups') subdir('matrix') +subdir('graphs') +subdir('algebras') +subdir('monoids') +subdir('symbolic') +subdir('quadratic_forms') diff --git a/src/sage/modules/meson.build b/src/sage/modules/meson.build index b257bd523f7..76169bd776d 100644 --- a/src/sage/modules/meson.build +++ b/src/sage/modules/meson.build @@ -51,6 +51,10 @@ foreach name, pyx : extension_data subdir: 'sage/modules', install: true, include_directories: [inc_cpython, inc_numpy, inc_rings_finite, inc_ext], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach + +install_subdir('fg_pid', install_dir: sage_install_dir / 'modules') +install_subdir('fp_graded', install_dir: sage_install_dir / 'modules') +subdir('with_basis') diff --git a/src/sage/modules/with_basis/meson.build b/src/sage/modules/with_basis/meson.build new file mode 100644 index 00000000000..992afc5bbba --- /dev/null +++ b/src/sage/modules/with_basis/meson.build @@ -0,0 +1,24 @@ +py.install_sources( + 'all.py', + 'cell_module.py', + 'invariant.py', + 'morphism.py', + 'representation.py', + 'subquotient.py', + subdir: 'sage/modules/with_basis', +) + +extension_data = { + 'indexed_element': files('indexed_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/modules/with_basis', + install: true, + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals], + ) +endforeach + diff --git a/src/sage/monoids/meson.build b/src/sage/monoids/meson.build new file mode 100644 index 00000000000..6ded8192939 --- /dev/null +++ b/src/sage/monoids/meson.build @@ -0,0 +1,30 @@ +py.install_sources( + 'all.py', + 'automatic_semigroup.py', + 'free_abelian_monoid.py', + 'free_monoid.py', + 'free_monoid_element.py', + 'hecke_monoid.py', + 'indexed_free_monoid.py', + 'monoid.py', + 'string_monoid.py', + 'string_monoid_element.py', + 'string_ops.py', + 'trace_monoid.py', + subdir: 'sage/monoids', +) + +extension_data = { + 'free_abelian_monoid_element': files('free_abelian_monoid_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/monoids', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/quadratic_forms/meson.build b/src/sage/quadratic_forms/meson.build new file mode 100644 index 00000000000..c3ef0ef5e9e --- /dev/null +++ b/src/sage/quadratic_forms/meson.build @@ -0,0 +1,49 @@ +py.install_sources( + 'all.py', + 'binary_qf.py', + 'constructions.py', + 'extras.py', + 'qfsolve.py', + 'quadratic_form.py', + 'quadratic_form__automorphisms.py', + 'quadratic_form__count_local_2.py', + 'quadratic_form__equivalence_testing.py', + 'quadratic_form__genus.py', + 'quadratic_form__local_density_congruence.py', + 'quadratic_form__local_density_interfaces.py', + 'quadratic_form__local_field_invariants.py', + 'quadratic_form__local_normal_form.py', + 'quadratic_form__local_representation_conditions.py', + 'quadratic_form__mass.py', + 'quadratic_form__mass__Conway_Sloane_masses.py', + 'quadratic_form__mass__Siegel_densities.py', + 'quadratic_form__neighbors.py', + 'quadratic_form__reduction_theory.py', + 'quadratic_form__siegel_product.py', + 'quadratic_form__split_local_covering.py', + 'quadratic_form__ternary_Tornaria.py', + 'quadratic_form__theta.py', + 'quadratic_form__variable_substitutions.py', + 'random_quadraticform.py', + 'special_values.py', + 'ternary_qf.py', + subdir: 'sage/quadratic_forms', +) + +extension_data = { + 'count_local_2': files('count_local_2.pyx'), + 'quadratic_form__evaluate': files('quadratic_form__evaluate.pyx'), + 'ternary': files('ternary.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/quadratic_forms', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + +install_subdir('genera', install_dir: sage_install_dir / 'quadratic_forms') diff --git a/src/sage/rings/all.py b/src/sage/rings/all.py index 2c2f6a0523e..2222d2af866 100644 --- a/src/sage/rings/all.py +++ b/src/sage/rings/all.py @@ -145,7 +145,8 @@ # c-finite sequences from sage.rings.cfinite_sequence import CFiniteSequence, CFiniteSequences -from sage.rings.bernoulli_mod_p import bernoulli_mod_p, bernoulli_mod_p_single +# How is bernmm working? where are its source files? +#from sage.rings.bernoulli_mod_p import bernoulli_mod_p, bernoulli_mod_p_single from sage.rings.monomials import monomials diff --git a/src/sage/rings/function_field/meson.build b/src/sage/rings/function_field/meson.build index 5a2013e6844..86be49c5390 100644 --- a/src/sage/rings/function_field/meson.build +++ b/src/sage/rings/function_field/meson.build @@ -42,3 +42,5 @@ foreach name, pyx : extension_data dependencies: [py_dep], ) endforeach + +install_subdir('drinfeld_modules', install_dir: sage_install_dir / 'rings/function_field') diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index a2efe401fbe..595aa6a6df4 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -1,4 +1,23 @@ +mpfi = declare_dependency( + dependencies: [ + cc.find_library('mpfi'), + ] +) +gsl = dependency('gsl') +# Cannot be found via pkg-config +arb = declare_dependency( + dependencies: [ + cc.find_library('arb'), + ] +) +mpc = declare_dependency( + dependencies: [ + cc.find_library('mpc'), + ] +) + py.install_sources( + '__init__.py', 'algebraic_closure_finite_field.py', 'all.py', 'all__sagemath_categories.py', @@ -45,8 +64,6 @@ py.install_sources( extension_data = { 'abc': files('abc.pyx'), - #'bernmm': files('bernmm.pyx'), - compilation error - #'bernoulli_mod_p': files('bernoulli_mod_p.pyx'), - compilation error 'complex_arb': files('complex_arb.pyx'), 'complex_conversion': files('complex_conversion.pyx'), 'complex_double': files('complex_double.pyx'), @@ -57,7 +74,6 @@ extension_data = { 'factorint_flint': files('factorint_flint.pyx'), 'factorint_pari': files('factorint_pari.pyx'), 'fast_arith': files('fast_arith.pyx'), - #'fraction_field_FpT': files('fraction_field_FpT.pyx'), - needs finite rings 'fraction_field_element': files('fraction_field_element.pyx'), 'integer': files('integer.pyx'), 'integer_ring': files('integer_ring.pyx'), @@ -69,7 +85,6 @@ extension_data = { 'power_series_poly': files('power_series_poly.pyx'), 'power_series_ring_element': files('power_series_ring_element.pyx'), 'puiseux_series_ring_element': files('puiseux_series_ring_element.pyx'), - 'rational': files('rational.pyx'), 'real_arb': files('real_arb.pyx'), 'real_double': files('real_double.pyx'), 'real_double_element_gsl': files('real_double_element_gsl.pyx'), @@ -87,43 +102,41 @@ extension_data = { 'tate_algebra_ideal': files('tate_algebra_ideal.pyx'), } -mpfi = declare_dependency( - dependencies: [ - cc.find_library('mpfi'), - ] -) -gsl = dependency('gsl') -# Cannot be found by pkg-config -flint = declare_dependency( - dependencies: [ - cc.find_library('flint'), - ] -) -# Cannot be found via pkg-config -arb = declare_dependency( - dependencies: [ - cc.find_library('arb'), - ] -) - foreach name, pyx : extension_data py.extension_module(name, sources: pyx, subdir: 'sage/rings', install: true, - include_directories: [inc_cpython, inc_flint, inc_gsl, inc_arb], - dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl, flint, arb], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_rings], + dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl, flint, arb, mpc], ) endforeach -install_subdir('asymptotic', install_dir: sage_install_dir / 'rings') -install_subdir('invariants', install_dir: sage_install_dir / 'rings') -install_subdir('valuation', install_dir: sage_install_dir / 'rings') +extension_data_cpp = { + 'bernmm': files('bernmm.pyx'), + 'bernoulli_mod_p': files('bernoulli_mod_p.pyx'), + 'fraction_field_FpT': files('fraction_field_FpT.pyx'), + 'rational': files('rational.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/rings', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_rings, inc_ntl, inc_rings_finite], + dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl, flint, arb, mpc, ntl], + ) +endforeach +install_subdir('asymptotic', install_dir: sage_install_dir / 'rings') subdir('convert') subdir('finite_rings') subdir('function_field') +install_subdir('invariants', install_dir: sage_install_dir / 'rings') subdir('number_field') subdir('padics') subdir('polynomial') subdir('semirings') +install_subdir('valuation', install_dir: sage_install_dir / 'rings') diff --git a/src/sage/rings/padics/meson.build b/src/sage/rings/padics/meson.build index 71ca8a1e91f..afd0f50a765 100644 --- a/src/sage/rings/padics/meson.build +++ b/src/sage/rings/padics/meson.build @@ -70,6 +70,6 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_ntl, inc_ext], - dependencies: [py_dep, cypari2, cysignals, gmp], + dependencies: [py_dep, cypari2, cysignals, gmp, ntl], ) endforeach diff --git a/src/sage/rings/padics/pow_computer_ext.pyx b/src/sage/rings/padics/pow_computer_ext.pyx index 742464a492d..1460da23cd4 100644 --- a/src/sage/rings/padics/pow_computer_ext.pyx +++ b/src/sage/rings/padics/pow_computer_ext.pyx @@ -68,7 +68,7 @@ from sage.libs.ntl.ntl_ZZ cimport ntl_ZZ from sage.libs.ntl.ntl_ZZ_pX cimport ntl_ZZ_pX, ntl_ZZ_pX_Modulus from sage.rings.integer cimport Integer -cdef extern from "sage/ext/ccobject.h": +cdef extern from "ccobject.h": ZZ_c* Allocate_ZZ_array "Allocate_array"(size_t n) void Delete_ZZ_array "Delete_array"(ZZ_c* v) ZZ_pX_c* Allocate_ZZ_pX_array "Allocate_array"(size_t n) diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index 72dc152ad14..a42fc33d338 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -36,7 +36,6 @@ py.install_sources( 'toy_variety.py', subdir: 'sage/rings/polynomial', ) -install_subdir('padics', install_dir: sage_install_dir / 'polynomial') extension_data_cpp = { 'evaluation_ntl': files('evaluation_ntl.pyx'), @@ -82,7 +81,7 @@ foreach name, pyx : extension_data subdir: 'sage/rings/polynomial', install: true, include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings, inc_numpy, inc_ext, inc_arb], - dependencies: [py_dep, cysignals, cypari2, gmp, mpfi, arb], + dependencies: [py_dep, cysignals, cypari2, gmp, mpfi, arb, flint], ) endforeach @@ -97,5 +96,6 @@ foreach name, pyx : extension_data_cpp ) endforeach +install_subdir('padics', install_dir: sage_install_dir / 'rings/polynomial') subdir('pbori') subdir('weil') diff --git a/src/sage/symbolic/__init__.py b/src/sage/symbolic/__init__.py new file mode 100644 index 00000000000..27875dc3de5 --- /dev/null +++ b/src/sage/symbolic/__init__.py @@ -0,0 +1 @@ +# here so that cython creates the correct module name diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build new file mode 100644 index 00000000000..c60742ad285 --- /dev/null +++ b/src/sage/symbolic/meson.build @@ -0,0 +1,69 @@ +# cannot be found via pkg-config +singular = declare_dependency( + dependencies: [ + cc.find_library('singular', required: false), + ], +) +ginac = declare_dependency( + dependencies: [ + cc.find_library('ginac', required: false), + ], +) + +py.install_sources( + 'all.py', + 'assumptions.py', + 'benchmark.py', + 'callable.py', + 'complexity_measures.py', + 'constants.py', + 'expression_conversion_algebraic.py', + 'expression_conversion_sympy.py', + 'expression_conversions.py', + 'function_factory.py', + 'maxima_wrapper.py', + 'operators.py', + 'random_tests.py', + 'relation.py', + 'subring.py', + 'symbols.py', + 'symengine.py', + 'tests.py', + 'units.py', + subdir: 'sage/symbolic', +) + +extension_data = { + 'function': files('function.pyx'), + 'ring': files('ring.pyx'), +} + +inc_ginac = include_directories('ginac') + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/symbolic', + install: true, + include_directories: [inc_cpython, inc_rings, inc_ginac], + dependencies: [py_dep, cysignals, flint, gmp, singular], + ) +endforeach + +extension_data_cpp = { + 'expression': files('expression.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/symbolic', + install: true, + cython_args: ['-I', inc_numpy], + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_rings, inc_ext, inc_ginac], + dependencies: [py_dep, cysignals, flint, gmp, singular, cypari2, ginac], + ) +endforeach + +install_subdir('integration', install_dir: sage_install_dir / 'symbolic') From c279072ad4b702b4b07ea75ebb2225700abee1e9 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 2 Nov 2023 16:03:40 +0000 Subject: [PATCH 032/161] Fix matrix --- generate-meson.py | 50 ++++++++++++++--- src/meson.build | 104 ++++++++++++++++++++++++++++++++++++ src/sage/matrix/meson.build | 41 +++++++------- 3 files changed, 168 insertions(+), 27 deletions(-) diff --git a/generate-meson.py b/generate-meson.py index c0648ad3b65..9582903fc52 100644 --- a/generate-meson.py +++ b/generate-meson.py @@ -37,23 +37,40 @@ def get_metadata(path: Path): with open(path, 'r') as file: metadata = SimpleNamespace() metadata.path = path - metadata.is_cpp = any(line.startswith('# distutils: language = c++') for line in file) - metadata.libraries = [] for line in file: if line.startswith('# distutils: libraries ='): libraries = line.split('libraries =')[1].strip().split() - libraries = [library.replace('NTL_LIBRARIES', 'ntl').replace('SINGULAR_LIBRARIES', 'singular') for library in libraries] + libraries = [ + library + .replace('ARB_LIBRARY', 'arb') + .replace('NTL_LIBRARIES', 'ntl') + .replace('SINGULAR_LIBRARIES', 'singular') + .replace('LINBOX_LIBRARIES', 'linbox') + .replace('FFLASFFPACK_LIBRARIES', 'fflas') + .replace('GSL_LIBRARIES', 'gsl') + .replace('M4RI_LIBRARIES', 'm4ri') + .replace('GDLIB_LIBRARIES', 'gd') + .replace('LIBPNG_LIBRARIES', 'png') + .replace('CBLAS_LIBRARIES', 'cblas') + .replace('ZLIB_LIBRARIES', 'zlib') + for library in libraries] metadata.libraries += libraries metadata.inc_dirs = [] c_file = path.with_suffix('.c') + cpp_file = path.with_suffix('.cpp') + if cpp_file.exists(): + metadata.is_cpp = True + c_file = cpp_file + else: + metadata.is_cpp = False if c_file.exists(): metadata.not_yet_on_conda = False with open(c_file, 'r') as c_file: contents = c_file.read() known_inc_dirs = { - 'sage/cpython': 'inc_cpython', + 'sage/cpython/': 'inc_cpython', 'sage/rings': 'inc_rings', 'sage/rings/finite_rings': 'inc_rings_finite', 'sage/libs/flint': 'inc_flint', @@ -61,11 +78,28 @@ def get_metadata(path: Path): 'sage/libs/ntl': 'inc_ntl', 'sage/libs/arb': 'inc_arb', 'sage/data_structures': 'inc_data_structures', - 'sage/ext': 'inc_ext', + 'sage/ext/': 'inc_ext', + 'numpy/core/include/': 'inc_numpy', } for known_inc_dir in known_inc_dirs: if known_inc_dir in contents: metadata.inc_dirs.append(known_inc_dirs[known_inc_dir]) + known_libs = { + 'cypari2/': 'cypari2', + 'cysignals/': 'cysignals', + '/gmp.h': 'gmp', + '/iml.h': 'iml', + '/m4ri/': 'm4ri', + '/pari/': 'pari', + '/flint/': 'flint', + '/fflas-ffpack/': 'fflas', + '/givaro/': 'givaro', + '/gmp++/': 'gmpxx', + '/linbox/': 'linbox', + } + for known_lib in known_libs: + if known_lib in contents: + metadata.libraries.append(known_libs[known_lib]) else: metadata.not_yet_on_conda = metadata.is_cpp is False @@ -74,7 +108,7 @@ def get_metadata(path: Path): cython_files = [get_metadata(file) for file in cython_files] cython_c_files = [file for file in cython_files if not file.is_cpp] cython_cpp_files = [file for file in cython_files if file.is_cpp] - all_libraries = sorted(set(library for file in cython_files for library in file.libraries)) + all_libraries = sorted(set(library for file in cython_files for library in file.libraries) | {'gmp'}) all_inc_dirs = sorted(set(inc_dir for file in cython_files for inc_dir in file.inc_dirs)) subdirs = sorted(list(folder.glob('*/'))) @@ -106,7 +140,7 @@ def get_metadata(path: Path): meson_build.write(f" subdir: '{folder_rel_to_src}',\n") meson_build.write(' install: true,\n') meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") - meson_build.write(f" dependencies: [py_dep, cysignals, gmp{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") + meson_build.write(f" dependencies: [py_dep{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") meson_build.write(' )\n') meson_build.write('endforeach\n') @@ -127,7 +161,7 @@ def get_metadata(path: Path): meson_build.write(' install: true,\n') meson_build.write(' override_options : [\'cython_language=cpp\'],\n') meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") - meson_build.write(f" dependencies: [py_dep, cysignals, gmp{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") + meson_build.write(f" dependencies: [py_dep{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") meson_build.write(' )\n') meson_build.write('endforeach\n') diff --git a/src/meson.build b/src/meson.build index 63faf358971..6deb1e671ed 100644 --- a/src/meson.build +++ b/src/meson.build @@ -75,6 +75,110 @@ flint = declare_dependency( ] ) +cblas = dependency('cblas') +gsl = dependency('gsl', fallback: ['gsl', 'gsl_dep'], version : '>=2.5', required: true) +gd = declare_dependency( + dependencies: [ + cc.find_library('gd'), + ] +) +iml = declare_dependency( + dependencies: [ + cc.find_library('iml'), + ] +) +m = declare_dependency( + dependencies: [ + cc.find_library('m'), + ] +) +m4ri = declare_dependency( + dependencies: [ + cc.find_library('m4ri'), + ] +) +m4rie = declare_dependency( + dependencies: [ + cc.find_library('m4rie'), + ] +) +mtx = declare_dependency( + dependencies: [ + cc.find_library('mtx', required: false), + ] +) +png = declare_dependency( + dependencies: [ + cc.find_library('png'), + ] +) +zlib = declare_dependency( + dependencies: [ + cc.find_library('z'), + ] +) +intl = declare_dependency( + dependencies: [ + cc.find_library('intl', required: false), + ] +) +curl = declare_dependency( + dependencies: [ + cc.find_library('curl'), + ] +) +ec = declare_dependency( + dependencies: [ + cc.find_library('ec'), + ] +) +ecm = declare_dependency( + dependencies: [ + cc.find_library('ecm'), + ] +) +glpk = declare_dependency( + dependencies: [ + cc.find_library('glpk'), + ] +) +ppl = declare_dependency( + dependencies: [ + cc.find_library('ppl'), + ] +) +gmpxx = declare_dependency( + dependencies: [ + cc.find_library('gmpxx'), + ] +) +readline = declare_dependency( + dependencies: [ + cc.find_library('readline'), + ] +) +lfunction = declare_dependency( + dependencies: [ + cc.find_library('Lfunction', required: false), + ] +) +fflas = declare_dependency( + dependencies: [ + cc.find_library('fflas'), + ] +) +givaro = declare_dependency( + dependencies: [ + cc.find_library('givaro'), + ] +) +linbox = declare_dependency( + dependencies: [ + cc.find_library('linbox'), + ] +) + + # It's strange but cython cannot find its own include files # so we find them ourselves, and add them to the include path inc_cython = run_command(py, diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index c0a73029542..f2a3bab7bda 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -12,6 +12,7 @@ iml = declare_dependency( py.install_sources( + '__init__.py', 'all.py', 'all__sagemath_meataxe.py', 'benchmark.py', @@ -29,7 +30,6 @@ py.install_sources( subdir: 'sage/matrix', ) - extension_data = { 'action': files('action.pyx'), 'args': files('args.pyx'), @@ -48,11 +48,7 @@ extension_data = { 'matrix_gap': files('matrix_gap.pyx'), 'matrix_generic_dense': files('matrix_generic_dense.pyx'), 'matrix_generic_sparse': files('matrix_generic_sparse.pyx'), - 'matrix_gf2e_dense': files('matrix_gf2e_dense.pyx'), - #'matrix_gfpn_dense': files('matrix_gfpn_dense.pyx'), - requires meataxe - 'matrix_integer_dense': files('matrix_integer_dense.pyx'), - 'matrix_mod2_dense': files('matrix_mod2_dense.pyx'), - #'matrix_mpolynomial_dense': files('matrix_mpolynomial_dense.pyx'), - compilation error + # 'matrix_gfpn_dense': files('matrix_gfpn_dense.pyx'), # not yet on conda 'matrix_numpy_dense': files('matrix_numpy_dense.pyx'), 'matrix_numpy_integer_dense': files('matrix_numpy_integer_dense.pyx'), 'matrix_polynomial_dense': files('matrix_polynomial_dense.pyx'), @@ -67,31 +63,38 @@ extension_data = { 'misc_mpfr': files('misc_mpfr.pyx'), 'strassen': files('strassen.pyx'), } -extension_data_cpp = { - 'matrix_cyclo_dense': files('matrix_cyclo_dense.pyx'), - 'matrix_modn_dense_double': files('matrix_modn_dense_double.pyx'), - 'matrix_modn_dense_float': files('matrix_modn_dense_float.pyx'), - 'matrix_integer_sparse': files('matrix_integer_sparse.pyx'), - 'matrix_modn_sparse': files('matrix_modn_sparse.pyx'), - 'matrix_rational_dense': files('matrix_rational_dense.pyx'), -} foreach name, pyx : extension_data py.extension_module(name, sources: pyx, subdir: 'sage/matrix', install: true, - include_directories: [inc_cpython, inc_numpy, inc_flint, inc_ext, inc_rings, inc_rings_finite, inc_arb, inc_ntl, inc_iml], - dependencies: [py_dep, cysignals, cypari2, gmp, mpfr, pari, flint, iml], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mtx, ntl, pari, png, zlib], ) endforeach + +extension_data_cpp = { + 'matrix_cyclo_dense': files('matrix_cyclo_dense.pyx'), + 'matrix_gf2e_dense': files('matrix_gf2e_dense.pyx'), + 'matrix_integer_dense': files('matrix_integer_dense.pyx'), + 'matrix_integer_sparse': files('matrix_integer_sparse.pyx'), + 'matrix_mod2_dense': files('matrix_mod2_dense.pyx'), + 'matrix_modn_dense_double': files('matrix_modn_dense_double.pyx'), + 'matrix_modn_dense_float': files('matrix_modn_dense_float.pyx'), + 'matrix_modn_sparse': files('matrix_modn_sparse.pyx'), + 'matrix_mpolynomial_dense': files('matrix_mpolynomial_dense.pyx'), + 'matrix_rational_dense': files('matrix_rational_dense.pyx'), +} + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/matrix', install: true, - override_options: ['cython_language=cpp'], - include_directories: [inc_cpython, inc_numpy, inc_flint, inc_ext, inc_rings_finite, inc_rings, inc_arb, inc_ntl], - dependencies: [py_dep, cysignals, cypari2, gmp, mpfr], + override_options : ['cython_language=cpp'], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mtx, ntl, pari, png, zlib], ) endforeach + From 8accfbda36956937d0b13b2ff03e519ab4c8a8e2 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 2 Nov 2023 18:22:48 +0000 Subject: [PATCH 033/161] Last set of meson files --- generate-meson.py | 16 +++++ meson.build | 3 - src/meson.build | 40 ++++++++++- .../finite_dimensional_algebras/meson.build | 2 +- src/sage/algebras/fusion_rings/meson.build | 12 ++-- src/sage/algebras/letterplace/meson.build | 15 +++-- src/sage/algebras/lie_algebras/meson.build | 2 +- src/sage/algebras/meson.build | 10 +-- src/sage/algebras/quatalg/meson.build | 7 +- src/sage/arith/meson.build | 3 +- src/sage/calculus/meson.build | 33 +++++++++ src/sage/calculus/transforms/meson.build | 21 ++++++ src/sage/categories/examples/meson.build | 50 ++++++++++++++ src/sage/categories/meson.build | 8 ++- src/sage/coding/codecan/meson.build | 20 ++++++ src/sage/coding/meson.build | 57 ++++++++++++++++ src/sage/combinat/crystals/meson.build | 2 +- src/sage/combinat/designs/meson.build | 2 +- src/sage/combinat/integer_lists/meson.build | 2 +- src/sage/combinat/matrices/meson.build | 4 +- src/sage/combinat/posets/meson.build | 2 +- .../rigged_configurations/meson.build | 2 +- src/sage/combinat/root_system/meson.build | 2 +- src/sage/combinat/words/meson.build | 2 +- src/sage/cpython/meson.build | 5 +- src/sage/crypto/meson.build | 35 ++++++++++ src/sage/data_structures/meson.build | 10 +-- src/sage/ext/interpreters/meson.build | 25 ++----- src/sage/ext/meson.build | 4 +- src/sage/functions/meson.build | 38 +++++++++++ src/sage/games/meson.build | 22 ++++++ src/sage/geometry/meson.build | 46 +++++++++++++ src/sage/geometry/triangulation/meson.build | 22 ++++++ src/sage/graphs/base/meson.build | 10 +-- src/sage/graphs/generators/meson.build | 2 +- .../graphs/graph_decompositions/meson.build | 33 ++++++--- src/sage/graphs/meson.build | 54 ++++++++++----- src/sage/groups/matrix_gps/meson.build | 42 ++++++++++++ src/sage/groups/meson.build | 16 +++-- src/sage/groups/perm_gps/meson.build | 28 ++++++++ .../groups/perm_gps/partn_ref/meson.build | 28 ++++++++ .../groups/perm_gps/partn_ref2/meson.build | 19 ++++++ .../semimonomial_transformations/meson.build | 20 ++++++ src/sage/interacts/meson.build | 25 +++++++ src/sage/interfaces/meson.build | 3 +- src/sage/lfunctions/meson.build | 23 +++++++ src/sage/libs/arb/meson.build | 2 +- src/sage/libs/eclib/meson.build | 17 ++--- src/sage/libs/flint/meson.build | 5 +- src/sage/libs/gap/meson.build | 2 +- src/sage/libs/giac/meson.build | 13 ++-- src/sage/libs/glpk/meson.build | 2 +- src/sage/libs/gmp/meson.build | 1 + src/sage/libs/gsl/meson.build | 4 +- src/sage/libs/lcalc/meson.build | 7 +- src/sage/libs/linbox/meson.build | 11 +-- src/sage/libs/meson.build | 35 +++++----- src/sage/libs/mpmath/meson.build | 5 +- src/sage/libs/ntl/meson.build | 7 +- src/sage/libs/pari/meson.build | 5 +- src/sage/libs/singular/meson.build | 21 +++--- src/sage/libs/symmetrica/meson.build | 18 ++--- src/sage/matrix/meson.build | 4 +- src/sage/matroids/meson.build | 39 +++++++++++ src/sage/meson.build | 49 +++++++++++--- src/sage/misc/meson.build | 3 +- src/sage/modular/arithgroup/all.py | 4 +- src/sage/modular/arithgroup/meson.build | 44 ++++++++++++ src/sage/modular/meson.build | 43 ++++++++++++ src/sage/modular/modform/meson.build | 46 +++++++++++++ src/sage/modular/modsym/meson.build | 37 ++++++++++ src/sage/modular/pollack_stevens/meson.build | 26 +++++++ src/sage/modules/meson.build | 20 +++++- src/sage/modules/with_basis/meson.build | 2 +- src/sage/numerical/backends/meson.build | 54 +++++++++++++++ src/sage/numerical/meson.build | 30 +++++++++ src/sage/plot/meson.build | 49 ++++++++++++++ src/sage/plot/plot3d/meson.build | 36 ++++++++++ src/sage/probability/meson.build | 20 ++++++ src/sage/quadratic_forms/meson.build | 2 +- src/sage/quivers/meson.build | 25 +++++++ src/sage/rings/convert/meson.build | 3 +- src/sage/rings/finite_rings/meson.build | 25 ++++--- src/sage/rings/function_field/meson.build | 4 +- src/sage/rings/meson.build | 24 ++----- src/sage/rings/number_field/meson.build | 20 +++--- src/sage/rings/padics/meson.build | 37 +++++----- src/sage/rings/polynomial/meson.build | 35 +++++----- src/sage/rings/polynomial/pbori/meson.build | 24 ++++--- src/sage/rings/polynomial/weil/meson.build | 5 +- src/sage/rings/semirings/meson.build | 5 +- src/sage/schemes/all.py | 9 ++- src/sage/schemes/elliptic_curves/meson.build | 67 +++++++++++++++++++ .../schemes/hyperelliptic_curves/meson.build | 36 ++++++++++ src/sage/schemes/meson.build | 20 ++++++ src/sage/schemes/toric/meson.build | 33 +++++++++ src/sage/sets/meson.build | 7 +- src/sage/stats/distributions/meson.build | 21 ++++++ src/sage/stats/hmm/meson.build | 22 ++++++ src/sage/stats/meson.build | 24 +++++++ src/sage/structure/meson.build | 7 +- src/sage/symbolic/meson.build | 14 ++-- src/sage/tests/meson.build | 21 +++--- 103 files changed, 1669 insertions(+), 309 deletions(-) create mode 100644 src/sage/calculus/meson.build create mode 100644 src/sage/calculus/transforms/meson.build create mode 100644 src/sage/categories/examples/meson.build create mode 100644 src/sage/coding/codecan/meson.build create mode 100644 src/sage/coding/meson.build create mode 100644 src/sage/crypto/meson.build create mode 100644 src/sage/functions/meson.build create mode 100644 src/sage/games/meson.build create mode 100644 src/sage/geometry/meson.build create mode 100644 src/sage/geometry/triangulation/meson.build create mode 100644 src/sage/groups/matrix_gps/meson.build create mode 100644 src/sage/groups/perm_gps/meson.build create mode 100644 src/sage/groups/perm_gps/partn_ref/meson.build create mode 100644 src/sage/groups/perm_gps/partn_ref2/meson.build create mode 100644 src/sage/groups/semimonomial_transformations/meson.build create mode 100644 src/sage/interacts/meson.build create mode 100644 src/sage/lfunctions/meson.build create mode 100644 src/sage/matroids/meson.build create mode 100644 src/sage/modular/arithgroup/meson.build create mode 100644 src/sage/modular/meson.build create mode 100644 src/sage/modular/modform/meson.build create mode 100644 src/sage/modular/modsym/meson.build create mode 100644 src/sage/modular/pollack_stevens/meson.build create mode 100644 src/sage/numerical/backends/meson.build create mode 100644 src/sage/numerical/meson.build create mode 100644 src/sage/plot/meson.build create mode 100644 src/sage/plot/plot3d/meson.build create mode 100644 src/sage/probability/meson.build create mode 100644 src/sage/quivers/meson.build create mode 100644 src/sage/schemes/elliptic_curves/meson.build create mode 100644 src/sage/schemes/hyperelliptic_curves/meson.build create mode 100644 src/sage/schemes/meson.build create mode 100644 src/sage/schemes/toric/meson.build create mode 100644 src/sage/stats/distributions/meson.build create mode 100644 src/sage/stats/hmm/meson.build create mode 100644 src/sage/stats/meson.build diff --git a/generate-meson.py b/generate-meson.py index 9582903fc52..9a4bed7a73c 100644 --- a/generate-meson.py +++ b/generate-meson.py @@ -54,7 +54,12 @@ def get_metadata(path: Path): .replace('LIBPNG_LIBRARIES', 'png') .replace('CBLAS_LIBRARIES', 'cblas') .replace('ZLIB_LIBRARIES', 'zlib') + .replace('Lfunction', 'lfunction') for library in libraries] + try: + libraries.remove('CYGWIN_SQLITE3_LIBS') + except ValueError: + pass metadata.libraries += libraries metadata.inc_dirs = [] @@ -80,6 +85,10 @@ def get_metadata(path: Path): 'sage/data_structures': 'inc_data_structures', 'sage/ext/': 'inc_ext', 'numpy/core/include/': 'inc_numpy', + 'sage/symbolic/ginac/': 'inc_ginac', + 'sage/symbolic/pynac_wrap.h': 'inc_pynac', + 'sage/groups/perm_gps/partn_ref2/': 'inc_partn_ref2', + 'sage/ext/interpreters/': 'inc_interpreters', } for known_inc_dir in known_inc_dirs: if known_inc_dir in contents: @@ -96,6 +105,13 @@ def get_metadata(path: Path): '/givaro/': 'givaro', '/gmp++/': 'gmpxx', '/linbox/': 'linbox', + '/gsl/': 'gsl', + 'mpfr.h': 'mpfr', + 'sage/symbolic/ginac/': 'ginac', + 'arb.h': 'arb', + 'mpfi.h': 'mpfi', + 'mpc.h': 'mpc', + 'gmpy2/': 'gmpy2', } for known_lib in known_libs: if known_lib in contents: diff --git a/meson.build b/meson.build index d3b48741eaf..b1c16df6459 100644 --- a/meson.build +++ b/meson.build @@ -56,9 +56,6 @@ configure_file(input : 'pkgs/sage-conf_conda/_sage_conf/_conf.py.in', output : '_conf.py', configuration : conf_data) -#arb = dependency('arb', required: true) -#cpari = dependency('cpari', required: true) - test( 'import', py, diff --git a/src/meson.build b/src/meson.build index 6deb1e671ed..4d880e5fb45 100644 --- a/src/meson.build +++ b/src/meson.build @@ -177,7 +177,43 @@ linbox = declare_dependency( cc.find_library('linbox'), ] ) - +braiding = declare_dependency( + dependencies: [ + cc.find_library('braiding'), + ] +) +gc = declare_dependency( + dependencies: [ + cc.find_library('gc'), + ] +) +homfly = declare_dependency( + dependencies: [ + cc.find_library('homfly'), + ] +) +mpc = declare_dependency( + dependencies: [ + cc.find_library('mpc'), + ] +) +# Cannot be found via pkg-config +arb = declare_dependency( + dependencies: [ + cc.find_library('arb'), + ] +) +mpfi = declare_dependency( + dependencies: [ + cc.find_library('mpfi'), + ] +) +gsl = dependency('gsl') +mpc = declare_dependency( + dependencies: [ + cc.find_library('mpc'), + ] +) # It's strange but cython cannot find its own include files # so we find them ourselves, and add them to the include path @@ -222,6 +258,8 @@ inc_arb = include_directories('sage/libs/arb') inc_iml = include_directories('sage/libs') inc_data_structures = include_directories('sage/data_structures') inc_ext = include_directories('sage/ext') +inc_interpreters = include_directories('sage/ext/interpreters') +inc_partn_ref2 = include_directories('sage/groups/perm_gps/partn_ref2') inc_src = include_directories('.') # Submodules diff --git a/src/sage/algebras/finite_dimensional_algebras/meson.build b/src/sage/algebras/finite_dimensional_algebras/meson.build index 3aac590596f..82905b4f663 100644 --- a/src/sage/algebras/finite_dimensional_algebras/meson.build +++ b/src/sage/algebras/finite_dimensional_algebras/meson.build @@ -16,7 +16,7 @@ foreach name, pyx : extension_data subdir: 'sage/algebras/finite_dimensional_algebras', install: true, include_directories: [inc_cpython], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/algebras/fusion_rings/meson.build b/src/sage/algebras/fusion_rings/meson.build index df9ab85023e..150a5f24699 100644 --- a/src/sage/algebras/fusion_rings/meson.build +++ b/src/sage/algebras/fusion_rings/meson.build @@ -15,23 +15,25 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/algebras/fusion_rings', install: true, - include_directories: [inc_numpy, inc_ntl], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_ntl, inc_numpy, inc_rings], + dependencies: [py_dep, cysignals, gmp], ) endforeach extension_data_cpp = { 'fast_parallel_fmats_methods': files('fast_parallel_fmats_methods.pyx'), - 'shm_managers': files('shm_managers.pyx'), 'poly_tup_engine': files('poly_tup_engine.pyx'), + 'shm_managers': files('shm_managers.pyx'), } + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/algebras/fusion_rings', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_numpy, inc_ntl], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_ntl, inc_numpy, inc_rings], + dependencies: [py_dep, cysignals, gmp], ) endforeach + diff --git a/src/sage/algebras/letterplace/meson.build b/src/sage/algebras/letterplace/meson.build index 7ad5d465c6d..bc3bd24022e 100644 --- a/src/sage/algebras/letterplace/meson.build +++ b/src/sage/algebras/letterplace/meson.build @@ -3,19 +3,20 @@ py.install_sources( subdir: 'sage/algebras/letterplace', ) -extension_data = { - # 'free_algebra_element_letterplace': files('free_algebra_element_letterplace.pyx'), # not yet on conda - # 'free_algebra_letterplace': files('free_algebra_letterplace.pyx'), # not yet on conda - # 'letterplace_ideal': files('letterplace_ideal.pyx'), # not yet on conda +extension_data_cpp = { + 'free_algebra_element_letterplace': files('free_algebra_element_letterplace.pyx'), + 'free_algebra_letterplace': files('free_algebra_letterplace.pyx'), + 'letterplace_ideal': files('letterplace_ideal.pyx'), } -foreach name, pyx : extension_data +foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/algebras/letterplace', install: true, - include_directories: [], - dependencies: [py_dep, cysignals], + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/algebras/lie_algebras/meson.build b/src/sage/algebras/lie_algebras/meson.build index 74e9975ebd7..72a44793891 100644 --- a/src/sage/algebras/lie_algebras/meson.build +++ b/src/sage/algebras/lie_algebras/meson.build @@ -32,7 +32,7 @@ foreach name, pyx : extension_data subdir: 'sage/algebras/lie_algebras', install: true, include_directories: [inc_cpython, inc_data_structures], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/algebras/meson.build b/src/sage/algebras/meson.build index d7878ee1373..be482e9d38f 100644 --- a/src/sage/algebras/meson.build +++ b/src/sage/algebras/meson.build @@ -52,16 +52,16 @@ foreach name, pyx : extension_data subdir: 'sage/algebras', install: true, include_directories: [inc_cpython, inc_data_structures, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach subdir('finite_dimensional_algebras') subdir('fusion_rings') -subdir('hecke_algebras') +install_subdir('hecke_algebras', install_dir: sage_install_dir / 'algebras') subdir('letterplace') subdir('lie_algebras') -subdir('lie_conformal_algebras') -subdir('quantum_groups') +install_subdir('lie_conformal_algebras', install_dir: sage_install_dir / 'algebras') +install_subdir('quantum_groups', install_dir: sage_install_dir / 'algebras') subdir('quatalg') -subdir('steenrod') +install_subdir('steenrod', install_dir: sage_install_dir / 'algebras') diff --git a/src/sage/algebras/quatalg/meson.build b/src/sage/algebras/quatalg/meson.build index 8042e99b64c..36dc9f57077 100644 --- a/src/sage/algebras/quatalg/meson.build +++ b/src/sage/algebras/quatalg/meson.build @@ -1,12 +1,9 @@ -m = dependency('m', required: false) - py.install_sources( 'all.py', 'quaternion_algebra.py', subdir: 'sage/algebras/quatalg', ) - extension_data_cpp = { 'quaternion_algebra_cython': files('quaternion_algebra_cython.pyx'), 'quaternion_algebra_element': files('quaternion_algebra_element.pyx'), @@ -18,8 +15,8 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/algebras/quatalg', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_flint, inc_ntl, inc_ext], - dependencies: [py_dep, cysignals, gmp, m, ntl, flint], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], + dependencies: [py_dep, flint, gmp, m, ntl], ) endforeach diff --git a/src/sage/arith/meson.build b/src/sage/arith/meson.build index c9f26a1d1c5..1387e5246f6 100644 --- a/src/sage/arith/meson.build +++ b/src/sage/arith/meson.build @@ -19,7 +19,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/arith', install: true, - include_directories: [inc_cpython, inc_rings, inc_ext], + include_directories: [inc_cpython, inc_ext, inc_rings], dependencies: [py_dep, cysignals, gmp], ) endforeach + diff --git a/src/sage/calculus/meson.build b/src/sage/calculus/meson.build new file mode 100644 index 00000000000..39b6945d9f7 --- /dev/null +++ b/src/sage/calculus/meson.build @@ -0,0 +1,33 @@ +py.install_sources( + 'all.py', + 'calculus.py', + 'desolvers.py', + 'functional.py', + 'functions.py', + 'predefined.py', + 'test_sympy.py', + 'tests.py', + 'wester.py', + subdir: 'sage/calculus', +) + +extension_data = { + 'integration': files('integration.pyx'), + 'interpolation': files('interpolation.pyx'), + 'interpolators': files('interpolators.pyx'), + 'ode': files('ode.pyx'), + 'riemann': files('riemann.pyx'), + 'var': files('var.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/calculus', + install: true, + include_directories: [inc_ext, inc_numpy], + dependencies: [py_dep, cysignals, gmp, gsl], + ) +endforeach + +subdir('transforms') diff --git a/src/sage/calculus/transforms/meson.build b/src/sage/calculus/transforms/meson.build new file mode 100644 index 00000000000..7da588ca3b5 --- /dev/null +++ b/src/sage/calculus/transforms/meson.build @@ -0,0 +1,21 @@ +py.install_sources( + 'all.py', + 'dft.py', + subdir: 'sage/calculus/transforms', +) + +extension_data = { + 'dwt': files('dwt.pyx'), + 'fft': files('fft.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/calculus/transforms', + install: true, + include_directories: [inc_gsl], + dependencies: [py_dep, cysignals, gmp, gsl], + ) +endforeach + diff --git a/src/sage/categories/examples/meson.build b/src/sage/categories/examples/meson.build new file mode 100644 index 00000000000..b87b550709c --- /dev/null +++ b/src/sage/categories/examples/meson.build @@ -0,0 +1,50 @@ +py.install_sources( + 'algebras_with_basis.py', + 'all.py', + 'commutative_additive_monoids.py', + 'commutative_additive_semigroups.py', + 'coxeter_groups.py', + 'crystals.py', + 'cw_complexes.py', + 'facade_sets.py', + 'filtered_algebras_with_basis.py', + 'filtered_modules_with_basis.py', + 'finite_coxeter_groups.py', + 'finite_dimensional_algebras_with_basis.py', + 'finite_dimensional_lie_algebras_with_basis.py', + 'finite_enumerated_sets.py', + 'finite_monoids.py', + 'finite_semigroups.py', + 'finite_weyl_groups.py', + 'graded_connected_hopf_algebras_with_basis.py', + 'graded_modules_with_basis.py', + 'graphs.py', + 'hopf_algebras_with_basis.py', + 'infinite_enumerated_sets.py', + 'lie_algebras.py', + 'lie_algebras_with_basis.py', + 'magmas.py', + 'manifolds.py', + 'monoids.py', + 'posets.py', + 'semigroups.py', + 'sets_cat.py', + 'sets_with_grading.py', + 'with_realizations.py', + subdir: 'sage/categories/examples', +) + +extension_data = { + 'semigroups_cython': files('semigroups_cython.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/categories/examples', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build index 0639d5bd1ff..beb4a57fe7c 100644 --- a/src/sage/categories/meson.build +++ b/src/sage/categories/meson.build @@ -1,4 +1,5 @@ py.install_sources( + '__init__.py', 'additive_groups.py', 'additive_magmas.py', 'additive_monoids.py', @@ -207,8 +208,9 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/categories', install: true, - #cython_args: ['-I', inc_numpy, '-I', '/workspaces/sage/builddir'], - include_directories: [inc_cpython, inc_numpy], - dependencies: [py_dep], + include_directories: [inc_cpython, inc_ext], + dependencies: [py_dep, gmp], ) endforeach + +subdir('examples') diff --git a/src/sage/coding/codecan/meson.build b/src/sage/coding/codecan/meson.build new file mode 100644 index 00000000000..cbc24c21194 --- /dev/null +++ b/src/sage/coding/codecan/meson.build @@ -0,0 +1,20 @@ +py.install_sources( + 'all.py', + subdir: 'sage/coding/codecan', +) + +extension_data = { + 'autgroup_can_label': files('autgroup_can_label.pyx'), + 'codecan': files('codecan.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/coding/codecan', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_partn_ref2, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/coding/meson.build b/src/sage/coding/meson.build new file mode 100644 index 00000000000..52e933cbc50 --- /dev/null +++ b/src/sage/coding/meson.build @@ -0,0 +1,57 @@ +py.install_sources( + 'abstract_code.py', + 'ag_code.py', + 'all.py', + 'bch_code.py', + 'bounds_catalog.py', + 'channel.py', + 'channels_catalog.py', + 'code_bounds.py', + 'code_constructions.py', + 'codes_catalog.py', + 'cyclic_code.py', + 'databases.py', + 'decoder.py', + 'decoders_catalog.py', + 'delsarte_bounds.py', + 'encoder.py', + 'encoders_catalog.py', + 'extended_code.py', + 'gabidulin_code.py', + 'golay_code.py', + 'goppa_code.py', + 'grs_code.py', + 'guava.py', + 'hamming_code.py', + 'information_set_decoder.py', + 'linear_code.py', + 'linear_code_no_metric.py', + 'linear_rank_metric.py', + 'parity_check_code.py', + 'punctured_code.py', + 'reed_muller_code.py', + 'self_dual_codes.py', + 'subfield_subcode.py', + 'two_weight_db.py', + subdir: 'sage/coding', +) + +extension_data = { + 'ag_code_decoders': files('ag_code_decoders.pyx'), + 'binary_code': files('binary_code.pyx'), + 'kasami_codes': files('kasami_codes.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/coding', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + +subdir('codecan') +install_subdir('guruswami_sudan', install_dir: sage_install_dir / 'coding') +install_subdir('source_coding', install_dir: sage_install_dir / 'coding') diff --git a/src/sage/combinat/crystals/meson.build b/src/sage/combinat/crystals/meson.build index ffe467683a7..92fad748c28 100644 --- a/src/sage/combinat/crystals/meson.build +++ b/src/sage/combinat/crystals/meson.build @@ -47,7 +47,7 @@ foreach name, pyx : extension_data subdir: 'sage/combinat/crystals', install: true, include_directories: [inc_cpython], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/combinat/designs/meson.build b/src/sage/combinat/designs/meson.build index 6dd274ca93b..d9d393de6c8 100644 --- a/src/sage/combinat/designs/meson.build +++ b/src/sage/combinat/designs/meson.build @@ -34,7 +34,7 @@ foreach name, pyx : extension_data subdir: 'sage/combinat/designs', install: true, include_directories: [inc_cpython, inc_data_structures, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/combinat/integer_lists/meson.build b/src/sage/combinat/integer_lists/meson.build index c4968073c27..dd60b6049d0 100644 --- a/src/sage/combinat/integer_lists/meson.build +++ b/src/sage/combinat/integer_lists/meson.build @@ -16,7 +16,7 @@ foreach name, pyx : extension_data subdir: 'sage/combinat/integer_lists', install: true, include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/combinat/matrices/meson.build b/src/sage/combinat/matrices/meson.build index 3d1cda177a1..63398335f03 100644 --- a/src/sage/combinat/matrices/meson.build +++ b/src/sage/combinat/matrices/meson.build @@ -7,7 +7,7 @@ py.install_sources( ) extension_data_cpp = { - # 'dancing_links': files('dancing_links.pyx'), # not yet on conda + 'dancing_links': files('dancing_links.pyx'), } foreach name, pyx : extension_data_cpp @@ -17,7 +17,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/combinat/posets/meson.build b/src/sage/combinat/posets/meson.build index 17faf8c1d80..11fd51fbc62 100644 --- a/src/sage/combinat/posets/meson.build +++ b/src/sage/combinat/posets/meson.build @@ -27,7 +27,7 @@ foreach name, pyx : extension_data subdir: 'sage/combinat/posets', install: true, include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, flint, gmp], ) endforeach diff --git a/src/sage/combinat/rigged_configurations/meson.build b/src/sage/combinat/rigged_configurations/meson.build index b4ba8f3101a..7d6630b9378 100644 --- a/src/sage/combinat/rigged_configurations/meson.build +++ b/src/sage/combinat/rigged_configurations/meson.build @@ -34,7 +34,7 @@ foreach name, pyx : extension_data subdir: 'sage/combinat/rigged_configurations', install: true, include_directories: [], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/combinat/root_system/meson.build b/src/sage/combinat/root_system/meson.build index ac4f179719b..344a26639f7 100644 --- a/src/sage/combinat/root_system/meson.build +++ b/src/sage/combinat/root_system/meson.build @@ -68,7 +68,7 @@ foreach name, pyx : extension_data subdir: 'sage/combinat/root_system', install: true, include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/combinat/words/meson.build b/src/sage/combinat/words/meson.build index bf2980a07af..f9e0acd56a0 100644 --- a/src/sage/combinat/words/meson.build +++ b/src/sage/combinat/words/meson.build @@ -29,7 +29,7 @@ foreach name, pyx : extension_data subdir: 'sage/combinat/words', install: true, include_directories: [inc_cpython, inc_data_structures, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/cpython/meson.build b/src/sage/cpython/meson.build index d7a55aa2d7b..3653d0cfe0b 100644 --- a/src/sage/cpython/meson.build +++ b/src/sage/cpython/meson.build @@ -22,7 +22,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/cpython', install: true, - include_directories: [inc_src], - dependencies: py_dep, + include_directories: [inc_cpython], + dependencies: [py_dep, gmp], ) endforeach + diff --git a/src/sage/crypto/meson.build b/src/sage/crypto/meson.build new file mode 100644 index 00000000000..a6a32908e5e --- /dev/null +++ b/src/sage/crypto/meson.build @@ -0,0 +1,35 @@ +py.install_sources( + '__init__.py', + 'all.py', + 'cipher.py', + 'classical.py', + 'classical_cipher.py', + 'cryptosystem.py', + 'lattice.py', + 'lfsr.py', + 'lwe.py', + 'sboxes.py', + 'stream.py', + 'stream_cipher.py', + 'util.py', + subdir: 'sage/crypto', +) + +extension_data = { + 'boolean_function': files('boolean_function.pyx'), + 'sbox': files('sbox.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/crypto', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + +install_subdir('block_cipher', install_dir: sage_install_dir / 'crypto') +install_subdir('mq', install_dir: sage_install_dir / 'crypto') +install_subdir('public_key', install_dir: sage_install_dir / 'crypto') diff --git a/src/sage/data_structures/meson.build b/src/sage/data_structures/meson.build index d79435dcd6d..ad656c3cab6 100644 --- a/src/sage/data_structures/meson.build +++ b/src/sage/data_structures/meson.build @@ -1,4 +1,5 @@ py.install_sources( + '__init__.py', 'all.py', 'mutable_poset.py', 'stream.py', @@ -6,11 +7,11 @@ py.install_sources( ) extension_data = { - #'binary_search': files('binary_search.pyx'), compilation error + 'binary_search': files('binary_search.pyx'), 'bitset': files('bitset.pyx'), 'bitset_base': files('bitset_base.pyx'), 'blas_dict': files('blas_dict.pyx'), - #'bounded_integer_sequences': files('bounded_integer_sequences.pyx'), requires flint + 'bounded_integer_sequences': files('bounded_integer_sequences.pyx'), 'list_of_pairs': files('list_of_pairs.pyx'), } @@ -19,7 +20,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/data_structures', install: true, - include_directories: [inc_cpython], - dependencies: [py_dep, cysignals, gmp], + include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp], ) endforeach + diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build index 7fc1a937831..f86e7f8abe2 100644 --- a/src/sage/ext/interpreters/meson.build +++ b/src/sage/ext/interpreters/meson.build @@ -4,14 +4,12 @@ py.install_sources( ) extension_data = { - #'wrapper_cc': files('wrapper_cc.pyx'), - compiliation error - #'wrapper_cdf': files('wrapper_cdf.pyx'), - compiliation error - #'wrapper_el': files('wrapper_el.pyx'), - compiliation error + #'wrapper_cc': files('wrapper_cc.pyx'), # compilation error + #'wrapper_cdf': files('wrapper_cdf.pyx'), # compilation error + #'wrapper_el': files('wrapper_el.pyx'), # compilation error 'wrapper_py': files('wrapper_py.pyx'), 'wrapper_rdf': files('wrapper_rdf.pyx'), - #'wrapper_rr': files('wrapper_rr.pyx'), - compiliation error -} -extension_data_cpp = { + #'wrapper_rr': files('wrapper_rr.pyx'), # compilation error } foreach name, pyx : extension_data @@ -19,17 +17,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/ext/interpreters', install: true, - include_directories: [inc_cpython, inc_src], - dependencies: [py_dep, cypari2, cysignals], - ) -endforeach -foreach name, pyx : extension_data_cpp - py.extension_module(name, - sources: pyx, - subdir: 'sage/ext/interpreters', - install: true, - override_options: ['cython_language=cpp'], - include_directories: [inc_cpython, inc_src], - dependencies: [py_dep, cypari2, cysignals], + include_directories: [inc_cpython, inc_ext, inc_interpreters, inc_rings, inc_src], + dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari], ) endforeach + diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index 4ac3a117bef..7f7aadedad5 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -15,8 +15,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/ext', install: true, - include_directories: [inc_cpython], - dependencies: [py_dep, cysignals, cypari2, gmp], + include_directories: [inc_cpython, inc_ext], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/functions/meson.build b/src/sage/functions/meson.build new file mode 100644 index 00000000000..23e895c0e47 --- /dev/null +++ b/src/sage/functions/meson.build @@ -0,0 +1,38 @@ +py.install_sources( + 'airy.py', + 'all.py', + 'bessel.py', + 'error.py', + 'exp_integral.py', + 'gamma.py', + 'generalized.py', + 'hyperbolic.py', + 'hypergeometric.py', + 'jacobi.py', + 'log.py', + 'min_max.py', + 'orthogonal_polys.py', + 'other.py', + 'piecewise.py', + 'special.py', + 'spike_function.py', + 'transcendental.py', + 'trig.py', + 'wigner.py', + subdir: 'sage/functions', +) + +extension_data = { + 'prime_pi': files('prime_pi.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/functions', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/games/meson.build b/src/sage/games/meson.build new file mode 100644 index 00000000000..bc0092e4bf2 --- /dev/null +++ b/src/sage/games/meson.build @@ -0,0 +1,22 @@ +py.install_sources( + 'all.py', + 'hexad.py', + 'quantumino.py', + 'sudoku.py', + subdir: 'sage/games', +) + +extension_data = { + 'sudoku_backtrack': files('sudoku_backtrack.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/games', + install: true, + include_directories: [], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/geometry/meson.build b/src/sage/geometry/meson.build new file mode 100644 index 00000000000..ce70f0d691a --- /dev/null +++ b/src/sage/geometry/meson.build @@ -0,0 +1,46 @@ +py.install_sources( + 'all.py', + 'cone.py', + 'cone_catalog.py', + 'convex_set.py', + 'fan.py', + 'fan_isomorphism.py', + 'fan_morphism.py', + 'hasse_diagram.py', + 'integral_points.py', + 'lattice_polytope.py', + 'linear_expression.py', + 'newton_polygon.py', + 'polyhedral_complex.py', + 'pseudolines.py', + 'relative_interior.py', + 'ribbon_graph.py', + 'toric_lattice.py', + 'toric_plotter.py', + 'voronoi_diagram.py', + subdir: 'sage/geometry', +) + +extension_data = { + 'abc': files('abc.pyx'), + 'integral_points_generic_dense': files('integral_points_generic_dense.pyx'), + 'integral_points_integer_dense': files('integral_points_integer_dense.pyx'), + 'point_collection': files('point_collection.pyx'), + 'toric_lattice_element': files('toric_lattice_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/geometry', + install: true, + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp], + ) +endforeach + +install_subdir('hyperbolic_space', install_dir: sage_install_dir / 'geometry') +install_subdir('hyperplane_arrangement', install_dir: sage_install_dir / 'geometry') +install_subdir('polyhedron', install_dir: sage_install_dir / 'geometry') +install_subdir('riemannian_manifolds', install_dir: sage_install_dir / 'geometry') +subdir('triangulation') diff --git a/src/sage/geometry/triangulation/meson.build b/src/sage/geometry/triangulation/meson.build new file mode 100644 index 00000000000..a47c8b06a1e --- /dev/null +++ b/src/sage/geometry/triangulation/meson.build @@ -0,0 +1,22 @@ +py.install_sources( + 'all.py', + 'element.py', + 'point_configuration.py', + subdir: 'sage/geometry/triangulation', +) + +extension_data_cpp = { + 'base': files('base.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/geometry/triangulation', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/graphs/base/meson.build b/src/sage/graphs/base/meson.build index 573a22616e6..9d8f61a95f2 100644 --- a/src/sage/graphs/base/meson.build +++ b/src/sage/graphs/base/meson.build @@ -7,7 +7,7 @@ py.install_sources( extension_data = { 'dense_graph': files('dense_graph.pyx'), 'graph_backends': files('graph_backends.pyx'), - #'sparse_graph': files('sparse_graph.pyx'), # compilation error + 'sparse_graph': files('sparse_graph.pyx'), 'static_dense_graph': files('static_dense_graph.pyx'), 'static_sparse_backend': files('static_sparse_backend.pyx'), } @@ -17,15 +17,15 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/graphs/base', install: true, - include_directories: [inc_cpython, inc_data_structures], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals, gmp], ) endforeach extension_data_cpp = { 'boost_graph': files('boost_graph.pyx'), 'c_graph': files('c_graph.pyx'), - #'static_sparse_graph': files('static_sparse_graph.pyx'), # compilation error + # 'static_sparse_graph': files('static_sparse_graph.pyx'), # compilation error } foreach name, pyx : extension_data_cpp @@ -35,7 +35,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_data_structures, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/graphs/generators/meson.build b/src/sage/graphs/generators/meson.build index 28b7bcccbdf..43667d84f80 100644 --- a/src/sage/graphs/generators/meson.build +++ b/src/sage/graphs/generators/meson.build @@ -23,7 +23,7 @@ foreach name, pyx : extension_data subdir: 'sage/graphs/generators', install: true, include_directories: [], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/graphs/graph_decompositions/meson.build b/src/sage/graphs/graph_decompositions/meson.build index 3c877e0134a..25dd8703c57 100644 --- a/src/sage/graphs/graph_decompositions/meson.build +++ b/src/sage/graphs/graph_decompositions/meson.build @@ -1,4 +1,14 @@ -tdlib = dependency('tdlib', required: false) +tdlib = declare_dependency( + dependencies: [ + cc.find_library('tdlib', required: false), + ] +) +# Cannot be found via pkg-config +rw = declare_dependency( + dependencies: [ + cc.find_library('rw'), + ] +) py.install_sources( 'all.py', @@ -23,7 +33,7 @@ foreach name, pyx : extension_data subdir: 'sage/graphs/graph_decompositions', install: true, include_directories: [inc_cpython, inc_data_structures], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp, rw], ) endforeach @@ -38,18 +48,19 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_data_structures], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp, rw], ) endforeach if tdlib.found() - py.extension_module('tdlib', - sources: 'tdlib.pyx', - subdir: 'sage/graphs/graph_decompositions', - install: true, - override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_data_structures], - dependencies: [py_dep, cysignals, tdlib], - ) + # Still cannot find the tdlib headers + # py.extension_module('tdlib', + # sources: 'tdlib.pyx', + # subdir: 'sage/graphs/graph_decompositions', + # install: true, + # override_options : ['cython_language=cpp'], + # include_directories: [inc_cpython, inc_data_structures], + # dependencies: [py_dep, cysignals, tdlib], + # ) endif diff --git a/src/sage/graphs/meson.build b/src/sage/graphs/meson.build index 2ee1d5b2c34..737005610c1 100644 --- a/src/sage/graphs/meson.build +++ b/src/sage/graphs/meson.build @@ -1,6 +1,20 @@ -bliss = dependency('bliss', required: false) -mcqd = dependency('mcqd', required: false) +bliss = declare_dependency( + dependencies: [ + cc.find_library('bliss', required: false), + ] +) +mcqd = declare_dependency( + dependencies: [ + cc.find_library('mcqd', required: false), + ] +) +# Cannot be found via pkg-config +planarity = declare_dependency( + dependencies: [ + cc.find_library('planarity'), + ] +) py.install_sources( 'all.py', 'all__sagemath_bliss.py', @@ -64,7 +78,7 @@ foreach name, pyx : extension_data subdir: 'sage/graphs', install: true, include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, flint, gmp, planarity], ) endforeach @@ -82,26 +96,30 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, flint, gmp, planarity], ) endforeach if bliss.found() - py.extension_module('bliss', - sources: files('bliss.pyx'), - subdir: 'sage/graphs', - install: true, - include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], - dependencies: [py_dep, cysignals, bliss], - ) + # Still cannot find the bliss header + # py.extension_module('bliss', + # sources: files('bliss.pyx'), + # subdir: 'sage/graphs', + # install: true, + # override_options : ['cython_language=cpp'], + # include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + # dependencies: [py_dep, cysignals, bliss], + # ) endif if mcqd.found() - py.extension_module('mcqd', - sources: files('mcqd.pyx'), - subdir: 'sage/graphs', - install: true, - include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], - dependencies: [py_dep, cysignals, mcqd], - ) + # Still cannot find the mcqd header + # py.extension_module('mcqd', + # sources: files('mcqd.pyx'), + # subdir: 'sage/graphs', + # install: true, + # override_options : ['cython_language=cpp'], + # include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + # dependencies: [py_dep, cysignals, mcqd], + # ) endif subdir('base') diff --git a/src/sage/groups/matrix_gps/meson.build b/src/sage/groups/matrix_gps/meson.build new file mode 100644 index 00000000000..51348e1110b --- /dev/null +++ b/src/sage/groups/matrix_gps/meson.build @@ -0,0 +1,42 @@ +py.install_sources( + 'all.py', + 'binary_dihedral.py', + 'catalog.py', + 'coxeter_group.py', + 'finitely_generated.py', + 'finitely_generated_gap.py', + 'heisenberg.py', + 'homset.py', + 'isometries.py', + 'linear.py', + 'linear_gap.py', + 'matrix_group.py', + 'matrix_group_gap.py', + 'morphism.py', + 'named_group.py', + 'named_group_gap.py', + 'orthogonal.py', + 'orthogonal_gap.py', + 'pickling_overrides.py', + 'symplectic.py', + 'symplectic_gap.py', + 'unitary.py', + 'unitary_gap.py', + subdir: 'sage/groups/matrix_gps', +) + +extension_data = { + 'group_element': files('group_element.pyx'), + 'group_element_gap': files('group_element_gap.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/groups/matrix_gps', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/groups/meson.build b/src/sage/groups/meson.build index e03f61b1ec4..648a9666b0b 100644 --- a/src/sage/groups/meson.build +++ b/src/sage/groups/meson.build @@ -25,11 +25,6 @@ py.install_sources( 'raag.py', subdir: 'sage/groups', ) -install_subdir('abelian_gps', install_dir: sage_install_dir / 'groups') -install_subdir('additive_abelian', install_dir: sage_install_dir / 'groups') -install_subdir('affine_gps', install_dir: sage_install_dir / 'groups') -install_subdir('lie_gps', install_dir: sage_install_dir / 'groups') -install_subdir('misc_gps', install_dir: sage_install_dir / 'groups') extension_data = { 'group': files('group.pyx'), @@ -43,6 +38,15 @@ foreach name, pyx : extension_data subdir: 'sage/groups', install: true, include_directories: [inc_cpython], - dependencies: [py_dep], + dependencies: [py_dep, gmp], ) endforeach + +install_subdir('abelian_gps', install_dir: sage_install_dir / 'groups') +install_subdir('additive_abelian', install_dir: sage_install_dir / 'groups') +install_subdir('affine_gps', install_dir: sage_install_dir / 'groups') +install_subdir('lie_gps', install_dir: sage_install_dir / 'groups') +subdir('matrix_gps') +install_subdir('misc_gps', install_dir: sage_install_dir / 'groups') +subdir('perm_gps') +subdir('semimonomial_transformations') diff --git a/src/sage/groups/perm_gps/meson.build b/src/sage/groups/perm_gps/meson.build new file mode 100644 index 00000000000..ab4070d34b1 --- /dev/null +++ b/src/sage/groups/perm_gps/meson.build @@ -0,0 +1,28 @@ +py.install_sources( + 'all.py', + 'constructor.py', + 'cubegroup.py', + 'permgroup.py', + 'permgroup_morphism.py', + 'permgroup_named.py', + 'permutation_groups_catalog.py', + 'symgp_conjugacy_class.py', + subdir: 'sage/groups/perm_gps', +) + +extension_data = { + 'permgroup_element': files('permgroup_element.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/groups/perm_gps', + install: true, + include_directories: [inc_cpython, inc_ext, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + +subdir('partn_ref') +subdir('partn_ref2') diff --git a/src/sage/groups/perm_gps/partn_ref/meson.build b/src/sage/groups/perm_gps/partn_ref/meson.build new file mode 100644 index 00000000000..3e741020944 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref/meson.build @@ -0,0 +1,28 @@ +py.install_sources( + 'all.py', + subdir: 'sage/groups/perm_gps/partn_ref', +) + +extension_data = { + 'automorphism_group_canonical_label': files('automorphism_group_canonical_label.pyx'), + 'canonical_augmentation': files('canonical_augmentation.pyx'), + 'data_structures': files('data_structures.pyx'), + 'double_coset': files('double_coset.pyx'), + 'refinement_binary': files('refinement_binary.pyx'), + 'refinement_graphs': files('refinement_graphs.pyx'), + 'refinement_lists': files('refinement_lists.pyx'), + 'refinement_matrices': files('refinement_matrices.pyx'), + 'refinement_python': files('refinement_python.pyx'), + 'refinement_sets': files('refinement_sets.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/groups/perm_gps/partn_ref', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/groups/perm_gps/partn_ref2/meson.build b/src/sage/groups/perm_gps/partn_ref2/meson.build new file mode 100644 index 00000000000..76838c53d74 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref2/meson.build @@ -0,0 +1,19 @@ +py.install_sources( + 'all.py', + subdir: 'sage/groups/perm_gps/partn_ref2', +) + +extension_data = { + 'refinement_generic': files('refinement_generic.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/groups/perm_gps/partn_ref2', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_partn_ref2], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/groups/semimonomial_transformations/meson.build b/src/sage/groups/semimonomial_transformations/meson.build new file mode 100644 index 00000000000..c05e3e2d2b5 --- /dev/null +++ b/src/sage/groups/semimonomial_transformations/meson.build @@ -0,0 +1,20 @@ +py.install_sources( + 'all.py', + 'semimonomial_transformation_group.py', + subdir: 'sage/groups/semimonomial_transformations', +) + +extension_data = { + 'semimonomial_transformation': files('semimonomial_transformation.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/groups/semimonomial_transformations', + install: true, + include_directories: [inc_cpython], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/interacts/meson.build b/src/sage/interacts/meson.build new file mode 100644 index 00000000000..aa72c33da62 --- /dev/null +++ b/src/sage/interacts/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + 'algebra.py', + 'all.py', + 'calculus.py', + 'fractals.py', + 'geometry.py', + 'library.py', + 'statistics.py', + subdir: 'sage/interacts', +) + +extension_data = { + 'library_cython': files('library_cython.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/interacts', + install: true, + include_directories: [], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/interfaces/meson.build b/src/sage/interfaces/meson.build index f3a4c50e13d..3a9d7b872fb 100644 --- a/src/sage/interfaces/meson.build +++ b/src/sage/interfaces/meson.build @@ -71,6 +71,7 @@ foreach name, pyx : extension_data subdir: 'sage/interfaces', install: true, include_directories: [inc_cpython], - dependencies: [py_dep], + dependencies: [py_dep, gmp], ) endforeach + diff --git a/src/sage/lfunctions/meson.build b/src/sage/lfunctions/meson.build new file mode 100644 index 00000000000..50d701cba55 --- /dev/null +++ b/src/sage/lfunctions/meson.build @@ -0,0 +1,23 @@ +py.install_sources( + 'all.py', + 'dokchitser.py', + 'lcalc.py', + 'pari.py', + 'sympow.py', + subdir: 'sage/lfunctions', +) + +extension_data = { + 'zero_sums': files('zero_sums.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/lfunctions', + install: true, + include_directories: [inc_flint], + dependencies: [py_dep, flint, gmp], + ) +endforeach + diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index d229f513c9a..e3b521de3ba 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -14,7 +14,7 @@ foreach name, pyx : extension_data subdir: 'sage/libs/arb', install: true, include_directories: [inc_arb, inc_cpython, inc_flint, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, flint, gmp, mpfr], ) endforeach diff --git a/src/sage/libs/eclib/meson.build b/src/sage/libs/eclib/meson.build index 559e86ac2cb..d47852e4d7b 100644 --- a/src/sage/libs/eclib/meson.build +++ b/src/sage/libs/eclib/meson.build @@ -6,20 +6,21 @@ py.install_sources( subdir: 'sage/libs/eclib', ) -extension_data = { - # 'homspace': files('homspace.pyx'), # not yet on conda - # 'mat': files('mat.pyx'), # not yet on conda - # 'mwrank': files('mwrank.pyx'), # not yet on conda - # 'newforms': files('newforms.pyx'), # not yet on conda +extension_data_cpp = { + 'homspace': files('homspace.pyx'), + 'mat': files('mat.pyx'), + 'mwrank': files('mwrank.pyx'), + 'newforms': files('newforms.pyx'), } -foreach name, pyx : extension_data +foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/libs/eclib', install: true, - include_directories: [], - dependencies: [py_dep, cysignals], + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp], ) endforeach diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build index fdfbdb86180..3411fea4911 100644 --- a/src/sage/libs/flint/meson.build +++ b/src/sage/libs/flint/meson.build @@ -17,7 +17,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/libs/flint', install: true, - include_directories: [inc_cpython, inc_src, inc_rings], - dependencies: [py_dep, cysignals, gmp, flint], + include_directories: [inc_cpython, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp, mpfr], ) endforeach + diff --git a/src/sage/libs/gap/meson.build b/src/sage/libs/gap/meson.build index b3ae1e4ae0c..59885f1efed 100644 --- a/src/sage/libs/gap/meson.build +++ b/src/sage/libs/gap/meson.build @@ -24,7 +24,7 @@ foreach name, pyx : extension_data subdir: 'sage/libs/gap', install: true, include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/libs/giac/meson.build b/src/sage/libs/giac/meson.build index ac8e5f56b09..e18c79d5dce 100644 --- a/src/sage/libs/giac/meson.build +++ b/src/sage/libs/giac/meson.build @@ -1,11 +1,16 @@ +giac = declare_dependency( + dependencies: [ + cc.find_library('giac', required: false), + ] +) + py.install_sources( '__init__.py', subdir: 'sage/libs/giac', ) - extension_data_cpp = { - # 'giac': files('giac.pyx'), # not yet on conda + 'giac': files('giac.pyx'), } foreach name, pyx : extension_data_cpp @@ -14,8 +19,8 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/libs/giac', install: true, override_options : ['cython_language=cpp'], - include_directories: [], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_ext, inc_rings], + dependencies: [py_dep, cysignals, giac, gmp], ) endforeach diff --git a/src/sage/libs/glpk/meson.build b/src/sage/libs/glpk/meson.build index efca456cef4..05f81795705 100644 --- a/src/sage/libs/glpk/meson.build +++ b/src/sage/libs/glpk/meson.build @@ -13,7 +13,7 @@ foreach name, pyx : extension_data subdir: 'sage/libs/glpk', install: true, include_directories: [inc_cpython], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, cysignals, gmp], ) endforeach diff --git a/src/sage/libs/gmp/meson.build b/src/sage/libs/gmp/meson.build index 1145393220a..35a3a5af964 100644 --- a/src/sage/libs/gmp/meson.build +++ b/src/sage/libs/gmp/meson.build @@ -16,3 +16,4 @@ foreach name, pyx : extension_data dependencies: [py_dep, gmp], ) endforeach + diff --git a/src/sage/libs/gsl/meson.build b/src/sage/libs/gsl/meson.build index 4d7d3c61a4d..fb85c2f0026 100644 --- a/src/sage/libs/gsl/meson.build +++ b/src/sage/libs/gsl/meson.build @@ -12,6 +12,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/libs/gsl', install: true, - dependencies: [py_dep, cysignals], + include_directories: [inc_gsl], + dependencies: [py_dep, cysignals, gmp, gsl], ) endforeach + diff --git a/src/sage/libs/lcalc/meson.build b/src/sage/libs/lcalc/meson.build index 1b0d35872d9..6d170655920 100644 --- a/src/sage/libs/lcalc/meson.build +++ b/src/sage/libs/lcalc/meson.build @@ -3,9 +3,8 @@ py.install_sources( subdir: 'sage/libs/lcalc', ) - extension_data_cpp = { - # 'lcalc_Lfunction': files('lcalc_Lfunction.pyx'), # not yet on conda + 'lcalc_Lfunction': files('lcalc_Lfunction.pyx'), } foreach name, pyx : extension_data_cpp @@ -14,8 +13,8 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/libs/lcalc', install: true, override_options : ['cython_language=cpp'], - include_directories: [], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cypari2, cysignals, gmp, lfunction, m, mpfr, ntl], ) endforeach diff --git a/src/sage/libs/linbox/meson.build b/src/sage/libs/linbox/meson.build index 6e1e46e6e0a..a18e7799cd7 100644 --- a/src/sage/libs/linbox/meson.build +++ b/src/sage/libs/linbox/meson.build @@ -3,17 +3,18 @@ py.install_sources( subdir: 'sage/libs/linbox', ) -extension_data = { - # 'linbox_flint_interface': files('linbox_flint_interface.pyx'), # not yet on conda +extension_data_cpp = { + 'linbox_flint_interface': files('linbox_flint_interface.pyx'), } -foreach name, pyx : extension_data +foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/libs/linbox', install: true, - include_directories: [], - dependencies: [py_dep, cysignals], + override_options : ['cython_language=cpp'], + include_directories: [inc_flint], + dependencies: [py_dep, cblas, flint, givaro, gmp, gmpxx, linbox], ) endforeach diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index e15a710a4b7..eb4bcbb2c3d 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -1,3 +1,8 @@ +sirocco = declare_dependency( + dependencies: [ + cc.find_library('sirocco', required: false), + ] +) py.install_sources( 'all.py', 'all__sagemath_coxeter3.py', @@ -7,21 +12,17 @@ py.install_sources( subdir: 'sage/libs', ) -extension_data_cpp = { - 'braiding': files('braiding.pyx'), -} extension_data = { 'ecl': files('ecl.pyx'), 'homfly': files('homfly.pyx'), 'libecm': files('libecm.pyx'), - #'meataxe': files('meataxe.pyx'),# - need meataxe + #'meataxe': files('meataxe.pyx'), # not yet on conda - need meataxe } -dependencies = [py_dep, cysignals, cypari2] +dependencies = [py_dep, braiding, cysignals, ecm, gc, gmp, homfly, mtx, sirocco] -sirocco = dependency('sirocco', required: false) if sirocco.found() - #extension_data['sirocco'] += files('sirocco.pxd') + #extension_data['sirocco'] += files('sirocco.pxd') # not yet on conda dependencies += [sirocco] endif @@ -30,29 +31,29 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/libs', install: true, - include_directories: [inc_cpython], + include_directories: [inc_cpython, inc_rings], dependencies: dependencies, ) endforeach + +extension_data_cpp = { + 'braiding': files('braiding.pyx'), +} + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/libs', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython], + include_directories: [inc_cpython, inc_rings], dependencies: dependencies, ) endforeach -install_subdir('cremona', install_dir: sage_install_dir / 'libs') -install_subdir('linkages', install_dir: sage_install_dir / 'libs') -install_subdir('lrcalc', install_dir: sage_install_dir / 'libs') -install_subdir('mwrank', install_dir: sage_install_dir / 'libs') -install_subdir('pynac', install_dir: sage_install_dir / 'libs') - subdir('arb') subdir('coxeter3') +install_subdir('cremona', install_dir: sage_install_dir / 'libs') subdir('eclib') subdir('flint') subdir('gap') @@ -62,8 +63,12 @@ subdir('gmp') subdir('gsl') subdir('lcalc') subdir('linbox') +install_subdir('linkages', install_dir: sage_install_dir / 'libs') +install_subdir('lrcalc', install_dir: sage_install_dir / 'libs') subdir('mpmath') +install_subdir('mwrank', install_dir: sage_install_dir / 'libs') subdir('ntl') subdir('pari') +install_subdir('pynac', install_dir: sage_install_dir / 'libs') subdir('singular') subdir('symmetrica') diff --git a/src/sage/libs/mpmath/meson.build b/src/sage/libs/mpmath/meson.build index e581ea7161f..edd7851e4f6 100644 --- a/src/sage/libs/mpmath/meson.build +++ b/src/sage/libs/mpmath/meson.build @@ -16,7 +16,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/libs/mpmath', install: true, - include_directories: [inc_cpython], - dependencies: [py_dep, cysignals, cypari2, gmp, mpfr], + include_directories: [inc_cpython, inc_ext, inc_rings], + dependencies: [py_dep, cypari2, cysignals, gmp, mpfr], ) endforeach + diff --git a/src/sage/libs/ntl/meson.build b/src/sage/libs/ntl/meson.build index ae5d9880c15..8f1794a2f7b 100644 --- a/src/sage/libs/ntl/meson.build +++ b/src/sage/libs/ntl/meson.build @@ -33,8 +33,9 @@ foreach name, pyx : extension_data_cpp sources: pyx, subdir: 'sage/libs/ntl', install: true, - include_directories: [inc_cpython, inc_ext, inc_rings_finite], - override_options: ['cython_language=cpp'], - dependencies: [py_dep, cysignals, ntl], + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ext, inc_ntl, inc_rings, inc_rings_finite], + dependencies: [py_dep, cysignals, gmp, m, ntl], ) endforeach + diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build index 4950b10473e..3250e59b85a 100644 --- a/src/sage/libs/pari/meson.build +++ b/src/sage/libs/pari/meson.build @@ -19,7 +19,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/libs/pari', install: true, - include_directories: [inc_flint, inc_cpython], - dependencies: [py_dep, cypari2, cysignals, gmp, pari], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_gsl, inc_rings], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, gsl, mpfr, pari], ) endforeach + diff --git a/src/sage/libs/singular/meson.build b/src/sage/libs/singular/meson.build index 96f592c0b02..99e88d5b1ec 100644 --- a/src/sage/libs/singular/meson.build +++ b/src/sage/libs/singular/meson.build @@ -5,22 +5,23 @@ py.install_sources( subdir: 'sage/libs/singular', ) -extension_data = { - # 'function': files('function.pyx'), # not yet on conda - # 'groebner_strategy': files('groebner_strategy.pyx'), # not yet on conda - # 'option': files('option.pyx'), # not yet on conda - # 'polynomial': files('polynomial.pyx'), # not yet on conda - # 'ring': files('ring.pyx'), # not yet on conda - # 'singular': files('singular.pyx'), # not yet on conda +extension_data_cpp = { + 'function': files('function.pyx'), + 'groebner_strategy': files('groebner_strategy.pyx'), + 'option': files('option.pyx'), + 'polynomial': files('polynomial.pyx'), + 'ring': files('ring.pyx'), + 'singular': files('singular.pyx'), } -foreach name, pyx : extension_data +foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/libs/singular', install: true, - include_directories: [], - dependencies: [py_dep, cysignals], + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ntl, inc_rings, inc_rings_finite], + dependencies: [py_dep, cysignals, givaro, gmp], ) endforeach diff --git a/src/sage/libs/symmetrica/meson.build b/src/sage/libs/symmetrica/meson.build index 178212c1a1e..8b2d10570ac 100644 --- a/src/sage/libs/symmetrica/meson.build +++ b/src/sage/libs/symmetrica/meson.build @@ -1,3 +1,10 @@ +# Cannot be found by pkg-config +symmetrica = declare_dependency( + dependencies: [ + cc.find_library('symmetrica'), + ] +) + py.install_sources( '__init__.py', 'all.py', @@ -8,18 +15,13 @@ extension_data = { 'symmetrica': files('symmetrica.pyx'), } -# Cannot be found by pkg-config -symmetrica = declare_dependency( - dependencies: [ - cc.find_library('symmetrica'), - ] -) - foreach name, pyx : extension_data py.extension_module(name, sources: pyx, subdir: 'sage/libs/symmetrica', install: true, - dependencies: [py_dep, cysignals, symmetrica], + include_directories: [], + dependencies: [py_dep, cysignals, gmp, symmetrica], ) endforeach + diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index f2a3bab7bda..3e7afdf609d 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -70,7 +70,7 @@ foreach name, pyx : extension_data subdir: 'sage/matrix', install: true, include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mtx, ntl, pari, png, zlib], + dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib], ) endforeach @@ -94,7 +94,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mtx, ntl, pari, png, zlib], + dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib], ) endforeach diff --git a/src/sage/matroids/meson.build b/src/sage/matroids/meson.build new file mode 100644 index 00000000000..f018aea355e --- /dev/null +++ b/src/sage/matroids/meson.build @@ -0,0 +1,39 @@ +py.install_sources( + 'advanced.py', + 'all.py', + 'catalog.py', + 'constructor.py', + 'dual_matroid.py', + 'graphic_matroid.py', + 'matroids_catalog.py', + 'matroids_plot_helpers.py', + 'minor_matroid.py', + 'named_matroids.py', + 'rank_matroid.py', + 'utilities.py', + subdir: 'sage/matroids', +) + +extension_data = { + 'basis_exchange_matroid': files('basis_exchange_matroid.pyx'), + 'basis_matroid': files('basis_matroid.pyx'), + 'circuit_closures_matroid': files('circuit_closures_matroid.pyx'), + 'extension': files('extension.pyx'), + 'lean_matrix': files('lean_matrix.pyx'), + 'linear_matroid': files('linear_matroid.pyx'), + 'matroid': files('matroid.pyx'), + 'set_system': files('set_system.pyx'), + 'union_matroid': files('union_matroid.pyx'), + 'unpickling': files('unpickling.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/matroids', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/meson.build b/src/sage/meson.build index bd87f6f21ec..7513244c0b2 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -2,9 +2,19 @@ sage_install_dir = py.get_install_dir() / 'sage' # Packages that need no processing and can be installed directly no_processing = [ - 'repl', + 'databases', 'doctest', + 'dynamics', 'features', + 'game_theory', + 'homology', + 'knots', + 'logic', + 'manifolds', + 'parallel', + 'repl', + 'sandpiles', + 'sat', 'tensor', 'topology', 'typeset', @@ -14,6 +24,7 @@ foreach package : no_processing endforeach py.install_sources( + '__init__.py', 'all.py', 'all__sagemath_bliss.py', 'all__sagemath_categories.py', @@ -35,20 +46,36 @@ subdir('cpython') subdir('libs') subdir('misc') subdir('structure') -subdir('categories') -subdir('sets') -subdir('data_structures') -subdir('rings') +subdir('algebras') subdir('arith') +subdir('calculus') +subdir('categories') +subdir('coding') subdir('combinat') -subdir('modules') -subdir('tests') +subdir('crypto') +subdir('data_structures') subdir('ext') -subdir('interfaces') +subdir('functions') +subdir('games') +subdir('geometry') +subdir('graphs') subdir('groups') +subdir('interacts') +subdir('interfaces') +subdir('lfunctions') subdir('matrix') -subdir('graphs') -subdir('algebras') +subdir('matroids') +subdir('modular') +subdir('modules') subdir('monoids') -subdir('symbolic') +subdir('numerical') +subdir('plot') +subdir('probability') subdir('quadratic_forms') +subdir('quivers') +subdir('rings') +subdir('schemes') +subdir('sets') +subdir('stats') +subdir('symbolic') +subdir('tests') diff --git a/src/sage/misc/meson.build b/src/sage/misc/meson.build index 5556645215a..066990166db 100644 --- a/src/sage/misc/meson.build +++ b/src/sage/misc/meson.build @@ -114,8 +114,9 @@ foreach name, pyx : extension_data py.extension_module(name, sources: pyx, subdir: 'sage/misc', - include_directories: [inc_cpython], install: true, + include_directories: [inc_cpython, inc_rings], dependencies: [py_dep, cysignals, gmp], ) endforeach + diff --git a/src/sage/modular/arithgroup/all.py b/src/sage/modular/arithgroup/all.py index d4fb241d1f9..0597ae7b886 100644 --- a/src/sage/modular/arithgroup/all.py +++ b/src/sage/modular/arithgroup/all.py @@ -15,4 +15,6 @@ from .congroup import (degeneracy_coset_representatives_gamma0, degeneracy_coset_representatives_gamma1) -from .farey_symbol import Farey as FareySymbol +# Cannot find FareySymbol (and I don't know where to look for it) +#from .farey_symbol import Farey as FareySymbol +FareySymbol = None diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build new file mode 100644 index 00000000000..50dca19bc89 --- /dev/null +++ b/src/sage/modular/arithgroup/meson.build @@ -0,0 +1,44 @@ +py.install_sources( + 'all.py', + 'arithgroup_generic.py', + 'arithgroup_perm.py', + 'congroup_gamma.py', + 'congroup_gamma0.py', + 'congroup_gamma1.py', + 'congroup_gammaH.py', + 'congroup_generic.py', + 'congroup_sl2z.py', + 'tests.py', + subdir: 'sage/modular/arithgroup', +) + +extension_data = { + 'arithgroup_element': files('arithgroup_element.pyx'), + 'congroup': files('congroup.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/modular/arithgroup', + install: true, + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp], + ) +endforeach + +extension_data_cpp = { + 'farey_symbol': files('farey_symbol.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/modular/arithgroup', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp], + ) +endforeach + diff --git a/src/sage/modular/meson.build b/src/sage/modular/meson.build new file mode 100644 index 00000000000..fca36f6d674 --- /dev/null +++ b/src/sage/modular/meson.build @@ -0,0 +1,43 @@ +py.install_sources( + 'all.py', + 'buzzard.py', + 'congroup.py', + 'congroup_element.py', + 'cusps.py', + 'cusps_nf.py', + 'dims.py', + 'dirichlet.py', + 'etaproducts.py', + 'hypergeometric_motive.py', + 'multiple_zeta.py', + 'multiple_zeta_F_algebra.py', + subdir: 'sage/modular', +) + +extension_data = { + 'hypergeometric_misc': files('hypergeometric_misc.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/modular', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + +install_subdir('abvar', install_dir: sage_install_dir / 'modular') +subdir('arithgroup') +install_subdir('btquotients', install_dir: sage_install_dir / 'modular') +install_subdir('hecke', install_dir: sage_install_dir / 'modular') +install_subdir('local_comp', install_dir: sage_install_dir / 'modular') +subdir('modform') +install_subdir('modform_hecketriangle', install_dir: sage_install_dir / 'modular') +subdir('modsym') +install_subdir('overconvergent', install_dir: sage_install_dir / 'modular') +subdir('pollack_stevens') +install_subdir('quasimodform', install_dir: sage_install_dir / 'modular') +install_subdir('quatalg', install_dir: sage_install_dir / 'modular') +install_subdir('ssmod', install_dir: sage_install_dir / 'modular') diff --git a/src/sage/modular/modform/meson.build b/src/sage/modular/modform/meson.build new file mode 100644 index 00000000000..e80b0324357 --- /dev/null +++ b/src/sage/modular/modform/meson.build @@ -0,0 +1,46 @@ +py.install_sources( + 'all.py', + 'ambient.py', + 'ambient_R.py', + 'ambient_eps.py', + 'ambient_g0.py', + 'ambient_g1.py', + 'constructor.py', + 'cuspidal_submodule.py', + 'defaults.py', + 'eis_series.py', + 'eisenstein_submodule.py', + 'element.py', + 'find_generators.py', + 'half_integral.py', + 'hecke_operator_on_qexp.py', + 'j_invariant.py', + 'l_series_gross_zagier.py', + 'notes.py', + 'numerical.py', + 'periods.py', + 'ring.py', + 'space.py', + 'submodule.py', + 'tests.py', + 'theta.py', + 'vm_basis.py', + 'weight1.py', + subdir: 'sage/modular/modform', +) + +extension_data = { + 'eis_series_cython': files('eis_series_cython.pyx'), + 'l_series_gross_zagier_coeffs': files('l_series_gross_zagier_coeffs.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/modular/modform', + install: true, + include_directories: [inc_cpython, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp], + ) +endforeach + diff --git a/src/sage/modular/modsym/meson.build b/src/sage/modular/modsym/meson.build new file mode 100644 index 00000000000..e3c62628de4 --- /dev/null +++ b/src/sage/modular/modsym/meson.build @@ -0,0 +1,37 @@ +py.install_sources( + 'all.py', + 'ambient.py', + 'boundary.py', + 'element.py', + 'g1list.py', + 'ghlist.py', + 'hecke_operator.py', + 'manin_symbol_list.py', + 'modsym.py', + 'modular_symbols.py', + 'p1list_nf.py', + 'relation_matrix.py', + 'space.py', + 'subspace.py', + 'tests.py', + subdir: 'sage/modular/modsym', +) + +extension_data = { + 'apply': files('apply.pyx'), + 'heilbronn': files('heilbronn.pyx'), + 'manin_symbol': files('manin_symbol.pyx'), + 'p1list': files('p1list.pyx'), + 'relation_matrix_pyx': files('relation_matrix_pyx.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/modular/modsym', + install: true, + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, flint, gmp], + ) +endforeach + diff --git a/src/sage/modular/pollack_stevens/meson.build b/src/sage/modular/pollack_stevens/meson.build new file mode 100644 index 00000000000..b2e360ee861 --- /dev/null +++ b/src/sage/modular/pollack_stevens/meson.build @@ -0,0 +1,26 @@ +py.install_sources( + 'all.py', + 'distributions.py', + 'fund_domain.py', + 'manin_map.py', + 'modsym.py', + 'padic_lseries.py', + 'sigma0.py', + 'space.py', + subdir: 'sage/modular/pollack_stevens', +) + +extension_data = { + 'dist': files('dist.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/modular/pollack_stevens', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/modules/meson.build b/src/sage/modules/meson.build index 76169bd776d..6fcfc0f7ae4 100644 --- a/src/sage/modules/meson.build +++ b/src/sage/modules/meson.build @@ -35,7 +35,6 @@ extension_data = { 'vector_double_dense': files('vector_double_dense.pyx'), 'vector_integer_dense': files('vector_integer_dense.pyx'), 'vector_integer_sparse': files('vector_integer_sparse.pyx'), - 'vector_mod2_dense': files('vector_mod2_dense.pyx'), 'vector_modn_dense': files('vector_modn_dense.pyx'), 'vector_modn_sparse': files('vector_modn_sparse.pyx'), 'vector_numpy_dense': files('vector_numpy_dense.pyx'), @@ -50,8 +49,23 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/modules', install: true, - include_directories: [inc_cpython, inc_numpy, inc_rings_finite, inc_ext], - dependencies: [py_dep, cysignals, gmp], + include_directories: [inc_cpython, inc_ext, inc_numpy, inc_rings, inc_rings_finite], + dependencies: [py_dep, cysignals, gd, gmp, m4ri, png], + ) +endforeach + +extension_data_cpp = { + 'vector_mod2_dense': files('vector_mod2_dense.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/modules', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ext, inc_numpy, inc_rings, inc_rings_finite], + dependencies: [py_dep, cysignals, gd, gmp, m4ri, png], ) endforeach diff --git a/src/sage/modules/with_basis/meson.build b/src/sage/modules/with_basis/meson.build index 992afc5bbba..55554a0aa4e 100644 --- a/src/sage/modules/with_basis/meson.build +++ b/src/sage/modules/with_basis/meson.build @@ -18,7 +18,7 @@ foreach name, pyx : extension_data subdir: 'sage/modules/with_basis', install: true, include_directories: [inc_cpython, inc_data_structures], - dependencies: [py_dep, cysignals], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/numerical/backends/meson.build b/src/sage/numerical/backends/meson.build new file mode 100644 index 00000000000..57ae6e5c18d --- /dev/null +++ b/src/sage/numerical/backends/meson.build @@ -0,0 +1,54 @@ +py.install_sources( + 'all.py', + 'all__sagemath_polyhedra.py', + 'cvxopt_backend_test.py', + 'cvxpy_backend_test.py', + 'generic_backend_test.py', + 'glpk_backend_test.py', + 'glpk_exact_backend_test.py', + 'interactivelp_backend_test.py', + 'logging_backend.py', + 'ppl_backend_test.py', + 'scip_backend_test.py', + subdir: 'sage/numerical/backends', +) + +extension_data = { + 'cvxopt_backend': files('cvxopt_backend.pyx'), + 'cvxopt_sdp_backend': files('cvxopt_sdp_backend.pyx'), + 'cvxpy_backend': files('cvxpy_backend.pyx'), + 'generic_backend': files('generic_backend.pyx'), + 'generic_sdp_backend': files('generic_sdp_backend.pyx'), + 'glpk_backend': files('glpk_backend.pyx'), + 'glpk_exact_backend': files('glpk_exact_backend.pyx'), + 'glpk_graph_backend': files('glpk_graph_backend.pyx'), + 'interactivelp_backend': files('interactivelp_backend.pyx'), + 'matrix_sdp_backend': files('matrix_sdp_backend.pyx'), + 'ppl_backend': files('ppl_backend.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/numerical/backends', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + +extension_data_cpp = { + 'scip_backend': files('scip_backend.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/numerical/backends', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/numerical/meson.build b/src/sage/numerical/meson.build new file mode 100644 index 00000000000..bb004a460c7 --- /dev/null +++ b/src/sage/numerical/meson.build @@ -0,0 +1,30 @@ +py.install_sources( + 'all.py', + 'all__sagemath_polyhedra.py', + 'interactive_simplex_method.py', + 'knapsack.py', + 'linear_tensor.py', + 'linear_tensor_constraints.py', + 'optimize.py', + subdir: 'sage/numerical', +) + +extension_data = { + 'gauss_legendre': files('gauss_legendre.pyx'), + 'linear_functions': files('linear_functions.pyx'), + 'linear_tensor_element': files('linear_tensor_element.pyx'), + 'mip': files('mip.pyx'), + 'sdp': files('sdp.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/numerical', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cypari2, gmp, mpfr], + ) +endforeach + +subdir('backends') diff --git a/src/sage/plot/meson.build b/src/sage/plot/meson.build new file mode 100644 index 00000000000..a47688cf61f --- /dev/null +++ b/src/sage/plot/meson.build @@ -0,0 +1,49 @@ +py.install_sources( + 'all.py', + 'animate.py', + 'arc.py', + 'arrow.py', + 'bar_chart.py', + 'bezier_path.py', + 'circle.py', + 'colors.py', + 'contour_plot.py', + 'density_plot.py', + 'disk.py', + 'ellipse.py', + 'graphics.py', + 'histogram.py', + 'hyperbolic_arc.py', + 'hyperbolic_polygon.py', + 'hyperbolic_regular_polygon.py', + 'line.py', + 'matrix_plot.py', + 'misc.py', + 'multigraphics.py', + 'plot.py', + 'plot_field.py', + 'point.py', + 'polygon.py', + 'primitive.py', + 'scatter_plot.py', + 'step.py', + 'streamline_plot.py', + 'text.py', + subdir: 'sage/plot', +) + +extension_data = { + 'complex_plot': files('complex_plot.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/plot', + install: true, + include_directories: [inc_cpython, inc_gsl, inc_numpy, inc_rings], + dependencies: [py_dep, cysignals, gmp, gsl], + ) +endforeach + +subdir('plot3d') diff --git a/src/sage/plot/plot3d/meson.build b/src/sage/plot/plot3d/meson.build new file mode 100644 index 00000000000..b6b12e0ba6b --- /dev/null +++ b/src/sage/plot/plot3d/meson.build @@ -0,0 +1,36 @@ +py.install_sources( + 'all.py', + 'implicit_plot3d.py', + 'introduction.py', + 'list_plot3d.py', + 'parametric_plot3d.py', + 'platonic.py', + 'plot3d.py', + 'plot_field3d.py', + 'revolution_plot3d.py', + 'shapes2.py', + 'tachyon.py', + 'texture.py', + 'tri_plot.py', + subdir: 'sage/plot/plot3d', +) + +extension_data = { + 'base': files('base.pyx'), + 'implicit_surface': files('implicit_surface.pyx'), + 'index_face_set': files('index_face_set.pyx'), + 'parametric_surface': files('parametric_surface.pyx'), + 'shapes': files('shapes.pyx'), + 'transform': files('transform.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/plot/plot3d', + install: true, + include_directories: [inc_cpython, inc_ext, inc_numpy], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/probability/meson.build b/src/sage/probability/meson.build new file mode 100644 index 00000000000..92ac98eb026 --- /dev/null +++ b/src/sage/probability/meson.build @@ -0,0 +1,20 @@ +py.install_sources( + 'all.py', + 'random_variable.py', + subdir: 'sage/probability', +) + +extension_data = { + 'probability_distribution': files('probability_distribution.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/probability', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals, gmp, gsl], + ) +endforeach + diff --git a/src/sage/quadratic_forms/meson.build b/src/sage/quadratic_forms/meson.build index c3ef0ef5e9e..64271fb416f 100644 --- a/src/sage/quadratic_forms/meson.build +++ b/src/sage/quadratic_forms/meson.build @@ -42,7 +42,7 @@ foreach name, pyx : extension_data subdir: 'sage/quadratic_forms', install: true, include_directories: [], - dependencies: [py_dep, cysignals, gmp], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/quivers/meson.build b/src/sage/quivers/meson.build new file mode 100644 index 00000000000..35a7459ed1e --- /dev/null +++ b/src/sage/quivers/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + 'algebra.py', + 'all.py', + 'homspace.py', + 'morphism.py', + 'path_semigroup.py', + 'representation.py', + subdir: 'sage/quivers', +) + +extension_data = { + 'algebra_elements': files('algebra_elements.pyx'), + 'paths': files('paths.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/quivers', + install: true, + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/rings/convert/meson.build b/src/sage/rings/convert/meson.build index a4dff8bd420..f438e735f3f 100644 --- a/src/sage/rings/convert/meson.build +++ b/src/sage/rings/convert/meson.build @@ -13,6 +13,7 @@ foreach name, pyx : extension_data subdir: 'sage/rings/convert', install: true, include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cypari2, mpfi], + dependencies: [py_dep, cypari2, gmp, gsl, mpfi, mpfr, pari], ) endforeach + diff --git a/src/sage/rings/finite_rings/meson.build b/src/sage/rings/finite_rings/meson.build index 81289341f3b..4db4db3575d 100644 --- a/src/sage/rings/finite_rings/meson.build +++ b/src/sage/rings/finite_rings/meson.build @@ -13,16 +13,11 @@ py.install_sources( subdir: 'sage/rings/finite_rings', ) -extension_data_cpp = { - 'element_givaro': files('element_givaro.pyx'), - 'element_ntl_gf2e': files('element_ntl_gf2e.pyx'), - 'hom_finite_field': files('hom_finite_field.pyx'), - 'hom_finite_field_givaro': files('hom_finite_field_givaro.pyx'), -} extension_data = { 'element_base': files('element_base.pyx'), 'element_pari_ffelt': files('element_pari_ffelt.pyx'), 'finite_field_base': files('finite_field_base.pyx'), + 'hom_finite_field': files('hom_finite_field.pyx'), 'hom_prime_finite_field': files('hom_prime_finite_field.pyx'), 'integer_mod': files('integer_mod.pyx'), 'residue_field': files('residue_field.pyx'), @@ -36,17 +31,25 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/finite_rings', install: true, - include_directories: [inc_cpython, inc_ntl, inc_rings], - dependencies: [py_dep, cysignals, cypari2, gmp], + include_directories: [inc_cpython, inc_ext, inc_ntl, inc_rings, inc_rings_finite], + dependencies: [py_dep, cypari2, cysignals, givaro, gmp, m, ntl, pari], ) endforeach + +extension_data_cpp = { + 'element_givaro': files('element_givaro.pyx'), + 'element_ntl_gf2e': files('element_ntl_gf2e.pyx'), + 'hom_finite_field_givaro': files('hom_finite_field_givaro.pyx'), +} + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/rings/finite_rings', install: true, - override_options: ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ntl, inc_rings, inc_ext], - dependencies: [py_dep, cysignals, cypari2], + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ext, inc_ntl, inc_rings, inc_rings_finite], + dependencies: [py_dep, cypari2, cysignals, givaro, gmp, m, ntl, pari], ) endforeach + diff --git a/src/sage/rings/function_field/meson.build b/src/sage/rings/function_field/meson.build index 86be49c5390..954c446bd57 100644 --- a/src/sage/rings/function_field/meson.build +++ b/src/sage/rings/function_field/meson.build @@ -38,8 +38,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/function_field', install: true, - include_directories: [inc_cpython, inc_ntl], - dependencies: [py_dep], + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, gmp], ) endforeach diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 595aa6a6df4..442800e8eab 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -1,18 +1,6 @@ -mpfi = declare_dependency( +pthread = declare_dependency( dependencies: [ - cc.find_library('mpfi'), - ] -) -gsl = dependency('gsl') -# Cannot be found via pkg-config -arb = declare_dependency( - dependencies: [ - cc.find_library('arb'), - ] -) -mpc = declare_dependency( - dependencies: [ - cc.find_library('mpc'), + cc.find_library('pthread'), ] ) @@ -107,8 +95,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings', install: true, - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_rings], - dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl, flint, arb, mpc], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], + dependencies: [py_dep, arb, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], ) endforeach @@ -125,8 +113,8 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/rings', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_rings, inc_ntl, inc_rings_finite], - dependencies: [py_dep, cysignals, gmpy2, cypari2, mpfi, mpfr, gmp, pari, gsl, flint, arb, mpc, ntl], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], + dependencies: [py_dep, arb, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], ) endforeach diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index b9183257abb..032f1c3321d 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -22,11 +22,6 @@ py.install_sources( subdir: 'sage/rings/number_field', ) -extension_data_cpp = { - 'number_field_element': files('number_field_element.pyx'), - 'number_field_element_quadratic': files('number_field_element_quadratic.pyx'), -} - extension_data = { 'number_field_base': files('number_field_base.pyx'), 'number_field_element_base': files('number_field_element_base.pyx'), @@ -40,17 +35,24 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/number_field', install: true, - include_directories: [inc_cpython, inc_ntl], - dependencies: [py_dep, cysignals, cypari2], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, mpfi, mpfr, ntl], ) endforeach + +extension_data_cpp = { + 'number_field_element': files('number_field_element.pyx'), + 'number_field_element_quadratic': files('number_field_element_quadratic.pyx'), +} + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/rings/number_field', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ntl, inc_arb, inc_flint], - dependencies: [py_dep, cysignals, cypari2, ntl, mpfi, arb], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], + dependencies: [py_dep, arb, cypari2, cysignals, flint, gmp, mpfi, mpfr, ntl], ) endforeach + diff --git a/src/sage/rings/padics/meson.build b/src/sage/rings/padics/meson.build index afd0f50a765..bd69f694ce8 100644 --- a/src/sage/rings/padics/meson.build +++ b/src/sage/rings/padics/meson.build @@ -21,15 +21,6 @@ py.install_sources( subdir: 'sage/rings/padics', ) -extension_data_cpp = { - 'padic_ZZ_pX_CA_element': files('padic_ZZ_pX_CA_element.pyx'), - 'padic_ZZ_pX_CR_element': files('padic_ZZ_pX_CR_element.pyx'), - 'padic_ZZ_pX_FM_element': files('padic_ZZ_pX_FM_element.pyx'), - 'padic_ZZ_pX_element': files('padic_ZZ_pX_element.pyx'), - 'padic_ext_element': files('padic_ext_element.pyx'), - 'pow_computer': files('pow_computer.pyx'), - 'pow_computer_ext': files('pow_computer_ext.pyx'), -} extension_data = { 'common_conversion': files('common_conversion.pyx'), 'local_generic_element': files('local_generic_element.pyx'), @@ -39,11 +30,8 @@ extension_data = { 'padic_fixed_mod_element': files('padic_fixed_mod_element.pyx'), 'padic_floating_point_element': files('padic_floating_point_element.pyx'), 'padic_generic_element': files('padic_generic_element.pyx'), - 'padic_printing': files('padic_printing.pyx'), - #'padic_relaxed_element': files('padic_relaxed_element.pyx'), - compilation error (needs libs/linkages) + 'padic_relaxed_element': files('padic_relaxed_element.pyx'), 'padic_relaxed_errors': files('padic_relaxed_errors.pyx'), - 'pow_computer_flint': files('pow_computer_flint.pyx'), - 'pow_computer_relative': files('pow_computer_relative.pyx'), 'qadic_flint_CA': files('qadic_flint_CA.pyx'), 'qadic_flint_CR': files('qadic_flint_CR.pyx'), 'qadic_flint_FM': files('qadic_flint_FM.pyx'), @@ -59,17 +47,32 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/padics', install: true, - include_directories: [inc_cpython, inc_ntl, inc_flint, inc_rings_finite, inc_ext], - dependencies: [py_dep, cypari2, cysignals, gmp], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings, inc_rings_finite, inc_src], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, m, ntl], ) endforeach + +extension_data_cpp = { + 'padic_ZZ_pX_CA_element': files('padic_ZZ_pX_CA_element.pyx'), + 'padic_ZZ_pX_CR_element': files('padic_ZZ_pX_CR_element.pyx'), + 'padic_ZZ_pX_FM_element': files('padic_ZZ_pX_FM_element.pyx'), + 'padic_ZZ_pX_element': files('padic_ZZ_pX_element.pyx'), + 'padic_ext_element': files('padic_ext_element.pyx'), + 'padic_printing': files('padic_printing.pyx'), + 'pow_computer': files('pow_computer.pyx'), + 'pow_computer_ext': files('pow_computer_ext.pyx'), + 'pow_computer_flint': files('pow_computer_flint.pyx'), + 'pow_computer_relative': files('pow_computer_relative.pyx'), +} + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/rings/padics', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ntl, inc_ext], - dependencies: [py_dep, cypari2, cysignals, gmp, ntl], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings, inc_rings_finite], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, m, ntl], ) endforeach + diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index a42fc33d338..e1e9f80dbeb 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -37,16 +37,6 @@ py.install_sources( subdir: 'sage/rings/polynomial', ) -extension_data_cpp = { - 'evaluation_ntl': files('evaluation_ntl.pyx'), - 'multi_polynomial_ideal_libsingular': files('multi_polynomial_ideal_libsingular.pyx'), - 'multi_polynomial_libsingular': files('multi_polynomial_libsingular.pyx'), - 'polynomial_gf2x': files('polynomial_gf2x.pyx'), - 'polynomial_integer_dense_flint': files('polynomial_integer_dense_flint.pyx'), - 'polynomial_integer_dense_ntl': files('polynomial_integer_dense_ntl.pyx'), - 'polynomial_modn_dense_ntl': files('polynomial_modn_dense_ntl.pyx'), - 'polynomial_zz_pex': files('polynomial_zz_pex.pyx'), -} extension_data = { 'commutative_polynomial': files('commutative_polynomial.pyx'), 'cyclotomic': files('cyclotomic.pyx'), @@ -57,16 +47,13 @@ extension_data = { 'multi_polynomial': files('multi_polynomial.pyx'), 'multi_polynomial_ring_base': files('multi_polynomial_ring_base.pyx'), 'ore_polynomial_element': files('ore_polynomial_element.pyx'), - #'plural': files('plural.pyx'), - compile error 'polydict': files('polydict.pyx'), 'polynomial_compiled': files('polynomial_compiled.pyx'), 'polynomial_complex_arb': files('polynomial_complex_arb.pyx'), 'polynomial_element': files('polynomial_element.pyx'), 'polynomial_number_field': files('polynomial_number_field.pyx'), - 'polynomial_rational_flint': files('polynomial_rational_flint.pyx'), 'polynomial_real_mpfr_dense': files('polynomial_real_mpfr_dense.pyx'), 'polynomial_ring_homomorphism': files('polynomial_ring_homomorphism.pyx'), - 'polynomial_zmod_flint': files('polynomial_zmod_flint.pyx'), 'real_roots': files('real_roots.pyx'), 'refine_root': files('refine_root.pyx'), 'skew_polynomial_element': files('skew_polynomial_element.pyx'), @@ -80,19 +67,33 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/polynomial', install: true, - include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings, inc_numpy, inc_ext, inc_arb], - dependencies: [py_dep, cysignals, cypari2, gmp, mpfi, arb, flint], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + dependencies: [py_dep, arb, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari], ) endforeach +extension_data_cpp = { + 'evaluation_ntl': files('evaluation_ntl.pyx'), + 'multi_polynomial_ideal_libsingular': files('multi_polynomial_ideal_libsingular.pyx'), + 'multi_polynomial_libsingular': files('multi_polynomial_libsingular.pyx'), + 'plural': files('plural.pyx'), + 'polynomial_gf2x': files('polynomial_gf2x.pyx'), + 'polynomial_integer_dense_flint': files('polynomial_integer_dense_flint.pyx'), + 'polynomial_integer_dense_ntl': files('polynomial_integer_dense_ntl.pyx'), + 'polynomial_modn_dense_ntl': files('polynomial_modn_dense_ntl.pyx'), + 'polynomial_rational_flint': files('polynomial_rational_flint.pyx'), + 'polynomial_zmod_flint': files('polynomial_zmod_flint.pyx'), + 'polynomial_zz_pex': files('polynomial_zz_pex.pyx'), +} + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/rings/polynomial', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_flint, inc_ntl, inc_rings_finite, inc_ext, inc_arb, inc_rings], - dependencies: [py_dep, cysignals, cypari2, ntl, mpfr, mpfi, arb], + include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + dependencies: [py_dep, arb, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari], ) endforeach diff --git a/src/sage/rings/polynomial/pbori/meson.build b/src/sage/rings/polynomial/pbori/meson.build index 25a800888d8..c087b554e01 100644 --- a/src/sage/rings/polynomial/pbori/meson.build +++ b/src/sage/rings/polynomial/pbori/meson.build @@ -1,3 +1,14 @@ +brial = declare_dependency( + dependencies: [ + cc.find_library('brial', required: false), + ] +) +brial_groebner = declare_dependency( + dependencies: [ + cc.find_library('brial-groebner', required: false), + ] +) + py.install_sources( 'PyPolyBoRi.py', '__init__.py', @@ -25,19 +36,14 @@ extension_data_cpp = { 'pbori': files('pbori.pyx'), } -brial = declare_dependency( - dependencies: [ - cc.find_library('brial', required: false), - ] -) - foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/rings/polynomial/pbori', install: true, - include_directories: [inc_src, inc_cpython, inc_ext], - override_options: ['cython_language=cpp'], - dependencies: [py_dep, cysignals, brial], + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ext, inc_rings, inc_src], + dependencies: [py_dep, brial, brial_groebner, cysignals, gmp, m4ri, png], ) endforeach + diff --git a/src/sage/rings/polynomial/weil/meson.build b/src/sage/rings/polynomial/weil/meson.build index f4d65307c3a..ad617697b46 100644 --- a/src/sage/rings/polynomial/weil/meson.build +++ b/src/sage/rings/polynomial/weil/meson.build @@ -12,7 +12,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/polynomial/weil', install: true, - include_directories: [inc_flint, inc_src, inc_cpython], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_flint, inc_rings, inc_src], + dependencies: [py_dep, cysignals, flint, gmp], ) endforeach + diff --git a/src/sage/rings/semirings/meson.build b/src/sage/rings/semirings/meson.build index 0180e4c3059..564c23df0e5 100644 --- a/src/sage/rings/semirings/meson.build +++ b/src/sage/rings/semirings/meson.build @@ -13,7 +13,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/semirings', install: true, - include_directories: [inc_cpython], - dependencies: [py_dep], + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, gmp], ) endforeach + diff --git a/src/sage/schemes/all.py b/src/sage/schemes/all.py index 23858c6f0c8..d819c224e5d 100644 --- a/src/sage/schemes/all.py +++ b/src/sage/schemes/all.py @@ -22,13 +22,15 @@ from .jacobians.all import * -from .hyperelliptic_curves.all import * +# Runtime error +#from .hyperelliptic_curves.all import * from .curves.all import * from .plane_conics.all import * -from .elliptic_curves.all import * +# Runtime error +#from .elliptic_curves.all import * from .plane_quartics.all import * @@ -42,6 +44,7 @@ from .product_projective.all import * -from .cyclic_covers.all import * +# Runtime error +#from .cyclic_covers.all import * from .berkovich.all import * diff --git a/src/sage/schemes/elliptic_curves/meson.build b/src/sage/schemes/elliptic_curves/meson.build new file mode 100644 index 00000000000..dfed2dd7368 --- /dev/null +++ b/src/sage/schemes/elliptic_curves/meson.build @@ -0,0 +1,67 @@ +py.install_sources( + 'BSD.py', + 'Qcurves.py', + 'all.py', + 'cardinality.py', + 'cm.py', + 'constructor.py', + 'ec_database.py', + 'ell_curve_isogeny.py', + 'ell_egros.py', + 'ell_field.py', + 'ell_finite_field.py', + 'ell_generic.py', + 'ell_local_data.py', + 'ell_modular_symbols.py', + 'ell_number_field.py', + 'ell_padic_field.py', + 'ell_point.py', + 'ell_rational_field.py', + 'ell_tate_curve.py', + 'ell_torsion.py', + 'ell_wp.py', + 'formal_group.py', + 'gal_reps.py', + 'gal_reps_number_field.py', + 'gp_simon.py', + 'heegner.py', + 'height.py', + 'hom.py', + 'hom_composite.py', + 'hom_frobenius.py', + 'hom_scalar.py', + 'hom_velusqrt.py', + 'isogeny_class.py', + 'isogeny_small_degree.py', + 'jacobian.py', + 'kodaira_symbol.py', + 'kraus.py', + 'lseries_ell.py', + 'mod5family.py', + 'modular_parametrization.py', + 'padic_lseries.py', + 'padics.py', + 'period_lattice.py', + 'saturation.py', + 'sha_tate.py', + 'weierstrass_morphism.py', + 'weierstrass_transform.py', + subdir: 'sage/schemes/elliptic_curves', +) + +extension_data = { + 'descent_two_isogeny': files('descent_two_isogeny.pyx'), + 'mod_sym_num': files('mod_sym_num.pyx'), + 'period_lattice_region': files('period_lattice_region.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/schemes/elliptic_curves', + install: true, + include_directories: [inc_cpython, inc_flint, inc_numpy, inc_rings], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, mpfr], + ) +endforeach + diff --git a/src/sage/schemes/hyperelliptic_curves/meson.build b/src/sage/schemes/hyperelliptic_curves/meson.build new file mode 100644 index 00000000000..b64793152ec --- /dev/null +++ b/src/sage/schemes/hyperelliptic_curves/meson.build @@ -0,0 +1,36 @@ +inc_hypellfrob = include_directories('hypellfrob') +py.install_sources( + 'all.py', + 'constructor.py', + 'hyperelliptic_finite_field.py', + 'hyperelliptic_g2.py', + 'hyperelliptic_generic.py', + 'hyperelliptic_padic_field.py', + 'hyperelliptic_rational_field.py', + 'invariants.py', + 'jacobian_endomorphism_utils.py', + 'jacobian_g2.py', + 'jacobian_generic.py', + 'jacobian_homset.py', + 'jacobian_morphism.py', + 'kummer_surface.py', + 'mestre.py', + 'monsky_washnitzer.py', + subdir: 'sage/schemes/hyperelliptic_curves', +) + +extension_data_cpp = { + 'hypellfrob': files('hypellfrob.pyx'), +} + +foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/schemes/hyperelliptic_curves', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_ext, inc_ntl, inc_rings, inc_rings_finite, inc_hypellfrob], + dependencies: [py_dep, cysignals, gmp, ntl], + ) +endforeach + diff --git a/src/sage/schemes/meson.build b/src/sage/schemes/meson.build new file mode 100644 index 00000000000..6ef40ff5257 --- /dev/null +++ b/src/sage/schemes/meson.build @@ -0,0 +1,20 @@ +py.install_sources( + 'all.py', + 'overview.py', + subdir: 'sage/schemes', +) + +install_subdir('affine', install_dir: sage_install_dir / 'schemes') +install_subdir('berkovich', install_dir: sage_install_dir / 'schemes') +install_subdir('curves', install_dir: sage_install_dir / 'schemes') +install_subdir('cyclic_covers', install_dir: sage_install_dir / 'schemes') +subdir('elliptic_curves') +install_subdir('generic', install_dir: sage_install_dir / 'schemes') +subdir('hyperelliptic_curves') +install_subdir('jacobians', install_dir: sage_install_dir / 'schemes') +install_subdir('plane_conics', install_dir: sage_install_dir / 'schemes') +install_subdir('plane_quartics', install_dir: sage_install_dir / 'schemes') +install_subdir('product_projective', install_dir: sage_install_dir / 'schemes') +install_subdir('projective', install_dir: sage_install_dir / 'schemes') +install_subdir('riemann_surfaces', install_dir: sage_install_dir / 'schemes') +subdir('toric') diff --git a/src/sage/schemes/toric/meson.build b/src/sage/schemes/toric/meson.build new file mode 100644 index 00000000000..36e4b8fd991 --- /dev/null +++ b/src/sage/schemes/toric/meson.build @@ -0,0 +1,33 @@ +py.install_sources( + 'all.py', + 'chow_group.py', + 'divisor.py', + 'fano_variety.py', + 'homset.py', + 'ideal.py', + 'library.py', + 'morphism.py', + 'points.py', + 'toric_subscheme.py', + 'variety.py', + 'weierstrass.py', + 'weierstrass_covering.py', + 'weierstrass_higher.py', + subdir: 'sage/schemes/toric', +) + +extension_data = { + 'divisor_class': files('divisor_class.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/schemes/toric', + install: true, + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, gmp], + ) +endforeach + +install_subdir('sheaf', install_dir: sage_install_dir / 'schemes/toric') diff --git a/src/sage/sets/meson.build b/src/sage/sets/meson.build index 734754d05b6..bf7a80d39bf 100644 --- a/src/sage/sets/meson.build +++ b/src/sage/sets/meson.build @@ -20,7 +20,7 @@ py.install_sources( ) extension_data = { - #'disjoint_set': files('disjoint_set.pyx'), Needs other imports + 'disjoint_set': files('disjoint_set.pyx'), 'finite_set_map_cy': files('finite_set_map_cy.pyx'), 'pythonclass': files('pythonclass.pyx'), 'recursively_enumerated_set': files('recursively_enumerated_set.pyx'), @@ -31,7 +31,8 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/sets', install: true, - include_directories: [inc_cpython], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals, gmp], ) endforeach + diff --git a/src/sage/stats/distributions/meson.build b/src/sage/stats/distributions/meson.build new file mode 100644 index 00000000000..1eb9d97f24f --- /dev/null +++ b/src/sage/stats/distributions/meson.build @@ -0,0 +1,21 @@ +py.install_sources( + 'all.py', + 'discrete_gaussian_lattice.py', + 'discrete_gaussian_polynomial.py', + subdir: 'sage/stats/distributions', +) + +extension_data = { + 'discrete_gaussian_integer': files('discrete_gaussian_integer.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/stats/distributions', + install: true, + include_directories: [inc_cpython, inc_rings, inc_src], + dependencies: [py_dep, cypari2, cysignals, gmp, mpfr], + ) +endforeach + diff --git a/src/sage/stats/hmm/meson.build b/src/sage/stats/hmm/meson.build new file mode 100644 index 00000000000..d9aefe474aa --- /dev/null +++ b/src/sage/stats/hmm/meson.build @@ -0,0 +1,22 @@ +py.install_sources( + 'all.py', + subdir: 'sage/stats/hmm', +) + +extension_data = { + 'chmm': files('chmm.pyx'), + 'distributions': files('distributions.pyx'), + 'hmm': files('hmm.pyx'), + 'util': files('util.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/stats/hmm', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/stats/meson.build b/src/sage/stats/meson.build new file mode 100644 index 00000000000..341048d7f5e --- /dev/null +++ b/src/sage/stats/meson.build @@ -0,0 +1,24 @@ +py.install_sources( + 'all.py', + 'basic_stats.py', + 'r.py', + subdir: 'sage/stats', +) + +extension_data = { + 'intlist': files('intlist.pyx'), + 'time_series': files('time_series.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/stats', + install: true, + include_directories: [inc_cpython, inc_numpy], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + +subdir('distributions') +subdir('hmm') diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index dfd0c074ed9..280b6743e42 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -20,7 +20,6 @@ py.install_sources( 'unique_representation.py', subdir: 'sage/structure', ) -install_subdir('proof', install_dir: sage_install_dir / 'structure') extension_data = { 'category_object': files('category_object.pyx'), @@ -49,7 +48,9 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/structure', install: true, - include_directories: [inc_cpython, inc_rings, inc_src], - dependencies: [py_dep, gmpy2, cysignals, gmp], + include_directories: [inc_cpython, inc_ext, inc_rings], + dependencies: [py_dep, cysignals, gmp, gmpy2, mpc, mpfr], ) endforeach + +install_subdir('proof', install_dir: sage_install_dir / 'structure') diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index c60742ad285..3c5800390ce 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -9,8 +9,11 @@ ginac = declare_dependency( cc.find_library('ginac', required: false), ], ) +inc_ginac = include_directories('ginac') +inc_pynac = include_directories('.') py.install_sources( + '__init__.py', 'all.py', 'assumptions.py', 'benchmark.py', @@ -38,15 +41,13 @@ extension_data = { 'ring': files('ring.pyx'), } -inc_ginac = include_directories('ginac') - foreach name, pyx : extension_data py.extension_module(name, sources: pyx, subdir: 'sage/symbolic', install: true, - include_directories: [inc_cpython, inc_rings, inc_ginac], - dependencies: [py_dep, cysignals, flint, gmp, singular], + include_directories: [inc_cpython, inc_ext, inc_ginac, inc_gsl, inc_pynac, inc_rings], + dependencies: [py_dep, cypari2, cysignals, flint, ginac, gmp, gsl, mpfr, pari, singular], ) endforeach @@ -59,10 +60,9 @@ foreach name, pyx : extension_data_cpp sources: pyx, subdir: 'sage/symbolic', install: true, - cython_args: ['-I', inc_numpy], override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_rings, inc_ext, inc_ginac], - dependencies: [py_dep, cysignals, flint, gmp, singular, cypari2, ginac], + include_directories: [inc_cpython, inc_ext, inc_ginac, inc_gsl, inc_pynac, inc_rings], + dependencies: [py_dep, cypari2, cysignals, flint, ginac, gmp, gsl, mpfr, pari, singular], ) endforeach diff --git a/src/sage/tests/meson.build b/src/sage/tests/meson.build index 928e1666f71..d4355a4a7be 100644 --- a/src/sage/tests/meson.build +++ b/src/sage/tests/meson.build @@ -24,31 +24,34 @@ py.install_sources( subdir: 'sage/tests', ) -install_subdir('books', install_dir: sage_install_dir / 'tests') -install_subdir('memcheck', install_dir: sage_install_dir / 'tests') - extension_data = { 'cython': files('cython.pyx'), } -extension_data_cpp = { - 'stl_vector': files('stl_vector.pyx'), -} foreach name, pyx : extension_data py.extension_module(name, sources: pyx, subdir: 'sage/tests', install: true, - dependencies: [py_dep], + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals, gmp], ) endforeach + +extension_data_cpp = { + 'stl_vector': files('stl_vector.pyx'), +} + foreach name, pyx : extension_data_cpp py.extension_module(name, sources: pyx, subdir: 'sage/tests', install: true, - include_directories: [inc_cpython], override_options : ['cython_language=cpp'], - dependencies: [py_dep, cysignals], + include_directories: [inc_cpython, inc_rings], + dependencies: [py_dep, cysignals, gmp], ) endforeach + +install_subdir('books', install_dir: sage_install_dir / 'tests') +install_subdir('memcheck', install_dir: sage_install_dir / 'tests') From 9db105ffce10d28b4596484cfbc97a68369230ac Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 2 Nov 2023 18:23:19 +0000 Subject: [PATCH 034/161] Last set of relative imports --- src/sage/cpython/debug.pyx | 2 +- src/sage/matroids/basis_exchange_matroid.pxd | 4 +-- src/sage/matroids/basis_exchange_matroid.pyx | 8 ++--- src/sage/matroids/basis_matroid.pxd | 6 ++-- src/sage/matroids/basis_matroid.pyx | 6 ++-- .../matroids/circuit_closures_matroid.pxd | 2 +- .../matroids/circuit_closures_matroid.pyx | 6 ++-- src/sage/matroids/extension.pxd | 2 +- src/sage/matroids/extension.pyx | 2 +- src/sage/matroids/linear_matroid.pxd | 6 ++-- src/sage/matroids/matroid.pyx | 30 +++++++++---------- src/sage/matroids/union_matroid.pxd | 2 +- src/sage/matroids/union_matroid.pyx | 2 +- src/sage/matroids/unpickling.pyx | 14 ++++----- src/sage/modular/modsym/heilbronn.pyx | 4 +-- .../discrete_gaussian_integer.pxd | 2 +- .../discrete_gaussian_integer.pyx | 6 ++-- src/sage/stats/hmm/chmm.pyx | 6 ++-- src/sage/stats/hmm/hmm.pyx | 2 +- src/sage/structure/coerce_dict.pyx | 2 +- 20 files changed, 57 insertions(+), 57 deletions(-) diff --git a/src/sage/cpython/debug.pyx b/src/sage/cpython/debug.pyx index 0cfc1fc2388..09680986673 100644 --- a/src/sage/cpython/debug.pyx +++ b/src/sage/cpython/debug.pyx @@ -18,7 +18,7 @@ cdef extern from "Python.h": # Helper to get a pointer to an object's __dict__ slot, if any PyObject** _PyObject_GetDictPtr(obj) -cdef extern from "sage/cpython/debugimpl.c": +cdef extern from "debugimpl.c": void _type_debug(PyTypeObject*) from sage.cpython.getattr cimport AttributeErrorMessage diff --git a/src/sage/matroids/basis_exchange_matroid.pxd b/src/sage/matroids/basis_exchange_matroid.pxd index b762fd9ed9d..5877f62fc09 100644 --- a/src/sage/matroids/basis_exchange_matroid.pxd +++ b/src/sage/matroids/basis_exchange_matroid.pxd @@ -1,8 +1,8 @@ from sage.data_structures.bitset cimport * from sage.data_structures.bitset_base cimport bitset_t, bitset_s -from .matroid cimport Matroid -from .set_system cimport SetSystem +from sage.matroids.matroid cimport Matroid +from sage.matroids.set_system cimport SetSystem cdef class BasisExchangeMatroid(Matroid): cdef long _groundset_size, _matroid_rank, _bitset_size diff --git a/src/sage/matroids/basis_exchange_matroid.pyx b/src/sage/matroids/basis_exchange_matroid.pyx index c27a8cba33d..e5c18e0185b 100644 --- a/src/sage/matroids/basis_exchange_matroid.pyx +++ b/src/sage/matroids/basis_exchange_matroid.pyx @@ -38,8 +38,8 @@ Methods # https://www.gnu.org/licenses/ # **************************************************************************** -from .matroid cimport Matroid -from .set_system cimport SetSystem +from sage.matroids.matroid cimport Matroid +from sage.matroids.set_system cimport SetSystem from sage.data_structures.bitset_base cimport * @@ -2151,7 +2151,7 @@ cdef class BasisExchangeMatroid(Matroid): True """ if not isinstance(other, BasisExchangeMatroid): - from .basis_matroid import BasisMatroid + from sage.matroids.basis_matroid import BasisMatroid ot = BasisMatroid(other) else: ot = other @@ -2217,7 +2217,7 @@ cdef class BasisExchangeMatroid(Matroid): True """ if not isinstance(other, BasisExchangeMatroid): - from .basis_matroid import BasisMatroid + from sage.matroids.basis_matroid import BasisMatroid other = BasisMatroid(other) if self is other: return {e:e for e in self.groundset()} diff --git a/src/sage/matroids/basis_matroid.pxd b/src/sage/matroids/basis_matroid.pxd index a4202bfedac..aeb59fdb66f 100644 --- a/src/sage/matroids/basis_matroid.pxd +++ b/src/sage/matroids/basis_matroid.pxd @@ -1,7 +1,7 @@ from sage.data_structures.bitset cimport bitset_t -from .matroid cimport Matroid -from .basis_exchange_matroid cimport BasisExchangeMatroid -from .set_system cimport SetSystem +from sage.matroids.matroid cimport Matroid +from sage.matroids.basis_exchange_matroid cimport BasisExchangeMatroid +from sage.matroids.set_system cimport SetSystem cdef class BasisMatroid(BasisExchangeMatroid): cdef bitset_t _bb diff --git a/src/sage/matroids/basis_matroid.pyx b/src/sage/matroids/basis_matroid.pyx index 93cf56ec60c..0610c9a1149 100644 --- a/src/sage/matroids/basis_matroid.pyx +++ b/src/sage/matroids/basis_matroid.pyx @@ -74,9 +74,9 @@ Methods from sage.data_structures.bitset_base cimport * from sage.structure.richcmp cimport rich_to_bool -from .matroid cimport Matroid -from .basis_exchange_matroid cimport BasisExchangeMatroid -from .set_system cimport SetSystem +from sage.matroids.matroid cimport Matroid +from sage.matroids.basis_exchange_matroid cimport BasisExchangeMatroid +from sage.matroids.set_system cimport SetSystem from cpython.object cimport Py_EQ, Py_NE from itertools import combinations diff --git a/src/sage/matroids/circuit_closures_matroid.pxd b/src/sage/matroids/circuit_closures_matroid.pxd index 1ec965db0fe..09225917171 100644 --- a/src/sage/matroids/circuit_closures_matroid.pxd +++ b/src/sage/matroids/circuit_closures_matroid.pxd @@ -1,4 +1,4 @@ -from .matroid cimport Matroid +from sage.matroids.matroid cimport Matroid cdef class CircuitClosuresMatroid(Matroid): cdef frozenset _groundset # _E diff --git a/src/sage/matroids/circuit_closures_matroid.pyx b/src/sage/matroids/circuit_closures_matroid.pyx index 1fc11f0c344..0a25aee80cb 100644 --- a/src/sage/matroids/circuit_closures_matroid.pyx +++ b/src/sage/matroids/circuit_closures_matroid.pyx @@ -67,9 +67,9 @@ Methods # **************************************************************************** from sage.structure.richcmp cimport rich_to_bool, richcmp -from .matroid cimport Matroid -from .set_system cimport SetSystem -from .utilities import setprint_s +from sage.matroids.matroid cimport Matroid +from sage.matroids.set_system cimport SetSystem +from sage.matroids.utilities import setprint_s from cpython.object cimport Py_EQ, Py_NE diff --git a/src/sage/matroids/extension.pxd b/src/sage/matroids/extension.pxd index 34d813eeb7c..6b6d7949794 100644 --- a/src/sage/matroids/extension.pxd +++ b/src/sage/matroids/extension.pxd @@ -1,5 +1,5 @@ from sage.data_structures.bitset cimport bitset_t -from .basis_matroid cimport BasisMatroid +from sage.matroids.basis_matroid cimport BasisMatroid cdef class CutNode: cdef LinearSubclasses _MC diff --git a/src/sage/matroids/extension.pyx b/src/sage/matroids/extension.pyx index 061ba37089e..553869fcf66 100644 --- a/src/sage/matroids/extension.pyx +++ b/src/sage/matroids/extension.pyx @@ -30,7 +30,7 @@ Methods # **************************************************************************** from sage.data_structures.bitset_base cimport * -from .basis_matroid cimport BasisMatroid +from sage.matroids.basis_matroid cimport BasisMatroid cdef class CutNode: diff --git a/src/sage/matroids/linear_matroid.pxd b/src/sage/matroids/linear_matroid.pxd index 663886fa58e..c7e6a402494 100644 --- a/src/sage/matroids/linear_matroid.pxd +++ b/src/sage/matroids/linear_matroid.pxd @@ -1,8 +1,8 @@ from sage.data_structures.bitset cimport bitset_t -from .matroid cimport Matroid -from .basis_exchange_matroid cimport BasisExchangeMatroid -from .lean_matrix cimport LeanMatrix, GenericMatrix, BinaryMatrix, TernaryMatrix, QuaternaryMatrix +from sage.matroids.matroid cimport Matroid +from sage.matroids.basis_exchange_matroid cimport BasisExchangeMatroid +from sage.matroids.lean_matrix cimport LeanMatrix, GenericMatrix, BinaryMatrix, TernaryMatrix, QuaternaryMatrix cdef class LinearMatroid(BasisExchangeMatroid): diff --git a/src/sage/matroids/matroid.pyx b/src/sage/matroids/matroid.pyx index 51692e8f1c1..ed971cb8349 100644 --- a/src/sage/matroids/matroid.pyx +++ b/src/sage/matroids/matroid.pyx @@ -344,9 +344,9 @@ from sage.structure.sage_object cimport SageObject MixedIntegerLinearProgram = LazyImport('sage.numerical.mip', 'MixedIntegerLinearProgram') -from .lean_matrix cimport BinaryMatrix, TernaryMatrix -from .set_system cimport SetSystem -from .utilities import newlabel, sanitize_contractions_deletions, spanning_forest, spanning_stars +from sage.matroids.lean_matrix cimport BinaryMatrix, TernaryMatrix +from sage.matroids.set_system cimport SetSystem +from sage.matroids.utilities import newlabel, sanitize_contractions_deletions, spanning_forest, spanning_stars # On some systems, macros "minor()" and "major()" are defined in system header @@ -1113,7 +1113,7 @@ cdef class Matroid(SageObject): {'e', 'f', 'g', 'h'}}, 4: {{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}}} """ - from . import minor_matroid + from sage.matroids import minor_matroid return minor_matroid.MinorMatroid(self, contractions, deletions) cpdef _has_minor(self, N, bint certificate=False) noexcept: @@ -1226,7 +1226,7 @@ cdef class Matroid(SageObject): sage: [sorted(C) for C in N.circuits() if len(C) == 3] [[0, 1, 6]] """ - from . import basis_matroid + from sage.matroids import basis_matroid return basis_matroid.BasisMatroid(self)._extension(element, hyperplanes) # ** user-facing methods ** @@ -3610,8 +3610,8 @@ cdef class Matroid(SageObject): sage: M._is_isomorphism(N, morphism) True """ - from . import basis_exchange_matroid - from . import basis_matroid + from sage.matroids import basis_exchange_matroid + from sage.matroids import basis_matroid sf = basis_matroid.BasisMatroid(self) if not isinstance(other, basis_exchange_matroid.BasisExchangeMatroid): ot = basis_matroid.BasisMatroid(other) @@ -3694,7 +3694,7 @@ cdef class Matroid(SageObject): return rich_to_bool(op, 1) # Default implementation: use BasisMatroid - from .basis_matroid import BasisMatroid + from sage.matroids.basis_matroid import BasisMatroid return richcmp(BasisMatroid(left), BasisMatroid(right), op) # Minors and duality @@ -4009,7 +4009,7 @@ cdef class Matroid(SageObject): {'c', 'e', 'g'}, {'d', 'e', 'f'}, {'g', 'h', 'i'}}, 3: {{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'}}}' """ - from . import dual_matroid + from sage.matroids import dual_matroid return dual_matroid.DualMatroid(self) cpdef truncation(self) noexcept: @@ -4505,7 +4505,7 @@ cdef class Matroid(SageObject): sage: len(list(M.linear_subclasses(line_length=5))) 44 """ - from . import extension + from sage.matroids import extension return extension.LinearSubclasses(self, line_length=line_length, subsets=subsets) cpdef extensions(self, element=None, line_length=None, subsets=None) noexcept: @@ -4564,7 +4564,7 @@ cdef class Matroid(SageObject): 5 """ - from . import extension + from sage.matroids import extension if element is None: element = newlabel(self.groundset()) else: @@ -7773,7 +7773,7 @@ cdef class Matroid(SageObject): sage: G.show() # needs sage.plot sage.rings.finite_rings """ - from . import matroids_plot_helpers + from sage.matroids import matroids_plot_helpers if pos_method == 1 and pos_dict is not None: # check sanity of pos_dict and add it to cached info if sane if matroids_plot_helpers.posdict_is_sane(self, pos_dict): @@ -7882,7 +7882,7 @@ cdef class Matroid(SageObject): raise NotImplementedError # check sanity of pos_dict and add it to cached info if sane if pos_dict is not None: - from . import matroids_plot_helpers + from sage.matroids import matroids_plot_helpers if matroids_plot_helpers.posdict_is_sane(self,pos_dict): self._cached_info = {'plot_positions': pos_dict, 'lineorders': lineorders} return @@ -8066,7 +8066,7 @@ cdef class Matroid(SageObject): Binary matroid of rank 3 on 7 elements, type (3, 0) Ternary matroid of rank 3 on 7 elements, type 0- """ - from . import union_matroid + from sage.matroids import union_matroid if isinstance(matroids, Matroid): matroids = [matroids] else: @@ -8116,7 +8116,7 @@ cdef class Matroid(SageObject): sage: len(N.bases()) 2100 """ - from . import union_matroid + from sage.matroids import union_matroid if isinstance(matroids, Matroid): matroids = [matroids] else: diff --git a/src/sage/matroids/union_matroid.pxd b/src/sage/matroids/union_matroid.pxd index 6e3a6e8d96e..f77b4f8a888 100644 --- a/src/sage/matroids/union_matroid.pxd +++ b/src/sage/matroids/union_matroid.pxd @@ -1,4 +1,4 @@ -from .matroid cimport Matroid +from sage.matroids.matroid cimport Matroid cdef class MatroidUnion(Matroid): cdef list matroids diff --git a/src/sage/matroids/union_matroid.pyx b/src/sage/matroids/union_matroid.pyx index 802b8d609f4..bb3dd03a082 100644 --- a/src/sage/matroids/union_matroid.pyx +++ b/src/sage/matroids/union_matroid.pyx @@ -1,5 +1,5 @@ -from .matroid cimport Matroid +from sage.matroids.matroid cimport Matroid cdef class MatroidUnion(Matroid): diff --git a/src/sage/matroids/unpickling.pyx b/src/sage/matroids/unpickling.pyx index 94464ecb9f0..77b3f12265c 100644 --- a/src/sage/matroids/unpickling.pyx +++ b/src/sage/matroids/unpickling.pyx @@ -28,13 +28,13 @@ AUTHORS: from sage.data_structures.bitset_base cimport * import sage.matroids.matroid import sage.matroids.basis_exchange_matroid -from .minor_matroid import MinorMatroid -from .dual_matroid import DualMatroid -from .circuit_closures_matroid cimport CircuitClosuresMatroid -from .basis_matroid cimport BasisMatroid -from .linear_matroid cimport LinearMatroid, RegularMatroid, BinaryMatroid, TernaryMatroid, QuaternaryMatroid -from .lean_matrix cimport GenericMatrix, BinaryMatrix, TernaryMatrix, QuaternaryMatrix, PlusMinusOneMatrix, RationalMatrix -from .graphic_matroid import GraphicMatroid +from sage.matroids.minor_matroid import MinorMatroid +from sage.matroids.dual_matroid import DualMatroid +from sage.matroids.circuit_closures_matroid cimport CircuitClosuresMatroid +from sage.matroids.basis_matroid cimport BasisMatroid +from sage.matroids.linear_matroid cimport LinearMatroid, RegularMatroid, BinaryMatroid, TernaryMatroid, QuaternaryMatroid +from sage.matroids.lean_matrix cimport GenericMatrix, BinaryMatrix, TernaryMatrix, QuaternaryMatrix, PlusMinusOneMatrix, RationalMatrix +from sage.matroids.graphic_matroid import GraphicMatroid from sage.rings.rational cimport Rational from sage.libs.gmp.mpq cimport mpq_set diff --git a/src/sage/modular/modsym/heilbronn.pyx b/src/sage/modular/modsym/heilbronn.pyx index ba42d70aa9e..7fc8ed28055 100644 --- a/src/sage/modular/modsym/heilbronn.pyx +++ b/src/sage/modular/modsym/heilbronn.pyx @@ -34,11 +34,11 @@ cdef extern from "": float roundf(float x) cimport sage.modular.modsym.p1list as p1list -from . import p1list +from sage.modular.modsym import p1list cdef p1list.export export export = p1list.export() -from .apply cimport Apply +from sage.modular.modsym.apply cimport Apply cdef Apply PolyApply= Apply() from sage.matrix.matrix_rational_dense cimport Matrix_rational_dense diff --git a/src/sage/stats/distributions/discrete_gaussian_integer.pxd b/src/sage/stats/distributions/discrete_gaussian_integer.pxd index 7235a9397f7..faf66b2e595 100644 --- a/src/sage/stats/distributions/discrete_gaussian_integer.pxd +++ b/src/sage/stats/distributions/discrete_gaussian_integer.pxd @@ -1,4 +1,4 @@ -from .dgs cimport dgs_disc_gauss_mp_t, dgs_disc_gauss_dp_t +from sage.stats.distributions.dgs cimport dgs_disc_gauss_mp_t, dgs_disc_gauss_dp_t from sage.structure.sage_object cimport SageObject from sage.rings.real_mpfr cimport RealNumber diff --git a/src/sage/stats/distributions/discrete_gaussian_integer.pyx b/src/sage/stats/distributions/discrete_gaussian_integer.pyx index 2aa28609180..6d50074102b 100644 --- a/src/sage/stats/distributions/discrete_gaussian_integer.pyx +++ b/src/sage/stats/distributions/discrete_gaussian_integer.pyx @@ -148,9 +148,9 @@ from sage.libs.mpfr cimport mpfr_set, MPFR_RNDN from sage.rings.integer cimport Integer from sage.misc.randstate cimport randstate, current_randstate -from .dgs cimport dgs_disc_gauss_mp_init, dgs_disc_gauss_mp_clear, dgs_disc_gauss_mp_flush_cache -from .dgs cimport dgs_disc_gauss_dp_init, dgs_disc_gauss_dp_clear, dgs_disc_gauss_dp_flush_cache -from .dgs cimport DGS_DISC_GAUSS_UNIFORM_TABLE, DGS_DISC_GAUSS_UNIFORM_ONLINE, DGS_DISC_GAUSS_UNIFORM_LOGTABLE, DGS_DISC_GAUSS_SIGMA2_LOGTABLE +from sage.stats.distributions.dgs cimport dgs_disc_gauss_mp_init, dgs_disc_gauss_mp_clear, dgs_disc_gauss_mp_flush_cache +from sage.stats.distributions.dgs cimport dgs_disc_gauss_dp_init, dgs_disc_gauss_dp_clear, dgs_disc_gauss_dp_flush_cache +from sage.stats.distributions.dgs cimport DGS_DISC_GAUSS_UNIFORM_TABLE, DGS_DISC_GAUSS_UNIFORM_ONLINE, DGS_DISC_GAUSS_UNIFORM_LOGTABLE, DGS_DISC_GAUSS_SIGMA2_LOGTABLE cdef class DiscreteGaussianDistributionIntegerSampler(SageObject): r""" diff --git a/src/sage/stats/hmm/chmm.pyx b/src/sage/stats/hmm/chmm.pyx index aa35b8cefdc..fe09b3f9cfb 100644 --- a/src/sage/stats/hmm/chmm.pyx +++ b/src/sage/stats/hmm/chmm.pyx @@ -28,9 +28,9 @@ from sage.structure.element import is_Matrix from sage.stats.time_series cimport TimeSeries from sage.stats.intlist cimport IntList -from .hmm cimport HiddenMarkovModel -from .util cimport HMM_Util -from .distributions cimport GaussianMixtureDistribution +from sage.stats.hmm.hmm cimport HiddenMarkovModel +from sage.stats.hmm.util cimport HMM_Util +from sage.stats.hmm.distributions cimport GaussianMixtureDistribution cdef HMM_Util util = HMM_Util() diff --git a/src/sage/stats/hmm/hmm.pyx b/src/sage/stats/hmm/hmm.pyx index 86de50cc1a3..fe8ab69cc66 100644 --- a/src/sage/stats/hmm/hmm.pyx +++ b/src/sage/stats/hmm/hmm.pyx @@ -41,7 +41,7 @@ from sage.matrix.constructor import matrix from sage.misc.randstate cimport current_randstate, randstate from cpython.object cimport PyObject_RichCompare -from .util cimport HMM_Util +from sage.stats.hmm.util cimport HMM_Util cdef HMM_Util util = HMM_Util() diff --git a/src/sage/structure/coerce_dict.pyx b/src/sage/structure/coerce_dict.pyx index 269f1be5fd5..8bfb1f9f030 100644 --- a/src/sage/structure/coerce_dict.pyx +++ b/src/sage/structure/coerce_dict.pyx @@ -73,7 +73,7 @@ from cysignals.memory cimport check_calloc, sig_free cdef extern from "Python.h": void PyTuple_SET_ITEM(object tuple, Py_ssize_t index, PyObject* item) -cdef extern from "sage/cpython/pyx_visit.h": +cdef extern from "pyx_visit.h": void Py_VISIT3(PyObject*, visitproc, void*) cdef type KeyedRef, ref From d3aaee75458895ad8fdca45a2c96b5ebf168cc28 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 3 Nov 2023 01:39:35 +0000 Subject: [PATCH 035/161] cleanup --- meson.build | 2 +- src/meson.build | 3 +- src/sage/ext/meson.build | 2 +- src/sage/graphs/__init__.py | 1 + src/sage/graphs/base/__init__.py | 1 + src/sage/graphs/base/meson.build | 2 +- .../graphs/graph_decompositions/__init__.py | 1 + .../graphs/graph_decompositions/meson.build | 23 ++++---- src/sage/graphs/meson.build | 49 +++++++---------- src/sage/groups/__init__.py | 1 + src/sage/groups/perm_gps/__init__.py | 1 + src/sage/groups/perm_gps/meson.build | 2 +- .../groups/perm_gps/partn_ref/__init__.py | 1 + src/sage/libs/__init__.py | 0 src/sage/libs/gap/__init__.py | 0 src/sage/libs/gap/meson.build | 2 +- src/sage/symbolic/meson.build | 54 ++++++++++++++++++- 17 files changed, 95 insertions(+), 50 deletions(-) create mode 100644 src/sage/graphs/__init__.py create mode 100644 src/sage/graphs/base/__init__.py create mode 100644 src/sage/graphs/graph_decompositions/__init__.py create mode 100644 src/sage/groups/__init__.py create mode 100644 src/sage/groups/perm_gps/__init__.py create mode 100644 src/sage/groups/perm_gps/partn_ref/__init__.py create mode 100644 src/sage/libs/__init__.py create mode 100644 src/sage/libs/gap/__init__.py diff --git a/meson.build b/meson.build index b1c16df6459..3a4723d21ac 100644 --- a/meson.build +++ b/meson.build @@ -32,7 +32,7 @@ conf_data.set('SAGE_KENZO_FAS', '\'${prefix}\'/lib/ecl/kenzo.fas') conf_data.set('SAGE_ARB_LIBRARY', 'arb') -#ntl = dependency('ntl', required: true) doesn't work, so ask the compiler directly: +# Cannot be found via pkg-config ntl = cc.find_library('ntl', required: true) # It can be found, so we don't have to set anything here: conf_data.set('NTL_INCDIR', '') diff --git a/src/meson.build b/src/meson.build index 4d880e5fb45..6d6d59cca0f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -214,6 +214,8 @@ mpc = declare_dependency( cc.find_library('mpc'), ] ) +# Cannot be found via pkg-config +gap = cc.find_library('gap') # It's strange but cython cannot find its own include files # so we find them ourselves, and add them to the include path @@ -233,7 +235,6 @@ add_project_arguments('-I', inc_cython + 'Includes', language : 'cython') # have to add them manually. # https://github.com/mesonbuild/meson/issues/9562 add_project_arguments('-I', meson.current_source_dir(), language : 'cython') -#add_project_arguments('-I', py.get_path('include'), language : 'cython') # Add global compiler flags add_project_arguments('-X auto_pickle=False', language : 'cython') diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index 7f7aadedad5..58c8087dce7 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -30,7 +30,7 @@ interpreters = custom_target( # command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], env: ['PYTHONPATH=' + meson.current_source_dir() / '..' / '..'], install: true, - install_dir: 'interpreters' + install_dir: sage_install_dir / 'ext' / 'interpreters' ) subdir('interpreters') diff --git a/src/sage/graphs/__init__.py b/src/sage/graphs/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/base/__init__.py b/src/sage/graphs/base/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/base/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/base/meson.build b/src/sage/graphs/base/meson.build index 9d8f61a95f2..55052e6d545 100644 --- a/src/sage/graphs/base/meson.build +++ b/src/sage/graphs/base/meson.build @@ -25,7 +25,7 @@ endforeach extension_data_cpp = { 'boost_graph': files('boost_graph.pyx'), 'c_graph': files('c_graph.pyx'), - # 'static_sparse_graph': files('static_sparse_graph.pyx'), # compilation error + 'static_sparse_graph': files('static_sparse_graph.pyx'), } foreach name, pyx : extension_data_cpp diff --git a/src/sage/graphs/graph_decompositions/__init__.py b/src/sage/graphs/graph_decompositions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/graph_decompositions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/graph_decompositions/meson.build b/src/sage/graphs/graph_decompositions/meson.build index 25dd8703c57..6ed735ca46d 100644 --- a/src/sage/graphs/graph_decompositions/meson.build +++ b/src/sage/graphs/graph_decompositions/meson.build @@ -1,8 +1,4 @@ -tdlib = declare_dependency( - dependencies: [ - cc.find_library('tdlib', required: false), - ] -) +tdlib = cc.find_library('tdlib', required: false) # Cannot be found via pkg-config rw = declare_dependency( dependencies: [ @@ -53,14 +49,13 @@ foreach name, pyx : extension_data_cpp endforeach if tdlib.found() - # Still cannot find the tdlib headers - # py.extension_module('tdlib', - # sources: 'tdlib.pyx', - # subdir: 'sage/graphs/graph_decompositions', - # install: true, - # override_options : ['cython_language=cpp'], - # include_directories: [inc_cpython, inc_data_structures], - # dependencies: [py_dep, cysignals, tdlib], - # ) + py.extension_module('tdlib', + sources: 'tdlib.pyx', + subdir: 'sage/graphs/graph_decompositions', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_data_structures], + dependencies: [py_dep, cysignals, tdlib], + ) endif diff --git a/src/sage/graphs/meson.build b/src/sage/graphs/meson.build index 737005610c1..40a95e7e590 100644 --- a/src/sage/graphs/meson.build +++ b/src/sage/graphs/meson.build @@ -1,13 +1,6 @@ -bliss = declare_dependency( - dependencies: [ - cc.find_library('bliss', required: false), - ] -) -mcqd = declare_dependency( - dependencies: [ - cc.find_library('mcqd', required: false), - ] -) +bliss = cc.find_library('bliss', required: false) +mcqd = cc.find_library('mcqd', required: false) +cliquer = cc.find_library('cliquer') # Cannot be found via pkg-config planarity = declare_dependency( @@ -78,7 +71,7 @@ foreach name, pyx : extension_data subdir: 'sage/graphs', install: true, include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], - dependencies: [py_dep, cysignals, flint, gmp, planarity], + dependencies: [py_dep, cysignals, cliquer, flint, gmp, planarity], ) endforeach @@ -100,26 +93,24 @@ foreach name, pyx : extension_data_cpp ) endforeach if bliss.found() - # Still cannot find the bliss header - # py.extension_module('bliss', - # sources: files('bliss.pyx'), - # subdir: 'sage/graphs', - # install: true, - # override_options : ['cython_language=cpp'], - # include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], - # dependencies: [py_dep, cysignals, bliss], - # ) + py.extension_module('bliss', + sources: files('bliss.pyx'), + subdir: 'sage/graphs', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, bliss], + ) endif if mcqd.found() - # Still cannot find the mcqd header - # py.extension_module('mcqd', - # sources: files('mcqd.pyx'), - # subdir: 'sage/graphs', - # install: true, - # override_options : ['cython_language=cpp'], - # include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], - # dependencies: [py_dep, cysignals, mcqd], - # ) + py.extension_module('mcqd', + sources: files('mcqd.pyx'), + subdir: 'sage/graphs', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [inc_cpython, inc_data_structures, inc_flint, inc_rings], + dependencies: [py_dep, cysignals, mcqd], + ) endif subdir('base') diff --git a/src/sage/groups/__init__.py b/src/sage/groups/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/perm_gps/__init__.py b/src/sage/groups/perm_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/perm_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/perm_gps/meson.build b/src/sage/groups/perm_gps/meson.build index ab4070d34b1..e964b9ff4dd 100644 --- a/src/sage/groups/perm_gps/meson.build +++ b/src/sage/groups/perm_gps/meson.build @@ -20,7 +20,7 @@ foreach name, pyx : extension_data subdir: 'sage/groups/perm_gps', install: true, include_directories: [inc_cpython, inc_ext, inc_rings], - dependencies: [py_dep, cysignals, gmp], + dependencies: [py_dep, cysignals, gap, gmp], ) endforeach diff --git a/src/sage/groups/perm_gps/partn_ref/__init__.py b/src/sage/groups/perm_gps/partn_ref/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/__init__.py b/src/sage/libs/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/libs/gap/__init__.py b/src/sage/libs/gap/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/libs/gap/meson.build b/src/sage/libs/gap/meson.build index 59885f1efed..5214a0ced62 100644 --- a/src/sage/libs/gap/meson.build +++ b/src/sage/libs/gap/meson.build @@ -24,7 +24,7 @@ foreach name, pyx : extension_data subdir: 'sage/libs/gap', install: true, include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cysignals, gmp], + dependencies: [py_dep, cysignals, gap, gmp], ) endforeach diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index 3c5800390ce..f572e019917 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -52,7 +52,59 @@ foreach name, pyx : extension_data endforeach extension_data_cpp = { - 'expression': files('expression.pyx'), + 'expression': files('expression.pyx', + 'ginac/add.cpp', + 'ginac/archive.cpp', + 'ginac/assume.cpp', + 'ginac/basic.cpp', + 'ginac/cmatcher.cpp', + 'ginac/constant.cpp', + 'ginac/context.cpp', + 'ginac/ex.cpp', + 'ginac/expair.cpp', + 'ginac/expairseq.cpp', + 'ginac/exprseq.cpp', + 'ginac/fderivative.cpp', + 'ginac/function.cpp', + 'ginac/function_info.cpp', + 'ginac/infinity.cpp', + 'ginac/infoflagbase.cpp', + 'ginac/inifcns.cpp', + 'ginac/inifcns_comb.cpp', + 'ginac/inifcns_gamma.cpp', + 'ginac/inifcns_hyperb.cpp', + 'ginac/inifcns_hyperg.cpp', + 'ginac/inifcns_nstdsums.cpp', + 'ginac/inifcns_orthopoly.cpp', + 'ginac/inifcns_trans.cpp', + 'ginac/inifcns_trig.cpp', + 'ginac/inifcns_zeta.cpp', + 'ginac/lst.cpp', + 'ginac/matrix.cpp', + 'ginac/mpoly-giac.cpp', + 'ginac/mpoly-ginac.cpp', + 'ginac/mpoly-singular.cpp', + 'ginac/mpoly.cpp', + 'ginac/mul.cpp', + 'ginac/normal.cpp', + 'ginac/numeric.cpp', + 'ginac/operators.cpp', + 'ginac/order.cpp', + 'ginac/power.cpp', + 'ginac/print.cpp', + 'ginac/pseries.cpp', + 'ginac/py_funcs.cpp', + 'ginac/registrar.cpp', + 'ginac/relational.cpp', + 'ginac/remember.cpp', + 'ginac/sum.cpp', + 'ginac/symbol.cpp', + 'ginac/templates.cpp', + 'ginac/upoly-ginac.cpp', + 'ginac/useries.cpp', + 'ginac/utils.cpp', + 'ginac/wildcard.cpp', + ), } foreach name, pyx : extension_data_cpp From 2486d99c68e84bd63ab7ad2ac90900159d8cbb3d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 3 Nov 2023 10:52:01 +0000 Subject: [PATCH 036/161] fix ci --- .github/workflows/ci-meson.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index de268f733c2..9fd6475627e 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -61,7 +61,9 @@ jobs: - name: Bootstrap shell: bash -l {0} - run: ./bootstrap + run: python -m sage_setup.autogen.interpreters src/sage/ext/interpreters + env: + PYTHONPATH: src - name: Build shell: bash -l {0} From 3e5f3c135f59b21463f5675a482c3125626d0703 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 4 Nov 2023 02:30:55 +0000 Subject: [PATCH 037/161] Improve symbolic compilation --- src/sage/symbolic/meson.build | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index f572e019917..613f70b8de7 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -1,7 +1,7 @@ # cannot be found via pkg-config singular = declare_dependency( dependencies: [ - cc.find_library('singular', required: false), + cc.find_library('Singular', required: false), ], ) ginac = declare_dependency( @@ -113,8 +113,9 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/symbolic', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ext, inc_ginac, inc_gsl, inc_pynac, inc_rings], - dependencies: [py_dep, cypari2, cysignals, flint, ginac, gmp, gsl, mpfr, pari, singular], + cpp_args : '-std=c++11', + include_directories: [inc_cpython, inc_ext, inc_ginac, inc_gsl, inc_pynac, inc_rings, include_directories('../libs/gmp')], + dependencies: [py_dep, cypari2, cysignals, gmp, gmpxx, flint, ginac, gsl, m, mpfr, pari, singular], ) endforeach From 3990cc02e1999efa410459e2016a359a7249d85f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 9 Nov 2023 21:17:16 +0000 Subject: [PATCH 038/161] improve docs --- src/doc/en/developer/meson.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/en/developer/meson.rst b/src/doc/en/developer/meson.rst index 422aa5001cf..c1e62a5767b 100644 --- a/src/doc/en/developer/meson.rst +++ b/src/doc/en/developer/meson.rst @@ -4,11 +4,11 @@ Assume we're starting from a clean repo and a fully set up conda environment:: ./bootstrap-conda mamba env create --file src/environment-dev-3.11.yml --name sage-dev conda activate sage-dev - ./bootstrap ``` (Note, that in the codespace environment you first have to delete the already compiled files, e.g. with ``shopt -s globstar`` followed by ``rm src/**/*.so`` +or ``for f in src/**/*.so ; do mv "$f" "$f.old"; done`` ) To compile and install the project in editable install, just use From d8c04cf0e54b19d105a6b3a40dc17330b1ca62b4 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 9 Nov 2023 21:18:08 +0000 Subject: [PATCH 039/161] git ignore old so files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index aa04337d12a..1320e747ed2 100644 --- a/.gitignore +++ b/.gitignore @@ -151,6 +151,7 @@ __pycache__/ # Generated Cython files *.so **/*.so +**/*.so.old /src/cython_debug # Most C and C++ files are generated by Cython and should not # be included in the sdist. From c27aa7be6afd0e2724ce8db29620d794f51c227a Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 9 Nov 2023 21:18:29 +0000 Subject: [PATCH 040/161] use dependency to find singular --- src/sage/symbolic/meson.build | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index 613f70b8de7..d1e746e0b5e 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -1,9 +1,5 @@ # cannot be found via pkg-config -singular = declare_dependency( - dependencies: [ - cc.find_library('Singular', required: false), - ], -) +singular = dependency('Singular') ginac = declare_dependency( dependencies: [ cc.find_library('ginac', required: false), From f0cbcfef7405ffbeddca1505fb6597bcf7379ac6 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 11 Nov 2023 01:34:47 +0000 Subject: [PATCH 041/161] remove outdated comment --- src/sage/symbolic/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index d1e746e0b5e..3baa05b5e7f 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -1,4 +1,3 @@ -# cannot be found via pkg-config singular = dependency('Singular') ginac = declare_dependency( dependencies: [ From e70b24eadc021d0774ffede0389bb50ad424ac6a Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 11 Nov 2023 16:18:09 +0000 Subject: [PATCH 042/161] remove gmpxx in symbolic --- src/sage/symbolic/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index 3baa05b5e7f..e6df18250e2 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -110,7 +110,7 @@ foreach name, pyx : extension_data_cpp override_options : ['cython_language=cpp'], cpp_args : '-std=c++11', include_directories: [inc_cpython, inc_ext, inc_ginac, inc_gsl, inc_pynac, inc_rings, include_directories('../libs/gmp')], - dependencies: [py_dep, cypari2, cysignals, gmp, gmpxx, flint, ginac, gsl, m, mpfr, pari, singular], + dependencies: [py_dep, cypari2, cysignals, gmp, flint, ginac, gsl, m, mpfr, pari, singular], ) endforeach From 4519e180539a0c4817e195b592159f7f500cba0e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 11 Nov 2023 16:47:57 +0000 Subject: [PATCH 043/161] fix a few runtime errors --- src/sage/geometry/triangulation/meson.build | 2 +- src/sage/modules/__init__.py | 1 + src/sage/rings/polynomial/__init__.py | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 src/sage/modules/__init__.py create mode 100644 src/sage/rings/polynomial/__init__.py diff --git a/src/sage/geometry/triangulation/meson.build b/src/sage/geometry/triangulation/meson.build index a47c8b06a1e..575756c1c61 100644 --- a/src/sage/geometry/triangulation/meson.build +++ b/src/sage/geometry/triangulation/meson.build @@ -6,7 +6,7 @@ py.install_sources( ) extension_data_cpp = { - 'base': files('base.pyx'), + 'base': files('base.pyx', 'functions.cc', 'data.cc', 'triangulations.cc'), } foreach name, pyx : extension_data_cpp diff --git a/src/sage/modules/__init__.py b/src/sage/modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/polynomial/__init__.py b/src/sage/rings/polynomial/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/polynomial/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name From e4afb294a09a9e025639865eaffd6a46351dec66 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 12 Nov 2023 18:27:51 +0000 Subject: [PATCH 044/161] Properly compile dynamics --- .../dynamics/arithmetic_dynamics/meson.build | 28 +++++++++++++++++++ .../dynamics/complex_dynamics/meson.build | 20 +++++++++++++ src/sage/dynamics/meson.build | 11 ++++++++ src/sage/meson.build | 2 +- 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/sage/dynamics/arithmetic_dynamics/meson.build create mode 100644 src/sage/dynamics/complex_dynamics/meson.build create mode 100644 src/sage/dynamics/meson.build diff --git a/src/sage/dynamics/arithmetic_dynamics/meson.build b/src/sage/dynamics/arithmetic_dynamics/meson.build new file mode 100644 index 00000000000..45d4d11c73d --- /dev/null +++ b/src/sage/dynamics/arithmetic_dynamics/meson.build @@ -0,0 +1,28 @@ +py.install_sources( + 'affine_ds.py', + 'all.py', + 'berkovich_ds.py', + 'dynamical_semigroup.py', + 'endPN_automorphism_group.py', + 'endPN_minimal_model.py', + 'generic_ds.py', + 'product_projective_ds.py', + 'projective_ds.py', + 'wehlerK3.py', + subdir: 'sage/dynamics/arithmetic_dynamics', +) + +extension_data = { + 'projective_ds_helper': files('projective_ds_helper.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/dynamics/arithmetic_dynamics', + install: true, + include_directories: [], + dependencies: [py_dep, gmp], + ) +endforeach + diff --git a/src/sage/dynamics/complex_dynamics/meson.build b/src/sage/dynamics/complex_dynamics/meson.build new file mode 100644 index 00000000000..22426829362 --- /dev/null +++ b/src/sage/dynamics/complex_dynamics/meson.build @@ -0,0 +1,20 @@ +py.install_sources( + 'all.py', + 'mandel_julia.py', + subdir: 'sage/dynamics/complex_dynamics', +) + +extension_data = { + 'mandel_julia_helper': files('mandel_julia_helper.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/dynamics/complex_dynamics', + install: true, + include_directories: [], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/dynamics/meson.build b/src/sage/dynamics/meson.build new file mode 100644 index 00000000000..3d9a73c29a2 --- /dev/null +++ b/src/sage/dynamics/meson.build @@ -0,0 +1,11 @@ +py.install_sources( + 'all.py', + 'finite_dynamical_system.py', + 'finite_dynamical_system_catalog.py', + 'surface_dynamics_deprecation.py', + subdir: 'sage/dynamics', +) + +subdir('arithmetic_dynamics') +install_subdir('cellular_automata', install_dir: sage_install_dir / 'dynamics') +subdir('complex_dynamics') diff --git a/src/sage/meson.build b/src/sage/meson.build index 7513244c0b2..2ed1c3abe89 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -4,7 +4,6 @@ sage_install_dir = py.get_install_dir() / 'sage' no_processing = [ 'databases', 'doctest', - 'dynamics', 'features', 'game_theory', 'homology', @@ -79,3 +78,4 @@ subdir('sets') subdir('stats') subdir('symbolic') subdir('tests') +subdir('dynamics') From c0e6c5955fd9bb01ad0d78180470a70026596ce9 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 12 Nov 2023 18:31:49 +0000 Subject: [PATCH 045/161] properly compile sat --- src/sage/meson.build | 2 +- src/sage/sat/meson.build | 8 ++++++++ src/sage/sat/solvers/meson.build | 23 +++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/sage/sat/meson.build create mode 100644 src/sage/sat/solvers/meson.build diff --git a/src/sage/meson.build b/src/sage/meson.build index 2ed1c3abe89..1e89aef0d8a 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -13,7 +13,6 @@ no_processing = [ 'parallel', 'repl', 'sandpiles', - 'sat', 'tensor', 'topology', 'typeset', @@ -79,3 +78,4 @@ subdir('stats') subdir('symbolic') subdir('tests') subdir('dynamics') +subdir('sat') diff --git a/src/sage/sat/meson.build b/src/sage/sat/meson.build new file mode 100644 index 00000000000..33cdb49894b --- /dev/null +++ b/src/sage/sat/meson.build @@ -0,0 +1,8 @@ +py.install_sources( + 'all.py', + 'boolean_polynomials.py', + subdir: 'sage/sat', +) + +install_subdir('converters', install_dir: sage_install_dir / 'sat') +subdir('solvers') diff --git a/src/sage/sat/solvers/meson.build b/src/sage/sat/solvers/meson.build new file mode 100644 index 00000000000..8815ab02d49 --- /dev/null +++ b/src/sage/sat/solvers/meson.build @@ -0,0 +1,23 @@ +py.install_sources( + '__init__.py', + 'cryptominisat.py', + 'dimacs.py', + 'picosat.py', + 'sat_lp.py', + subdir: 'sage/sat/solvers', +) + +extension_data = { + 'satsolver': files('satsolver.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/sat/solvers', + install: true, + include_directories: [], + dependencies: [py_dep, gmp], + ) +endforeach + From eaa04d4bee8678b7e3ddd8de7e2e6e8820bd26ab Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 12 Nov 2023 18:39:48 +0000 Subject: [PATCH 046/161] ci: run tests --- .github/workflows/ci-meson.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 9fd6475627e..854762b48a1 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -70,7 +70,11 @@ jobs: run: | pip install --no-build-isolation --config-settings=builddir=builddir --editable . - - name: Test - if: success() || failure() + - name: Test import shell: bash -l {0} + continue-on-error: true run: ./sage -python -m pytest -c src/tox.ini --doctest-modules src + + - name: Test + shell: bash -l {0} + run: ./sage -t --all -p0 From 44d7498e0d4ec1b435e842e1d706c726e380e001 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 01:09:30 +0000 Subject: [PATCH 047/161] Fix a few runtime errors --- src/meson.build | 1 + src/sage/geometry/meson.build | 2 +- .../combinatorial_polyhedron/meson.build | 25 +++++++++++ src/sage/geometry/polyhedron/meson.build | 43 +++++++++++++++++++ src/sage/libs/coxeter3/meson.build | 29 +++++++------ src/sage/libs/eclib/meson.build | 2 +- src/sage/modular/arithgroup/farey.cpp | 2 +- src/sage/modular/arithgroup/meson.build | 2 +- src/sage/rings/meson.build | 2 +- src/sage/rings/polynomial/pbori/meson.build | 7 +-- .../schemes/hyperelliptic_curves/meson.build | 2 +- src/sage/stats/distributions/meson.build | 2 +- 12 files changed, 94 insertions(+), 25 deletions(-) create mode 100644 src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build create mode 100644 src/sage/geometry/polyhedron/meson.build diff --git a/src/meson.build b/src/meson.build index 6d6d59cca0f..5b4df8a8290 100644 --- a/src/meson.build +++ b/src/meson.build @@ -127,6 +127,7 @@ curl = declare_dependency( cc.find_library('curl'), ] ) +# Cannot be found via pkg-config ec = declare_dependency( dependencies: [ cc.find_library('ec'), diff --git a/src/sage/geometry/meson.build b/src/sage/geometry/meson.build index ce70f0d691a..4964ad981a5 100644 --- a/src/sage/geometry/meson.build +++ b/src/sage/geometry/meson.build @@ -41,6 +41,6 @@ endforeach install_subdir('hyperbolic_space', install_dir: sage_install_dir / 'geometry') install_subdir('hyperplane_arrangement', install_dir: sage_install_dir / 'geometry') -install_subdir('polyhedron', install_dir: sage_install_dir / 'geometry') +subdir('polyhedron') install_subdir('riemannian_manifolds', install_dir: sage_install_dir / 'geometry') subdir('triangulation') diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build b/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build new file mode 100644 index 00000000000..fcf98755cb1 --- /dev/null +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build @@ -0,0 +1,25 @@ +py.install_sources( + 'all.py', + subdir: 'sage/geometry/polyhedron/combinatorial_polyhedron', +) + +extension_data = { + 'base': files('base.pyx'), + 'combinatorial_face': files('combinatorial_face.pyx'), + 'conversions': files('conversions.pyx'), + 'face_iterator': files('face_iterator.pyx'), + 'face_list_data_structure': files('face_list_data_structure.pyx'), + 'list_of_faces': files('list_of_faces.pyx'), + 'polyhedron_face_lattice': files('polyhedron_face_lattice.pyx'), +} + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/geometry/polyhedron/combinatorial_polyhedron', + install: true, + include_directories: [inc_cpython, inc_data_structures, inc_rings], + dependencies: [py_dep, cysignals, gmp], + ) +endforeach + diff --git a/src/sage/geometry/polyhedron/meson.build b/src/sage/geometry/polyhedron/meson.build new file mode 100644 index 00000000000..3234e6b0167 --- /dev/null +++ b/src/sage/geometry/polyhedron/meson.build @@ -0,0 +1,43 @@ +py.install_sources( + 'all.py', + 'backend_cdd.py', + 'backend_cdd_rdf.py', + 'backend_field.py', + 'backend_normaliz.py', + 'backend_number_field.py', + 'backend_polymake.py', + 'backend_ppl.py', + 'base.py', + 'base0.py', + 'base1.py', + 'base2.py', + 'base3.py', + 'base4.py', + 'base5.py', + 'base6.py', + 'base7.py', + 'base_QQ.py', + 'base_RDF.py', + 'base_ZZ.py', + 'base_mutable.py', + 'base_number_field.py', + 'cdd_file_format.py', + 'constructor.py', + 'double_description.py', + 'double_description_inhomogeneous.py', + 'face.py', + 'generating_function.py', + 'lattice_euclidean_group_element.py', + 'library.py', + 'misc.py', + 'palp_database.py', + 'parent.py', + 'plot.py', + 'ppl_lattice_polygon.py', + 'ppl_lattice_polytope.py', + 'representation.py', + subdir: 'sage/geometry/polyhedron', +) + +subdir('combinatorial_polyhedron') +install_subdir('modules', install_dir: sage_install_dir / 'geometry/polyhedron') diff --git a/src/sage/libs/coxeter3/meson.build b/src/sage/libs/coxeter3/meson.build index 877508d7916..8d9ea2019dc 100644 --- a/src/sage/libs/coxeter3/meson.build +++ b/src/sage/libs/coxeter3/meson.build @@ -1,3 +1,4 @@ +coxeter3 = cc.find_library('coxeter3', required: false) py.install_sources( '__init__.py', 'all__sagemath_coxeter3.py', @@ -6,18 +7,20 @@ py.install_sources( ) -extension_data_cpp = { - # 'coxeter': files('coxeter.pyx'), # not yet on conda -} +if coxeter3.found() + extension_data_cpp = { + 'coxeter': files('coxeter.pyx'), + } -foreach name, pyx : extension_data_cpp - py.extension_module(name, - sources: pyx, - subdir: 'sage/libs/coxeter3', - install: true, - override_options : ['cython_language=cpp'], - include_directories: [], - dependencies: [py_dep, cysignals, coxeter3], - ) -endforeach + foreach name, pyx : extension_data_cpp + py.extension_module(name, + sources: pyx, + subdir: 'sage/libs/coxeter3', + install: true, + override_options : ['cython_language=cpp'], + include_directories: [], + dependencies: [py_dep, cysignals, coxeter3], + ) + endforeach +endif diff --git a/src/sage/libs/eclib/meson.build b/src/sage/libs/eclib/meson.build index d47852e4d7b..5f5766801a3 100644 --- a/src/sage/libs/eclib/meson.build +++ b/src/sage/libs/eclib/meson.build @@ -20,7 +20,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], - dependencies: [py_dep, cysignals, flint, gmp], + dependencies: [py_dep, cysignals, flint, gmp, ec], ) endforeach diff --git a/src/sage/modular/arithgroup/farey.cpp b/src/sage/modular/arithgroup/farey.cpp index 209391676de..5c912b46ca9 100644 --- a/src/sage/modular/arithgroup/farey.cpp +++ b/src/sage/modular/arithgroup/farey.cpp @@ -29,7 +29,7 @@ #include #include "farey.hpp" -#include "sage/modular/arithgroup/farey_symbol.h" +#include "farey_symbol.h" using namespace std; diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index 50dca19bc89..23772d05a33 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -28,7 +28,7 @@ foreach name, pyx : extension_data endforeach extension_data_cpp = { - 'farey_symbol': files('farey_symbol.pyx'), + 'farey_symbol': files('farey_symbol.pyx', 'sl2z.cpp', 'farey.cpp'), } foreach name, pyx : extension_data_cpp diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 442800e8eab..63438447097 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -101,7 +101,7 @@ foreach name, pyx : extension_data endforeach extension_data_cpp = { - 'bernmm': files('bernmm.pyx'), + 'bernmm': files('bernmm.pyx', 'bernmm/bern_modp.cpp', 'bernmm/bern_modp_util.cpp'),#, 'bernmm/bern_rat.cpp'), - TODO: Compilation error 'bernoulli_mod_p': files('bernoulli_mod_p.pyx'), 'fraction_field_FpT': files('fraction_field_FpT.pyx'), 'rational': files('rational.pyx'), diff --git a/src/sage/rings/polynomial/pbori/meson.build b/src/sage/rings/polynomial/pbori/meson.build index c087b554e01..56482234dda 100644 --- a/src/sage/rings/polynomial/pbori/meson.build +++ b/src/sage/rings/polynomial/pbori/meson.build @@ -3,11 +3,8 @@ brial = declare_dependency( cc.find_library('brial', required: false), ] ) -brial_groebner = declare_dependency( - dependencies: [ - cc.find_library('brial-groebner', required: false), - ] -) +# Cannot be found via pkg-config +brial_groebner = cc.find_library('brial_groebner') py.install_sources( 'PyPolyBoRi.py', diff --git a/src/sage/schemes/hyperelliptic_curves/meson.build b/src/sage/schemes/hyperelliptic_curves/meson.build index b64793152ec..35cdc5c72a8 100644 --- a/src/sage/schemes/hyperelliptic_curves/meson.build +++ b/src/sage/schemes/hyperelliptic_curves/meson.build @@ -20,7 +20,7 @@ py.install_sources( ) extension_data_cpp = { - 'hypellfrob': files('hypellfrob.pyx'), + 'hypellfrob': files('hypellfrob.pyx', 'hypellfrob/hypellfrob.cpp', 'hypellfrob/recurrences_ntl.cpp'), } foreach name, pyx : extension_data_cpp diff --git a/src/sage/stats/distributions/meson.build b/src/sage/stats/distributions/meson.build index 1eb9d97f24f..b5b8a74e3bb 100644 --- a/src/sage/stats/distributions/meson.build +++ b/src/sage/stats/distributions/meson.build @@ -6,7 +6,7 @@ py.install_sources( ) extension_data = { - 'discrete_gaussian_integer': files('discrete_gaussian_integer.pyx'), + 'discrete_gaussian_integer': files('discrete_gaussian_integer.pyx', 'dgs_gauss_mp.c', 'dgs_gauss_dp.c', 'dgs_bern.c'), } foreach name, pyx : extension_data From 9d5afd308647ce56385450efba3b9551d73357bf Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 07:54:21 +0000 Subject: [PATCH 048/161] Add missing singular dependencies Co-authored-by: Michael Orlitzky --- src/meson.build | 2 ++ src/sage/algebras/fusion_rings/meson.build | 2 +- src/sage/algebras/letterplace/meson.build | 2 +- src/sage/libs/singular/meson.build | 2 +- src/sage/matrix/meson.build | 2 +- src/sage/rings/polynomial/meson.build | 2 +- src/sage/symbolic/meson.build | 1 - 7 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/meson.build b/src/meson.build index 5b4df8a8290..b122ef343e0 100644 --- a/src/meson.build +++ b/src/meson.build @@ -218,6 +218,8 @@ mpc = declare_dependency( # Cannot be found via pkg-config gap = cc.find_library('gap') +singular = dependency('Singular') + # It's strange but cython cannot find its own include files # so we find them ourselves, and add them to the include path inc_cython = run_command(py, diff --git a/src/sage/algebras/fusion_rings/meson.build b/src/sage/algebras/fusion_rings/meson.build index 150a5f24699..1e4abfb33ec 100644 --- a/src/sage/algebras/fusion_rings/meson.build +++ b/src/sage/algebras/fusion_rings/meson.build @@ -33,7 +33,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_ntl, inc_numpy, inc_rings], - dependencies: [py_dep, cysignals, gmp], + dependencies: [py_dep, cysignals, gmp, singular], ) endforeach diff --git a/src/sage/algebras/letterplace/meson.build b/src/sage/algebras/letterplace/meson.build index bc3bd24022e..213d8b05aaf 100644 --- a/src/sage/algebras/letterplace/meson.build +++ b/src/sage/algebras/letterplace/meson.build @@ -16,7 +16,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, gmp], + dependencies: [py_dep, gmp, singular], ) endforeach diff --git a/src/sage/libs/singular/meson.build b/src/sage/libs/singular/meson.build index 99e88d5b1ec..9dad471f9b8 100644 --- a/src/sage/libs/singular/meson.build +++ b/src/sage/libs/singular/meson.build @@ -21,7 +21,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_ntl, inc_rings, inc_rings_finite], - dependencies: [py_dep, cysignals, givaro, gmp], + dependencies: [py_dep, cysignals, givaro, gmp, singular], ) endforeach diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index 3e7afdf609d..7a0362ef582 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -94,7 +94,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib], + dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, singular, zlib], ) endforeach diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index e1e9f80dbeb..1430321ca38 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -93,7 +93,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari], + dependencies: [py_dep, arb, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari, singular], ) endforeach diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index e6df18250e2..ad22a4365d8 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -1,4 +1,3 @@ -singular = dependency('Singular') ginac = declare_dependency( dependencies: [ cc.find_library('ginac', required: false), From dec2e02809f7687041dfb30553a572355959636d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 07:58:33 +0000 Subject: [PATCH 049/161] Drop bogus ginac depencency Sage needs pynac (a fork of ginac), but it doesn't need ginac itself. To avoid potential problems, we drop ginac from the list o dependencies. This requires us to set inc_pynac to "ginac" (the name of the pynac directory) so that the build can find its headers. Co-authored-by: Michael Orlitzky --- src/sage/symbolic/meson.build | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index ad22a4365d8..5c24532bda4 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -1,8 +1,3 @@ -ginac = declare_dependency( - dependencies: [ - cc.find_library('ginac', required: false), - ], -) inc_ginac = include_directories('ginac') inc_pynac = include_directories('.') @@ -41,7 +36,7 @@ foreach name, pyx : extension_data subdir: 'sage/symbolic', install: true, include_directories: [inc_cpython, inc_ext, inc_ginac, inc_gsl, inc_pynac, inc_rings], - dependencies: [py_dep, cypari2, cysignals, flint, ginac, gmp, gsl, mpfr, pari, singular], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, gsl, mpfr, pari, singular], ) endforeach @@ -109,7 +104,7 @@ foreach name, pyx : extension_data_cpp override_options : ['cython_language=cpp'], cpp_args : '-std=c++11', include_directories: [inc_cpython, inc_ext, inc_ginac, inc_gsl, inc_pynac, inc_rings, include_directories('../libs/gmp')], - dependencies: [py_dep, cypari2, cysignals, gmp, flint, ginac, gsl, m, mpfr, pari, singular], + dependencies: [py_dep, cypari2, cysignals, gmp, flint, gsl, m, mpfr, pari, singular], ) endforeach From 310975ed9aa6a6ced45883eef2a5d1e2a62c230b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 08:30:44 +0000 Subject: [PATCH 050/161] Fix a few more runtime errors --- src/sage/geometry/__init__.py | 1 + src/sage/geometry/polyhedron/__init__.py | 1 + .../geometry/polyhedron/combinatorial_polyhedron/__init__.py | 1 + src/sage/libs/eclib/meson.build | 2 +- src/sage/libs/meson.build | 5 ++++- src/sage/modular/arithgroup/meson.build | 5 +++-- 6 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 src/sage/geometry/__init__.py create mode 100644 src/sage/geometry/polyhedron/__init__.py create mode 100644 src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py diff --git a/src/sage/geometry/__init__.py b/src/sage/geometry/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/polyhedron/__init__.py b/src/sage/geometry/polyhedron/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/polyhedron/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py b/src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/eclib/meson.build b/src/sage/libs/eclib/meson.build index 5f5766801a3..81efc60d663 100644 --- a/src/sage/libs/eclib/meson.build +++ b/src/sage/libs/eclib/meson.build @@ -20,7 +20,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], - dependencies: [py_dep, cysignals, flint, gmp, ec], + dependencies: [py_dep, cysignals, ec, flint, gmp], ) endforeach diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index eb4bcbb2c3d..30c2aa4fcc6 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -3,6 +3,9 @@ sirocco = declare_dependency( cc.find_library('sirocco', required: false), ] ) +# cannot be found via pkg-config +ecl = cc.find_library('ecl') + py.install_sources( 'all.py', 'all__sagemath_coxeter3.py', @@ -19,7 +22,7 @@ extension_data = { #'meataxe': files('meataxe.pyx'), # not yet on conda - need meataxe } -dependencies = [py_dep, braiding, cysignals, ecm, gc, gmp, homfly, mtx, sirocco] +dependencies = [py_dep, braiding, cysignals, ecl, ecm, gc, gmp, homfly, mtx, sirocco] if sirocco.found() #extension_data['sirocco'] += files('sirocco.pxd') # not yet on conda diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index 23772d05a33..6b7c4ca8871 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -1,3 +1,4 @@ +inc_farey = include_directories('.') py.install_sources( 'all.py', 'arithgroup_generic.py', @@ -22,7 +23,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/modular/arithgroup', install: true, - include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_farey, inc_flint, inc_rings], dependencies: [py_dep, cysignals, flint, gmp], ) endforeach @@ -37,7 +38,7 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/modular/arithgroup', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_farey, inc_flint, inc_rings], dependencies: [py_dep, cysignals, flint, gmp], ) endforeach From 1c1bfa337e5d5089742b9313812ca085de97c4e4 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 08:53:46 +0000 Subject: [PATCH 051/161] Remove dependency on https://github.com/sagemath/sage/pull/36489 which is blocked for stupid reasons --- .github/workflows/ci-conda.yml | 28 +++++-------- pkgs/sage-conf/pyproject.toml | 7 ---- pkgs/sage-conf_meson/.gitignore | 7 ---- pkgs/sage-conf_meson/README.rst | 1 - pkgs/sage-conf_meson/VERSION.txt | 1 - pkgs/sage-conf_meson/_sage_conf | 1 - pkgs/sage-conf_meson/pyproject.toml | 1 - pkgs/sage-conf_meson/sage_conf.py | 6 --- pkgs/sage-conf_meson/setup.py | 62 ----------------------------- src/doc/en/installation/conda.rst | 5 +-- 10 files changed, 11 insertions(+), 108 deletions(-) delete mode 100644 pkgs/sage-conf_meson/.gitignore delete mode 120000 pkgs/sage-conf_meson/README.rst delete mode 100644 pkgs/sage-conf_meson/VERSION.txt delete mode 120000 pkgs/sage-conf_meson/_sage_conf delete mode 120000 pkgs/sage-conf_meson/pyproject.toml delete mode 100644 pkgs/sage-conf_meson/sage_conf.py delete mode 100644 pkgs/sage-conf_meson/setup.py diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index df331cf99c0..aaee77e5be3 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -66,21 +66,22 @@ jobs: conda info conda list - - name: Bootstrap + - name: Configure shell: bash -l {0} - run: ./bootstrap + continue-on-error: true + run: | + ./bootstrap + echo "::add-matcher::.github/workflows/configure-systempackage-problem-matcher.json" + ./configure --enable-build-as-root --with-python=$CONDA_PREFIX/bin/python --prefix=$CONDA_PREFIX --enable-system-site-packages $(for pkg in $(./sage -package list :standard: --has-file spkg-configure.m4 --has-file distros/conda.txt --exclude rpy2); do echo --with-system-$pkg=force; done) + echo "::remove-matcher owner=configure-system-package-warning::" + echo "::remove-matcher owner=configure-system-package-error::" - name: Build shell: bash -l {0} run: | # Use --no-deps and pip check below to verify that all necessary dependencies are installed via conda. - echo "::group::sage-setup" - pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-setup - echo "::endgroup::" - echo "::group::sage-conf" - pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf_meson - echo "::endgroup::" - pip install --no-build-isolation --no-deps --config-settings editable_mode=compat -v -v -e ./src + pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf ./pkgs/sage-setup + pip install --no-build-isolation --no-deps -v -v -e ./src env: SAGE_NUM_THREADS: 2 @@ -94,15 +95,6 @@ jobs: shell: bash -l {0} run: ./sage -t --all -p0 - # We keep this step for now to make sure that the configure-based setup still works. - - name: Test configure - shell: bash -l {0} - run: | - echo "::add-matcher::.github/workflows/configure-systempackage-problem-matcher.json" - ./configure --enable-build-as-root --with-python=$CONDA_PREFIX/bin/python --prefix=$CONDA_PREFIX --enable-system-site-packages $(for pkg in $(./sage -package list :standard: --has-file spkg-configure.m4 --has-file distros/conda.txt --exclude rpy2); do echo --with-system-$pkg=force; done) - echo "::remove-matcher owner=configure-system-package-warning::" - echo "::remove-matcher owner=configure-system-package-error::" - - name: Print logs if: always() run: | diff --git a/pkgs/sage-conf/pyproject.toml b/pkgs/sage-conf/pyproject.toml index 9b39d5d8816..9787c3bdf00 100644 --- a/pkgs/sage-conf/pyproject.toml +++ b/pkgs/sage-conf/pyproject.toml @@ -1,10 +1,3 @@ [build-system] requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" - -[project] -name = "sage-conf" -dynamic = ["version"] - -[tool.setuptools.dynamic] -version = {file = ["VERSION.txt"]} diff --git a/pkgs/sage-conf_meson/.gitignore b/pkgs/sage-conf_meson/.gitignore deleted file mode 100644 index ff1f6bd336e..00000000000 --- a/pkgs/sage-conf_meson/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/_sage_conf/_conf.py -/builddir -/build -/dist -/*.egg-info -/.tox -/bin/sage-env-config diff --git a/pkgs/sage-conf_meson/README.rst b/pkgs/sage-conf_meson/README.rst deleted file mode 120000 index feda886cd36..00000000000 --- a/pkgs/sage-conf_meson/README.rst +++ /dev/null @@ -1 +0,0 @@ -../sage-conf/README.rst \ No newline at end of file diff --git a/pkgs/sage-conf_meson/VERSION.txt b/pkgs/sage-conf_meson/VERSION.txt deleted file mode 100644 index e3fab2e6628..00000000000 --- a/pkgs/sage-conf_meson/VERSION.txt +++ /dev/null @@ -1 +0,0 @@ -10.2.beta7 diff --git a/pkgs/sage-conf_meson/_sage_conf b/pkgs/sage-conf_meson/_sage_conf deleted file mode 120000 index d92a91bef8c..00000000000 --- a/pkgs/sage-conf_meson/_sage_conf +++ /dev/null @@ -1 +0,0 @@ -../sage-conf/_sage_conf \ No newline at end of file diff --git a/pkgs/sage-conf_meson/pyproject.toml b/pkgs/sage-conf_meson/pyproject.toml deleted file mode 120000 index 52c93c824e2..00000000000 --- a/pkgs/sage-conf_meson/pyproject.toml +++ /dev/null @@ -1 +0,0 @@ -../sage-conf/pyproject.toml \ No newline at end of file diff --git a/pkgs/sage-conf_meson/sage_conf.py b/pkgs/sage-conf_meson/sage_conf.py deleted file mode 100644 index 1b09bb76a83..00000000000 --- a/pkgs/sage-conf_meson/sage_conf.py +++ /dev/null @@ -1,6 +0,0 @@ -from _sage_conf.__main__ import _main - -from builddir._conf import * -from builddir.build_info import CONDA_PREFIX, SAGE_ROOT - -SAGE_LOCAL = CONDA_PREFIX diff --git a/pkgs/sage-conf_meson/setup.py b/pkgs/sage-conf_meson/setup.py deleted file mode 100644 index 34ce471d429..00000000000 --- a/pkgs/sage-conf_meson/setup.py +++ /dev/null @@ -1,62 +0,0 @@ -import os -import sys -from distutils.command.build_scripts import \ - build_scripts as distutils_build_scripts -from pathlib import Path - -from setuptools import setup -from setuptools.command.build_py import build_py as setuptools_build_py -from setuptools.command.editable_wheel import \ - editable_wheel as setuptools_editable_wheel -from setuptools.errors import SetupError - - -class build_py(setuptools_build_py): - def run(self): - here = Path(__file__).parent - if self.editable_mode: - root = here.parent.parent - else: - raise SetupError('Not supported') - - conda_prefix = os.environ.get('CONDA_PREFIX', '') - if not conda_prefix: - raise SetupError( - 'No conda environment is active. ' - 'See https://doc.sagemath.org/html/en/installation/conda.html on how to get started.' - ) - - builddir = here / "builddir" - cmd = f"cd {root} && meson setup {builddir} --wipe" - print(f"Running {cmd}") - sys.stdout.flush() - if os.system(cmd) != 0: - raise SetupError("configure failed") - - # Write build info - with open(builddir / 'build_info.py', 'w', encoding="utf-8") as build_info: - build_info.write(f'SAGE_ROOT = "{root}"\n') - build_info.write(f'CONDA_PREFIX = "{conda_prefix}"\n') - - -class build_scripts(distutils_build_scripts): - def run(self): - self.distribution.scripts.append(os.path.join('bin', 'sage-env-config')) - if not self.distribution.entry_points: - self.entry_points = self.distribution.entry_points = dict() - distutils_build_scripts.run(self) - - -class editable_wheel(setuptools_editable_wheel): - r""" - Customized so that exceptions raised by our build_py - do not lead to the "Customization incompatible with editable install" message - """ - _safely_run = setuptools_editable_wheel.run_command - - -setup( - cmdclass=dict( - build_py=build_py, build_scripts=build_scripts, editable_wheel=editable_wheel - ) -) diff --git a/src/doc/en/installation/conda.rst b/src/doc/en/installation/conda.rst index 8f1712ffa33..9456deff2b0 100644 --- a/src/doc/en/installation/conda.rst +++ b/src/doc/en/installation/conda.rst @@ -139,12 +139,9 @@ Here we assume that you are using a git checkout. - Bootstrap the source tree and install the build prerequisites and the Sage library:: $ ./bootstrap - $ pip install --no-build-isolation -v -v --editable ./pkgs/sage-conf_meson ./pkgs/sage-setup + $ pip install --no-build-isolation -v -v --editable ./pkgs/sage-conf_conda ./pkgs/sage-setup $ pip install --no-build-isolation --config-settings editable_mode=compat -v -v --editable ./src - In case of errors, try to use ``sage-conf_conda`` instead of ``sage-conf_meson``, - and please report the problem by opening an issue on GitHub. - - Verify that Sage has been installed:: $ sage -c 'print(version())' From 7727ab1fb64e34019078a9bb97b14faa2b4b6b7d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 08:56:20 +0000 Subject: [PATCH 052/161] fix farey compilation --- src/sage/modular/arithgroup/farey.cpp | 2 +- src/sage/modular/arithgroup/meson.build | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/sage/modular/arithgroup/farey.cpp b/src/sage/modular/arithgroup/farey.cpp index 5c912b46ca9..209391676de 100644 --- a/src/sage/modular/arithgroup/farey.cpp +++ b/src/sage/modular/arithgroup/farey.cpp @@ -29,7 +29,7 @@ #include #include "farey.hpp" -#include "farey_symbol.h" +#include "sage/modular/arithgroup/farey_symbol.h" using namespace std; diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index 6b7c4ca8871..6e16cff8f1a 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -1,4 +1,3 @@ -inc_farey = include_directories('.') py.install_sources( 'all.py', 'arithgroup_generic.py', @@ -23,7 +22,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/modular/arithgroup', install: true, - include_directories: [inc_cpython, inc_ext, inc_farey, inc_flint, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_src, inc_flint, inc_rings], dependencies: [py_dep, cysignals, flint, gmp], ) endforeach @@ -38,7 +37,7 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/modular/arithgroup', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ext, inc_farey, inc_flint, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_src, inc_flint, inc_rings], dependencies: [py_dep, cysignals, flint, gmp], ) endforeach From 8a6d93b821d59cc69dd4468af1f16d1e678d0537 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 09:31:07 +0000 Subject: [PATCH 053/161] remove duplicate dependency --- src/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/src/meson.build b/src/meson.build index b122ef343e0..21f450db56f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -209,7 +209,6 @@ mpfi = declare_dependency( cc.find_library('mpfi'), ] ) -gsl = dependency('gsl') mpc = declare_dependency( dependencies: [ cc.find_library('mpc'), From d700f64c8636bcef5b7bc8b4c3f419a5b57e7ee2 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 11:01:54 +0000 Subject: [PATCH 054/161] Fix farey compilation --- src/sage/modular/arithgroup/farey.cpp | 2 +- src/sage/modular/arithgroup/meson.build | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/sage/modular/arithgroup/farey.cpp b/src/sage/modular/arithgroup/farey.cpp index 209391676de..5c912b46ca9 100644 --- a/src/sage/modular/arithgroup/farey.cpp +++ b/src/sage/modular/arithgroup/farey.cpp @@ -29,7 +29,7 @@ #include #include "farey.hpp" -#include "sage/modular/arithgroup/farey_symbol.h" +#include "farey_symbol.h" using namespace std; diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index 6e16cff8f1a..b26ea6a6bf2 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -1,3 +1,4 @@ +inc_farey = meson.current_build_dir() py.install_sources( 'all.py', 'arithgroup_generic.py', @@ -22,11 +23,21 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/modular/arithgroup', install: true, - include_directories: [inc_cpython, inc_ext, inc_src, inc_flint, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], dependencies: [py_dep, cysignals, flint, gmp], ) endforeach +# Manually create header file, which otherwise is not found +farey_symbol_header = custom_target( + 'farey_symbol.h', + output : 'farey_symbol.h', + input : 'farey_symbol.pyx', + install: true, + install_dir: '.', + command : ['cython', '--cplus', '@INPUT@', '-o', '@OUTPUT@'], +) + extension_data_cpp = { 'farey_symbol': files('farey_symbol.pyx', 'sl2z.cpp', 'farey.cpp'), } @@ -37,7 +48,8 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/modular/arithgroup', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_cpython, inc_ext, inc_src, inc_flint, inc_rings], + cpp_args: ['-I', inc_farey], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], dependencies: [py_dep, cysignals, flint, gmp], ) endforeach From c60c8665fa78e047df1b00be739efad74ab3db9b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 11:02:53 +0000 Subject: [PATCH 055/161] Remove obsolete uncommented code --- src/sage/all.py | 3 +-- src/sage/modular/arithgroup/all.py | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/sage/all.py b/src/sage/all.py index e397cdee266..b54610c819d 100644 --- a/src/sage/all.py +++ b/src/sage/all.py @@ -85,8 +85,7 @@ from sage.arith.all import * from sage.matrix.all import * -# Cannot find ginac (and I don't know where to look for it) -#from sage.symbolic.all import * +from sage.symbolic.all import * from sage.modules.all import * from sage.monoids.all import * from sage.algebras.all import * diff --git a/src/sage/modular/arithgroup/all.py b/src/sage/modular/arithgroup/all.py index 0597ae7b886..d4fb241d1f9 100644 --- a/src/sage/modular/arithgroup/all.py +++ b/src/sage/modular/arithgroup/all.py @@ -15,6 +15,4 @@ from .congroup import (degeneracy_coset_representatives_gamma0, degeneracy_coset_representatives_gamma1) -# Cannot find FareySymbol (and I don't know where to look for it) -#from .farey_symbol import Farey as FareySymbol -FareySymbol = None +from .farey_symbol import Farey as FareySymbol From edcdb2a8daf92ed841a0e51dc92dfec3e072334e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 11:49:50 +0000 Subject: [PATCH 056/161] Try to fix farey header compilation --- src/sage/modular/arithgroup/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index b26ea6a6bf2..9b9179ff33e 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -35,7 +35,7 @@ farey_symbol_header = custom_target( input : 'farey_symbol.pyx', install: true, install_dir: '.', - command : ['cython', '--cplus', '@INPUT@', '-o', '@OUTPUT@'], + command : ['cython', '--cplus', '@INPUT@', '-o', '@OUTPUT@', '-I', '../../../'], ) extension_data_cpp = { From 93d900088f78b34457ede8048262fed46b4b7b4f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 13:03:19 +0000 Subject: [PATCH 057/161] try to fix farey compilation in ci --- src/sage/modular/arithgroup/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index 9b9179ff33e..4f7d3949875 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -35,7 +35,7 @@ farey_symbol_header = custom_target( input : 'farey_symbol.pyx', install: true, install_dir: '.', - command : ['cython', '--cplus', '@INPUT@', '-o', '@OUTPUT@', '-I', '../../../'], + command : [cython.cmd_array(), '--cplus', '@INPUT@', '-o', '@OUTPUT@', '-I', '../../../'], ) extension_data_cpp = { From 903c79bf4b9a7ffe261765b7f82aaf2cf5be72a5 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 13:29:40 +0000 Subject: [PATCH 058/161] Another try to fix farey --- src/sage/modular/arithgroup/meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index 4f7d3949875..4b2f41e3c45 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -35,11 +35,11 @@ farey_symbol_header = custom_target( input : 'farey_symbol.pyx', install: true, install_dir: '.', - command : [cython.cmd_array(), '--cplus', '@INPUT@', '-o', '@OUTPUT@', '-I', '../../../'], + command : [cython.cmd_array(), '--cplus', '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], ) extension_data_cpp = { - 'farey_symbol': files('farey_symbol.pyx', 'sl2z.cpp', 'farey.cpp'), + 'farey_symbol': [files('farey_symbol.pyx', 'sl2z.cpp', 'farey.cpp'), farey_symbol_header[0]], } foreach name, pyx : extension_data_cpp From 9d689cbda0d7211f2b18f554b445a87ea3ae5636 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 14:00:33 +0000 Subject: [PATCH 059/161] Don't install farey header --- src/sage/modular/arithgroup/meson.build | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index 4b2f41e3c45..ff8f9862b50 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -33,8 +33,6 @@ farey_symbol_header = custom_target( 'farey_symbol.h', output : 'farey_symbol.h', input : 'farey_symbol.pyx', - install: true, - install_dir: '.', command : [cython.cmd_array(), '--cplus', '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], ) From 37a67ab802e6222a718b2e683a6c15c9f3753774 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 14 Nov 2023 14:28:24 +0000 Subject: [PATCH 060/161] Fix farey import error --- src/sage/modular/arithgroup/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index ff8f9862b50..ccaa0dc3811 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -48,7 +48,7 @@ foreach name, pyx : extension_data_cpp override_options : ['cython_language=cpp'], cpp_args: ['-I', inc_farey], include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], - dependencies: [py_dep, cysignals, flint, gmp], + dependencies: [py_dep, cysignals, flint, gmp, gmpxx], ) endforeach From 395c310fbc0c4482dfe05c0ee5915431fa21160f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 08:40:30 +0000 Subject: [PATCH 061/161] Remove old warning about sage.gaprc --- src/sage/libs/gap/util.pyx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/sage/libs/gap/util.pyx b/src/sage/libs/gap/util.pyx index d37fe84f029..2476bbcc1f8 100644 --- a/src/sage/libs/gap/util.pyx +++ b/src/sage/libs/gap/util.pyx @@ -250,10 +250,7 @@ cdef initialize() noexcept: # Get the path to the sage.gaprc file and check that it exists sage_gaprc = os.path.join(os.path.dirname(__file__), 'sage.gaprc') - if not os.path.exists(sage_gaprc): - warnings.warn(f"Sage's GAP initialization file {sage_gaprc} is " - "is missing; some functionality may be limited") - else: + if os.path.exists(sage_gaprc): sage_gaprc = str_to_bytes(sage_gaprc, FS_ENCODING, "surrogateescape") argv[argc] = sage_gaprc argc += 1 From b63beef2adfd84d8a6870db3d0df3973d2a810d3 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 09:50:56 +0000 Subject: [PATCH 062/161] Fix compilation of interpreters --- .github/workflows/ci-meson.yml | 6 ---- src/sage/ext/interpreters/meson.build | 10 +++--- src/sage/ext/meson.build | 36 +++++++++++++++++-- .../autogen/interpreters/generator.py | 2 +- .../autogen/interpreters/specs/cc.py | 4 +-- .../autogen/interpreters/specs/cdf.py | 2 +- .../autogen/interpreters/specs/element.py | 2 +- .../autogen/interpreters/specs/rr.py | 4 +-- 8 files changed, 45 insertions(+), 21 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 854762b48a1..d5fa873d0c9 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -59,12 +59,6 @@ jobs: conda info conda list - - name: Bootstrap - shell: bash -l {0} - run: python -m sage_setup.autogen.interpreters src/sage/ext/interpreters - env: - PYTHONPATH: src - - name: Build shell: bash -l {0} run: | diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build index f86e7f8abe2..17057e737df 100644 --- a/src/sage/ext/interpreters/meson.build +++ b/src/sage/ext/interpreters/meson.build @@ -4,12 +4,12 @@ py.install_sources( ) extension_data = { - #'wrapper_cc': files('wrapper_cc.pyx'), # compilation error - #'wrapper_cdf': files('wrapper_cdf.pyx'), # compilation error - #'wrapper_el': files('wrapper_el.pyx'), # compilation error + 'wrapper_cc': files('wrapper_cc.pyx'), + 'wrapper_cdf': files('wrapper_cdf.pyx'), + 'wrapper_el': files('wrapper_el.pyx'), 'wrapper_py': files('wrapper_py.pyx'), 'wrapper_rdf': files('wrapper_rdf.pyx'), - #'wrapper_rr': files('wrapper_rr.pyx'), # compilation error + 'wrapper_rr': files('wrapper_rr.pyx'), } foreach name, pyx : extension_data @@ -18,7 +18,7 @@ foreach name, pyx : extension_data subdir: 'sage/ext/interpreters', install: true, include_directories: [inc_cpython, inc_ext, inc_interpreters, inc_rings, inc_src], - dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari], + dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari, interpreters_dep], ) endforeach diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index 58c8087dce7..b278e6fbb81 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -26,11 +26,41 @@ interpreters = custom_target( input: '../../sage_setup/autogen/interpreters/__init__.py', command: [py, '-m', 'sage_setup.autogen.interpreters', meson.current_source_dir() / 'interpreters'], # This is actually against the Meson philosophy, which does not like in-source builds. - # So normally you would do something like the following (left for a follow-up) + # So normally you would do something like the following + # however, this we currently cannot pass the generated files as sources to install_sources + # properly fixing this is left for a follow-up # command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], env: ['PYTHONPATH=' + meson.current_source_dir() / '..' / '..'], - install: true, - install_dir: sage_install_dir / 'ext' / 'interpreters' +) + +# Manually create header files, which otherwise is not found +wrapper_el_header = custom_target( + 'wrapper_el.h', + output : 'wrapper_el.h', + input : 'interpreters/wrapper_el.pyx', + command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) +wrapper_cc_header = custom_target( + 'wrapper_cc.h', + output : 'wrapper_cc.h', + input : 'interpreters/wrapper_cc.pyx', + command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) +wrapper_cdf_header = custom_target( + 'wrapper_cdf.h', + output : 'wrapper_cdf.h', + input : 'interpreters/wrapper_cdf.pyx', + command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) +wrapper_rr_header = custom_target( + 'wrapper_rr.h', + output : 'wrapper_rr.h', + input : 'interpreters/wrapper_rr.pyx', + command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) + +interpreters_dep = declare_dependency( + sources: [interpreters, wrapper_el_header, wrapper_cc_header, wrapper_cdf_header, wrapper_rr_header], ) subdir('interpreters') diff --git a/src/sage_setup/autogen/interpreters/generator.py b/src/sage_setup/autogen/interpreters/generator.py index bec7cae2b47..33877422a8c 100644 --- a/src/sage_setup/autogen/interpreters/generator.py +++ b/src/sage_setup/autogen/interpreters/generator.py @@ -374,7 +374,7 @@ def write_wrapper(self, write): from sage.ext.fast_callable cimport Wrapper - cdef extern from "sage/ext/interpreters/interp_{{ s.name }}.c": + cdef extern from "interp_{{ s.name }}.c": {{ myself.func_header(cython=true) -}} {% if s.err_return != 'NULL' %} diff --git a/src/sage_setup/autogen/interpreters/specs/cc.py b/src/sage_setup/autogen/interpreters/specs/cc.py index ea5e8708647..e16252b0b79 100644 --- a/src/sage_setup/autogen/interpreters/specs/cc.py +++ b/src/sage_setup/autogen/interpreters/specs/cc.py @@ -149,7 +149,7 @@ def __init__(self): sage: print(interp.c_header) #include - #include "sage/ext/interpreters/wrapper_cc.h" + #include "wrapper_cc.h" So instructions where you need to interact with Python can @@ -171,7 +171,7 @@ def __init__(self): self.c_header = ri(0, ''' #include - #include "sage/ext/interpreters/wrapper_cc.h" + #include "wrapper_cc.h" ''') self.pxd_header = ri(0, diff --git a/src/sage_setup/autogen/interpreters/specs/cdf.py b/src/sage_setup/autogen/interpreters/specs/cdf.py index 137487e1de2..e85a9fbe802 100644 --- a/src/sage_setup/autogen/interpreters/specs/cdf.py +++ b/src/sage_setup/autogen/interpreters/specs/cdf.py @@ -85,7 +85,7 @@ def __init__(self): self.c_header = ri(0,""" #include #include - #include "sage/ext/interpreters/wrapper_cdf.h" + #include "wrapper_cdf.h" /* On Solaris, we need to define _Imaginary_I when compiling with GCC, * otherwise the constant I doesn't work. The definition below is based diff --git a/src/sage_setup/autogen/interpreters/specs/element.py b/src/sage_setup/autogen/interpreters/specs/element.py index bbb9c21ae57..2f280f703f1 100644 --- a/src/sage_setup/autogen/interpreters/specs/element.py +++ b/src/sage_setup/autogen/interpreters/specs/element.py @@ -105,7 +105,7 @@ def __init__(self): self.chunks = [self.mc_args, self.mc_constants, self.mc_stack, self.mc_domain_info, self.mc_code] self.c_header = ri(0, """ - #include "sage/ext/interpreters/wrapper_el.h" + #include "wrapper_el.h" #define CHECK(x) do_check(&(x), domain) diff --git a/src/sage_setup/autogen/interpreters/specs/rr.py b/src/sage_setup/autogen/interpreters/specs/rr.py index 264b694dfab..06452e24047 100644 --- a/src/sage_setup/autogen/interpreters/specs/rr.py +++ b/src/sage_setup/autogen/interpreters/specs/rr.py @@ -148,7 +148,7 @@ def __init__(self): sage: print(interp.c_header) #include - #include "sage/ext/interpreters/wrapper_rr.h" + #include "wrapper_rr.h" The function ``rr_py_call_helper`` is implemented in Cython:: @@ -188,7 +188,7 @@ def __init__(self): self.c_header = ri(0, ''' #include - #include "sage/ext/interpreters/wrapper_rr.h" + #include "wrapper_rr.h" ''') self.pxd_header = ri(0, From 49fa87b92996e0dec980d0f5239de50fea8916d4 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 09:51:15 +0000 Subject: [PATCH 063/161] Git-ignore all builddirs --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1320e747ed2..df81acac1b1 100644 --- a/.gitignore +++ b/.gitignore @@ -288,3 +288,4 @@ worktree* # meson build directory builddir +builddir-* From 82c5f2b45ef2a9b58099eb07d1061be0b9f92f6e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 09:51:29 +0000 Subject: [PATCH 064/161] Include static maxima file --- src/sage/interfaces/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/interfaces/meson.build b/src/sage/interfaces/meson.build index 3a9d7b872fb..4c2bd0fe578 100644 --- a/src/sage/interfaces/meson.build +++ b/src/sage/interfaces/meson.build @@ -49,6 +49,7 @@ py.install_sources( 'read_data.py', 'rubik.py', 'sage0.py', + 'sage-maxima.lisp', 'scilab.py', 'singular.py', 'sympy.py', From 8453c1c8330abf95e2b4dd1565daecb2d7714924 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 09:56:32 +0000 Subject: [PATCH 065/161] Readd a few all imports --- src/sage/schemes/all.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/sage/schemes/all.py b/src/sage/schemes/all.py index d819c224e5d..23858c6f0c8 100644 --- a/src/sage/schemes/all.py +++ b/src/sage/schemes/all.py @@ -22,15 +22,13 @@ from .jacobians.all import * -# Runtime error -#from .hyperelliptic_curves.all import * +from .hyperelliptic_curves.all import * from .curves.all import * from .plane_conics.all import * -# Runtime error -#from .elliptic_curves.all import * +from .elliptic_curves.all import * from .plane_quartics.all import * @@ -44,7 +42,6 @@ from .product_projective.all import * -# Runtime error -#from .cyclic_covers.all import * +from .cyclic_covers.all import * from .berkovich.all import * From 97053a78e922ba6bbe0e0220c1b45c1746fef636 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 10:06:55 +0000 Subject: [PATCH 066/161] Recreate missing init files --- src/sage/algebras/__init__.py | 1 + src/sage/algebras/finite_dimensional_algebras/__init__.py | 1 + src/sage/algebras/fusion_rings/__init__.py | 1 + src/sage/algebras/hecke_algebras/__init__.py | 1 + src/sage/algebras/letterplace/__init__.py | 1 + src/sage/algebras/lie_algebras/__init__.py | 1 + src/sage/algebras/lie_conformal_algebras/__init__.py | 1 + src/sage/algebras/quantum_groups/__init__.py | 1 + src/sage/algebras/quatalg/__init__.py | 1 + src/sage/algebras/steenrod/__init__.py | 1 + src/sage/arith/__init__.py | 1 + src/sage/calculus/__init__.py | 1 + src/sage/calculus/transforms/__init__.py | 1 + src/sage/categories/examples/__init__.py | 1 + src/sage/coding/__init__.py | 1 + src/sage/coding/codecan/__init__.py | 1 + src/sage/coding/guruswami_sudan/__init__.py | 1 + src/sage/coding/source_coding/__init__.py | 1 + src/sage/combinat/__init__.py | 1 + src/sage/combinat/chas/__init__.py | 1 + src/sage/combinat/cluster_algebra_quiver/__init__.py | 1 + src/sage/combinat/crystals/__init__.py | 1 + src/sage/combinat/designs/__init__.py | 1 + src/sage/combinat/matrices/__init__.py | 1 + src/sage/combinat/ncsf_qsym/__init__.py | 1 + src/sage/combinat/ncsym/__init__.py | 1 + src/sage/combinat/path_tableaux/__init__.py | 1 + src/sage/combinat/posets/__init__.py | 1 + src/sage/combinat/rigged_configurations/__init__.py | 1 + src/sage/combinat/root_system/__init__.py | 1 + src/sage/combinat/sf/__init__.py | 1 + src/sage/combinat/species/__init__.py | 1 + src/sage/combinat/words/__init__.py | 1 + src/sage/combinat/words/notes/__init__.py | 1 + src/sage/crypto/block_cipher/__init__.py | 1 + src/sage/crypto/public_key/__init__.py | 1 + src/sage/databases/__init__.py | 1 + src/sage/doctest/tests/__init__.py | 1 + src/sage/dynamics/__init__.py | 1 + src/sage/dynamics/arithmetic_dynamics/__init__.py | 1 + src/sage/dynamics/cellular_automata/__init__.py | 1 + src/sage/dynamics/complex_dynamics/__init__.py | 1 + src/sage/ext/__init__.py | 1 + src/sage/ext/mac-app/__init__.py | 1 + src/sage/ext_data/__init__.py | 1 + src/sage/ext_data/doctest/__init__.py | 1 + src/sage/ext_data/doctest/invalid/__init__.py | 1 + src/sage/ext_data/gap/__init__.py | 1 + src/sage/ext_data/gap/joyner/__init__.py | 1 + src/sage/ext_data/graphs/__init__.py | 1 + src/sage/ext_data/kenzo/__init__.py | 1 + src/sage/ext_data/magma/__init__.py | 1 + src/sage/ext_data/magma/latex/__init__.py | 1 + src/sage/ext_data/magma/sage/__init__.py | 1 + src/sage/ext_data/mwrank/__init__.py | 1 + src/sage/ext_data/nbconvert/__init__.py | 1 + src/sage/ext_data/notebook-ipython/__init__.py | 1 + src/sage/ext_data/pari/__init__.py | 1 + src/sage/ext_data/pari/buzzard/__init__.py | 1 + src/sage/ext_data/pari/dokchitser/__init__.py | 1 + src/sage/ext_data/pari/simon/__init__.py | 1 + src/sage/ext_data/singular/__init__.py | 1 + src/sage/ext_data/singular/function_field/__init__.py | 1 + src/sage/ext_data/threejs/__init__.py | 1 + src/sage/ext_data/valgrind/__init__.py | 1 + src/sage/functions/__init__.py | 1 + src/sage/game_theory/__init__.py | 1 + src/sage/games/__init__.py | 1 + src/sage/geometry/hyperbolic_space/__init__.py | 1 + src/sage/geometry/hyperplane_arrangement/__init__.py | 1 + src/sage/geometry/polyhedron/modules/__init__.py | 1 + src/sage/geometry/riemannian_manifolds/__init__.py | 1 + src/sage/geometry/triangulation/__init__.py | 1 + src/sage/graphs/bliss_cpp/__init__.py | 1 + src/sage/graphs/cliquer/__init__.py | 1 + src/sage/graphs/generators/__init__.py | 1 + src/sage/groups/abelian_gps/__init__.py | 1 + src/sage/groups/additive_abelian/__init__.py | 1 + src/sage/groups/affine_gps/__init__.py | 1 + src/sage/groups/lie_gps/__init__.py | 1 + src/sage/groups/matrix_gps/__init__.py | 1 + src/sage/groups/misc_gps/__init__.py | 1 + src/sage/groups/perm_gps/partn_ref2/__init__.py | 1 + src/sage/groups/semimonomial_transformations/__init__.py | 1 + src/sage/homology/__init__.py | 1 + src/sage/interacts/__init__.py | 1 + src/sage/interfaces/__init__.py | 1 + src/sage/knots/__init__.py | 1 + src/sage/lfunctions/__init__.py | 1 + src/sage/libs/mpc/__init__.py | 1 + src/sage/libs/mpfi/__init__.py | 1 + src/sage/libs/mpfr/__init__.py | 1 + src/sage/libs/polybori/__init__.py | 1 + src/sage/logic/__init__.py | 1 + src/sage/manifolds/__init__.py | 1 + src/sage/manifolds/differentiable/__init__.py | 1 + src/sage/manifolds/differentiable/examples/__init__.py | 1 + src/sage/manifolds/subsets/__init__.py | 1 + src/sage/matroids/__init__.py | 1 + src/sage/misc/notes/__init__.py | 1 + src/sage/modular/__init__.py | 1 + src/sage/modular/abvar/__init__.py | 1 + src/sage/modular/arithgroup/__init__.py | 1 + src/sage/modular/btquotients/__init__.py | 1 + src/sage/modular/hecke/__init__.py | 1 + src/sage/modular/local_comp/__init__.py | 1 + src/sage/modular/modform/__init__.py | 1 + src/sage/modular/modform_hecketriangle/__init__.py | 1 + src/sage/modular/modsym/__init__.py | 1 + src/sage/modular/overconvergent/__init__.py | 1 + src/sage/modular/pollack_stevens/__init__.py | 1 + src/sage/modular/quasimodform/__init__.py | 1 + src/sage/modular/quatalg/__init__.py | 1 + src/sage/modular/ssmod/__init__.py | 1 + src/sage/modules/fg_pid/__init__.py | 1 + src/sage/modules/fp_graded/__init__.py | 1 + src/sage/modules/fp_graded/steenrod/__init__.py | 1 + src/sage/modules/with_basis/__init__.py | 1 + src/sage/monoids/__init__.py | 1 + src/sage/numerical/__init__.py | 1 + src/sage/numerical/backends/__init__.py | 1 + src/sage/parallel/__init__.py | 1 + src/sage/plot/__init__.py | 1 + src/sage/plot/plot3d/__init__.py | 1 + src/sage/probability/__init__.py | 1 + src/sage/quadratic_forms/__init__.py | 1 + src/sage/quadratic_forms/genera/__init__.py | 1 + src/sage/quivers/__init__.py | 1 + src/sage/rings/asymptotic/__init__.py | 1 + src/sage/rings/bernmm/__init__.py | 1 + src/sage/rings/convert/__init__.py | 1 + src/sage/rings/finite_rings/__init__.py | 1 + src/sage/rings/function_field/__init__.py | 1 + src/sage/rings/function_field/drinfeld_modules/__init__.py | 1 + src/sage/rings/invariants/__init__.py | 1 + src/sage/rings/number_field/__init__.py | 1 + src/sage/rings/padics/__init__.py | 1 + src/sage/rings/polynomial/padics/__init__.py | 1 + src/sage/rings/polynomial/weil/__init__.py | 1 + src/sage/rings/semirings/__init__.py | 1 + src/sage/rings/valuation/__init__.py | 1 + src/sage/sandpiles/__init__.py | 1 + src/sage/sat/__init__.py | 1 + src/sage/schemes/__init__.py | 1 + src/sage/schemes/affine/__init__.py | 1 + src/sage/schemes/berkovich/__init__.py | 1 + src/sage/schemes/curves/__init__.py | 1 + src/sage/schemes/cyclic_covers/__init__.py | 1 + src/sage/schemes/elliptic_curves/__init__.py | 1 + src/sage/schemes/generic/__init__.py | 1 + src/sage/schemes/generic/notes/__init__.py | 1 + src/sage/schemes/hyperelliptic_curves/__init__.py | 1 + src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py | 1 + src/sage/schemes/jacobians/__init__.py | 1 + src/sage/schemes/plane_conics/__init__.py | 1 + src/sage/schemes/plane_quartics/__init__.py | 1 + src/sage/schemes/product_projective/__init__.py | 1 + src/sage/schemes/projective/__init__.py | 1 + src/sage/schemes/riemann_surfaces/__init__.py | 1 + src/sage/schemes/toric/__init__.py | 1 + src/sage/schemes/toric/sheaf/__init__.py | 1 + src/sage/sets/__init__.py | 1 + src/sage/stats/__init__.py | 1 + src/sage/stats/distributions/__init__.py | 1 + src/sage/stats/hmm/__init__.py | 1 + src/sage/symbolic/ginac/__init__.py | 1 + src/sage/symbolic/integration/__init__.py | 1 + src/sage/tensor/__init__.py | 1 + src/sage/tensor/modules/__init__.py | 1 + src/sage/tests/books/__init__.py | 1 + src/sage/topology/__init__.py | 1 + src/sage/typeset/__init__.py | 1 + 172 files changed, 172 insertions(+) create mode 100644 src/sage/algebras/__init__.py create mode 100644 src/sage/algebras/finite_dimensional_algebras/__init__.py create mode 100644 src/sage/algebras/fusion_rings/__init__.py create mode 100644 src/sage/algebras/hecke_algebras/__init__.py create mode 100644 src/sage/algebras/letterplace/__init__.py create mode 100644 src/sage/algebras/lie_algebras/__init__.py create mode 100644 src/sage/algebras/lie_conformal_algebras/__init__.py create mode 100644 src/sage/algebras/quantum_groups/__init__.py create mode 100644 src/sage/algebras/quatalg/__init__.py create mode 100644 src/sage/algebras/steenrod/__init__.py create mode 100644 src/sage/arith/__init__.py create mode 100644 src/sage/calculus/__init__.py create mode 100644 src/sage/calculus/transforms/__init__.py create mode 100644 src/sage/categories/examples/__init__.py create mode 100644 src/sage/coding/__init__.py create mode 100644 src/sage/coding/codecan/__init__.py create mode 100644 src/sage/coding/guruswami_sudan/__init__.py create mode 100644 src/sage/coding/source_coding/__init__.py create mode 100644 src/sage/combinat/__init__.py create mode 100644 src/sage/combinat/chas/__init__.py create mode 100644 src/sage/combinat/cluster_algebra_quiver/__init__.py create mode 100644 src/sage/combinat/crystals/__init__.py create mode 100644 src/sage/combinat/designs/__init__.py create mode 100644 src/sage/combinat/matrices/__init__.py create mode 100644 src/sage/combinat/ncsf_qsym/__init__.py create mode 100644 src/sage/combinat/ncsym/__init__.py create mode 100644 src/sage/combinat/path_tableaux/__init__.py create mode 100644 src/sage/combinat/posets/__init__.py create mode 100644 src/sage/combinat/rigged_configurations/__init__.py create mode 100644 src/sage/combinat/root_system/__init__.py create mode 100644 src/sage/combinat/sf/__init__.py create mode 100644 src/sage/combinat/species/__init__.py create mode 100644 src/sage/combinat/words/__init__.py create mode 100644 src/sage/combinat/words/notes/__init__.py create mode 100644 src/sage/crypto/block_cipher/__init__.py create mode 100644 src/sage/crypto/public_key/__init__.py create mode 100644 src/sage/databases/__init__.py create mode 100644 src/sage/doctest/tests/__init__.py create mode 100644 src/sage/dynamics/__init__.py create mode 100644 src/sage/dynamics/arithmetic_dynamics/__init__.py create mode 100644 src/sage/dynamics/cellular_automata/__init__.py create mode 100644 src/sage/dynamics/complex_dynamics/__init__.py create mode 100644 src/sage/ext/__init__.py create mode 100644 src/sage/ext/mac-app/__init__.py create mode 100644 src/sage/ext_data/__init__.py create mode 100644 src/sage/ext_data/doctest/__init__.py create mode 100644 src/sage/ext_data/doctest/invalid/__init__.py create mode 100644 src/sage/ext_data/gap/__init__.py create mode 100644 src/sage/ext_data/gap/joyner/__init__.py create mode 100644 src/sage/ext_data/graphs/__init__.py create mode 100644 src/sage/ext_data/kenzo/__init__.py create mode 100644 src/sage/ext_data/magma/__init__.py create mode 100644 src/sage/ext_data/magma/latex/__init__.py create mode 100644 src/sage/ext_data/magma/sage/__init__.py create mode 100644 src/sage/ext_data/mwrank/__init__.py create mode 100644 src/sage/ext_data/nbconvert/__init__.py create mode 100644 src/sage/ext_data/notebook-ipython/__init__.py create mode 100644 src/sage/ext_data/pari/__init__.py create mode 100644 src/sage/ext_data/pari/buzzard/__init__.py create mode 100644 src/sage/ext_data/pari/dokchitser/__init__.py create mode 100644 src/sage/ext_data/pari/simon/__init__.py create mode 100644 src/sage/ext_data/singular/__init__.py create mode 100644 src/sage/ext_data/singular/function_field/__init__.py create mode 100644 src/sage/ext_data/threejs/__init__.py create mode 100644 src/sage/ext_data/valgrind/__init__.py create mode 100644 src/sage/functions/__init__.py create mode 100644 src/sage/game_theory/__init__.py create mode 100644 src/sage/games/__init__.py create mode 100644 src/sage/geometry/hyperbolic_space/__init__.py create mode 100644 src/sage/geometry/hyperplane_arrangement/__init__.py create mode 100644 src/sage/geometry/polyhedron/modules/__init__.py create mode 100644 src/sage/geometry/riemannian_manifolds/__init__.py create mode 100644 src/sage/geometry/triangulation/__init__.py create mode 100644 src/sage/graphs/bliss_cpp/__init__.py create mode 100644 src/sage/graphs/cliquer/__init__.py create mode 100644 src/sage/graphs/generators/__init__.py create mode 100644 src/sage/groups/abelian_gps/__init__.py create mode 100644 src/sage/groups/additive_abelian/__init__.py create mode 100644 src/sage/groups/affine_gps/__init__.py create mode 100644 src/sage/groups/lie_gps/__init__.py create mode 100644 src/sage/groups/matrix_gps/__init__.py create mode 100644 src/sage/groups/misc_gps/__init__.py create mode 100644 src/sage/groups/perm_gps/partn_ref2/__init__.py create mode 100644 src/sage/groups/semimonomial_transformations/__init__.py create mode 100644 src/sage/homology/__init__.py create mode 100644 src/sage/interacts/__init__.py create mode 100644 src/sage/interfaces/__init__.py create mode 100644 src/sage/knots/__init__.py create mode 100644 src/sage/lfunctions/__init__.py create mode 100644 src/sage/libs/mpc/__init__.py create mode 100644 src/sage/libs/mpfi/__init__.py create mode 100644 src/sage/libs/mpfr/__init__.py create mode 100644 src/sage/libs/polybori/__init__.py create mode 100644 src/sage/logic/__init__.py create mode 100644 src/sage/manifolds/__init__.py create mode 100644 src/sage/manifolds/differentiable/__init__.py create mode 100644 src/sage/manifolds/differentiable/examples/__init__.py create mode 100644 src/sage/manifolds/subsets/__init__.py create mode 100644 src/sage/matroids/__init__.py create mode 100644 src/sage/misc/notes/__init__.py create mode 100644 src/sage/modular/__init__.py create mode 100644 src/sage/modular/abvar/__init__.py create mode 100644 src/sage/modular/arithgroup/__init__.py create mode 100644 src/sage/modular/btquotients/__init__.py create mode 100644 src/sage/modular/hecke/__init__.py create mode 100644 src/sage/modular/local_comp/__init__.py create mode 100644 src/sage/modular/modform/__init__.py create mode 100644 src/sage/modular/modform_hecketriangle/__init__.py create mode 100644 src/sage/modular/modsym/__init__.py create mode 100644 src/sage/modular/overconvergent/__init__.py create mode 100644 src/sage/modular/pollack_stevens/__init__.py create mode 100644 src/sage/modular/quasimodform/__init__.py create mode 100644 src/sage/modular/quatalg/__init__.py create mode 100644 src/sage/modular/ssmod/__init__.py create mode 100644 src/sage/modules/fg_pid/__init__.py create mode 100644 src/sage/modules/fp_graded/__init__.py create mode 100644 src/sage/modules/fp_graded/steenrod/__init__.py create mode 100644 src/sage/modules/with_basis/__init__.py create mode 100644 src/sage/monoids/__init__.py create mode 100644 src/sage/numerical/__init__.py create mode 100644 src/sage/numerical/backends/__init__.py create mode 100644 src/sage/parallel/__init__.py create mode 100644 src/sage/plot/__init__.py create mode 100644 src/sage/plot/plot3d/__init__.py create mode 100644 src/sage/probability/__init__.py create mode 100644 src/sage/quadratic_forms/__init__.py create mode 100644 src/sage/quadratic_forms/genera/__init__.py create mode 100644 src/sage/quivers/__init__.py create mode 100644 src/sage/rings/asymptotic/__init__.py create mode 100644 src/sage/rings/bernmm/__init__.py create mode 100644 src/sage/rings/convert/__init__.py create mode 100644 src/sage/rings/finite_rings/__init__.py create mode 100644 src/sage/rings/function_field/__init__.py create mode 100644 src/sage/rings/function_field/drinfeld_modules/__init__.py create mode 100644 src/sage/rings/invariants/__init__.py create mode 100644 src/sage/rings/number_field/__init__.py create mode 100644 src/sage/rings/padics/__init__.py create mode 100644 src/sage/rings/polynomial/padics/__init__.py create mode 100644 src/sage/rings/polynomial/weil/__init__.py create mode 100644 src/sage/rings/semirings/__init__.py create mode 100644 src/sage/rings/valuation/__init__.py create mode 100644 src/sage/sandpiles/__init__.py create mode 100644 src/sage/sat/__init__.py create mode 100644 src/sage/schemes/__init__.py create mode 100644 src/sage/schemes/affine/__init__.py create mode 100644 src/sage/schemes/berkovich/__init__.py create mode 100644 src/sage/schemes/curves/__init__.py create mode 100644 src/sage/schemes/cyclic_covers/__init__.py create mode 100644 src/sage/schemes/elliptic_curves/__init__.py create mode 100644 src/sage/schemes/generic/__init__.py create mode 100644 src/sage/schemes/generic/notes/__init__.py create mode 100644 src/sage/schemes/hyperelliptic_curves/__init__.py create mode 100644 src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py create mode 100644 src/sage/schemes/jacobians/__init__.py create mode 100644 src/sage/schemes/plane_conics/__init__.py create mode 100644 src/sage/schemes/plane_quartics/__init__.py create mode 100644 src/sage/schemes/product_projective/__init__.py create mode 100644 src/sage/schemes/projective/__init__.py create mode 100644 src/sage/schemes/riemann_surfaces/__init__.py create mode 100644 src/sage/schemes/toric/__init__.py create mode 100644 src/sage/schemes/toric/sheaf/__init__.py create mode 100644 src/sage/sets/__init__.py create mode 100644 src/sage/stats/__init__.py create mode 100644 src/sage/stats/distributions/__init__.py create mode 100644 src/sage/stats/hmm/__init__.py create mode 100644 src/sage/symbolic/ginac/__init__.py create mode 100644 src/sage/symbolic/integration/__init__.py create mode 100644 src/sage/tensor/__init__.py create mode 100644 src/sage/tensor/modules/__init__.py create mode 100644 src/sage/tests/books/__init__.py create mode 100644 src/sage/topology/__init__.py create mode 100644 src/sage/typeset/__init__.py diff --git a/src/sage/algebras/__init__.py b/src/sage/algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/finite_dimensional_algebras/__init__.py b/src/sage/algebras/finite_dimensional_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/finite_dimensional_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/fusion_rings/__init__.py b/src/sage/algebras/fusion_rings/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/fusion_rings/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/hecke_algebras/__init__.py b/src/sage/algebras/hecke_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/hecke_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/letterplace/__init__.py b/src/sage/algebras/letterplace/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/letterplace/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/lie_algebras/__init__.py b/src/sage/algebras/lie_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/lie_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/lie_conformal_algebras/__init__.py b/src/sage/algebras/lie_conformal_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/lie_conformal_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/quantum_groups/__init__.py b/src/sage/algebras/quantum_groups/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/quantum_groups/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/quatalg/__init__.py b/src/sage/algebras/quatalg/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/quatalg/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/steenrod/__init__.py b/src/sage/algebras/steenrod/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/steenrod/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/arith/__init__.py b/src/sage/arith/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/arith/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/calculus/__init__.py b/src/sage/calculus/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/calculus/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/calculus/transforms/__init__.py b/src/sage/calculus/transforms/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/calculus/transforms/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/categories/examples/__init__.py b/src/sage/categories/examples/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/categories/examples/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/__init__.py b/src/sage/coding/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/codecan/__init__.py b/src/sage/coding/codecan/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/codecan/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/guruswami_sudan/__init__.py b/src/sage/coding/guruswami_sudan/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/guruswami_sudan/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/source_coding/__init__.py b/src/sage/coding/source_coding/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/source_coding/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/__init__.py b/src/sage/combinat/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/chas/__init__.py b/src/sage/combinat/chas/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/chas/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/cluster_algebra_quiver/__init__.py b/src/sage/combinat/cluster_algebra_quiver/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/cluster_algebra_quiver/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/crystals/__init__.py b/src/sage/combinat/crystals/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/crystals/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/designs/__init__.py b/src/sage/combinat/designs/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/designs/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/matrices/__init__.py b/src/sage/combinat/matrices/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/matrices/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/ncsf_qsym/__init__.py b/src/sage/combinat/ncsf_qsym/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/ncsf_qsym/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/ncsym/__init__.py b/src/sage/combinat/ncsym/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/ncsym/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/path_tableaux/__init__.py b/src/sage/combinat/path_tableaux/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/path_tableaux/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/posets/__init__.py b/src/sage/combinat/posets/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/posets/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/rigged_configurations/__init__.py b/src/sage/combinat/rigged_configurations/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/rigged_configurations/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/root_system/__init__.py b/src/sage/combinat/root_system/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/root_system/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/sf/__init__.py b/src/sage/combinat/sf/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/sf/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/species/__init__.py b/src/sage/combinat/species/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/species/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/words/__init__.py b/src/sage/combinat/words/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/words/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/words/notes/__init__.py b/src/sage/combinat/words/notes/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/words/notes/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/crypto/block_cipher/__init__.py b/src/sage/crypto/block_cipher/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/crypto/block_cipher/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/crypto/public_key/__init__.py b/src/sage/crypto/public_key/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/crypto/public_key/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/databases/__init__.py b/src/sage/databases/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/databases/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/doctest/tests/__init__.py b/src/sage/doctest/tests/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/doctest/tests/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/__init__.py b/src/sage/dynamics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/arithmetic_dynamics/__init__.py b/src/sage/dynamics/arithmetic_dynamics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/arithmetic_dynamics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/cellular_automata/__init__.py b/src/sage/dynamics/cellular_automata/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/cellular_automata/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/complex_dynamics/__init__.py b/src/sage/dynamics/complex_dynamics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/complex_dynamics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext/__init__.py b/src/sage/ext/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext/mac-app/__init__.py b/src/sage/ext/mac-app/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext/mac-app/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/__init__.py b/src/sage/ext_data/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/doctest/__init__.py b/src/sage/ext_data/doctest/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/doctest/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/doctest/invalid/__init__.py b/src/sage/ext_data/doctest/invalid/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/doctest/invalid/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/gap/__init__.py b/src/sage/ext_data/gap/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/gap/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/gap/joyner/__init__.py b/src/sage/ext_data/gap/joyner/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/gap/joyner/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/graphs/__init__.py b/src/sage/ext_data/graphs/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/graphs/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/kenzo/__init__.py b/src/sage/ext_data/kenzo/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/kenzo/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/magma/__init__.py b/src/sage/ext_data/magma/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/magma/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/magma/latex/__init__.py b/src/sage/ext_data/magma/latex/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/magma/latex/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/magma/sage/__init__.py b/src/sage/ext_data/magma/sage/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/magma/sage/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/mwrank/__init__.py b/src/sage/ext_data/mwrank/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/mwrank/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/nbconvert/__init__.py b/src/sage/ext_data/nbconvert/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/nbconvert/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/notebook-ipython/__init__.py b/src/sage/ext_data/notebook-ipython/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/notebook-ipython/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/__init__.py b/src/sage/ext_data/pari/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/pari/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/buzzard/__init__.py b/src/sage/ext_data/pari/buzzard/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/pari/buzzard/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/dokchitser/__init__.py b/src/sage/ext_data/pari/dokchitser/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/pari/dokchitser/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/simon/__init__.py b/src/sage/ext_data/pari/simon/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/pari/simon/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/singular/__init__.py b/src/sage/ext_data/singular/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/singular/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/singular/function_field/__init__.py b/src/sage/ext_data/singular/function_field/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/singular/function_field/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/threejs/__init__.py b/src/sage/ext_data/threejs/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/threejs/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/valgrind/__init__.py b/src/sage/ext_data/valgrind/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext_data/valgrind/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/functions/__init__.py b/src/sage/functions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/functions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/game_theory/__init__.py b/src/sage/game_theory/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/game_theory/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/games/__init__.py b/src/sage/games/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/games/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/hyperbolic_space/__init__.py b/src/sage/geometry/hyperbolic_space/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/hyperbolic_space/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/hyperplane_arrangement/__init__.py b/src/sage/geometry/hyperplane_arrangement/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/hyperplane_arrangement/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/polyhedron/modules/__init__.py b/src/sage/geometry/polyhedron/modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/polyhedron/modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/riemannian_manifolds/__init__.py b/src/sage/geometry/riemannian_manifolds/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/riemannian_manifolds/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/triangulation/__init__.py b/src/sage/geometry/triangulation/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/triangulation/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/bliss_cpp/__init__.py b/src/sage/graphs/bliss_cpp/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/bliss_cpp/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/cliquer/__init__.py b/src/sage/graphs/cliquer/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/cliquer/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/generators/__init__.py b/src/sage/graphs/generators/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/generators/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/abelian_gps/__init__.py b/src/sage/groups/abelian_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/abelian_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/additive_abelian/__init__.py b/src/sage/groups/additive_abelian/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/additive_abelian/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/affine_gps/__init__.py b/src/sage/groups/affine_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/affine_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/lie_gps/__init__.py b/src/sage/groups/lie_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/lie_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/matrix_gps/__init__.py b/src/sage/groups/matrix_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/matrix_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/misc_gps/__init__.py b/src/sage/groups/misc_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/misc_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/perm_gps/partn_ref2/__init__.py b/src/sage/groups/perm_gps/partn_ref2/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref2/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/semimonomial_transformations/__init__.py b/src/sage/groups/semimonomial_transformations/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/semimonomial_transformations/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/homology/__init__.py b/src/sage/homology/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/homology/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/interacts/__init__.py b/src/sage/interacts/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/interacts/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/interfaces/__init__.py b/src/sage/interfaces/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/interfaces/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/knots/__init__.py b/src/sage/knots/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/knots/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/lfunctions/__init__.py b/src/sage/lfunctions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/lfunctions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/mpc/__init__.py b/src/sage/libs/mpc/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/mpc/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/mpfi/__init__.py b/src/sage/libs/mpfi/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/mpfi/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/mpfr/__init__.py b/src/sage/libs/mpfr/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/mpfr/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/polybori/__init__.py b/src/sage/libs/polybori/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/polybori/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/logic/__init__.py b/src/sage/logic/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/logic/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/__init__.py b/src/sage/manifolds/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/differentiable/__init__.py b/src/sage/manifolds/differentiable/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/differentiable/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/differentiable/examples/__init__.py b/src/sage/manifolds/differentiable/examples/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/differentiable/examples/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/subsets/__init__.py b/src/sage/manifolds/subsets/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/subsets/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/matroids/__init__.py b/src/sage/matroids/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/matroids/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/misc/notes/__init__.py b/src/sage/misc/notes/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/misc/notes/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/__init__.py b/src/sage/modular/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/abvar/__init__.py b/src/sage/modular/abvar/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/abvar/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/arithgroup/__init__.py b/src/sage/modular/arithgroup/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/arithgroup/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/btquotients/__init__.py b/src/sage/modular/btquotients/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/btquotients/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/hecke/__init__.py b/src/sage/modular/hecke/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/hecke/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/local_comp/__init__.py b/src/sage/modular/local_comp/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/local_comp/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/modform/__init__.py b/src/sage/modular/modform/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/modform/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/modform_hecketriangle/__init__.py b/src/sage/modular/modform_hecketriangle/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/modform_hecketriangle/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/modsym/__init__.py b/src/sage/modular/modsym/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/modsym/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/overconvergent/__init__.py b/src/sage/modular/overconvergent/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/overconvergent/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/pollack_stevens/__init__.py b/src/sage/modular/pollack_stevens/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/pollack_stevens/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/quasimodform/__init__.py b/src/sage/modular/quasimodform/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/quasimodform/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/quatalg/__init__.py b/src/sage/modular/quatalg/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/quatalg/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/ssmod/__init__.py b/src/sage/modular/ssmod/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/ssmod/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/fg_pid/__init__.py b/src/sage/modules/fg_pid/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/fg_pid/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/fp_graded/__init__.py b/src/sage/modules/fp_graded/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/fp_graded/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/fp_graded/steenrod/__init__.py b/src/sage/modules/fp_graded/steenrod/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/fp_graded/steenrod/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/with_basis/__init__.py b/src/sage/modules/with_basis/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/with_basis/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/monoids/__init__.py b/src/sage/monoids/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/monoids/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/numerical/__init__.py b/src/sage/numerical/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/numerical/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/numerical/backends/__init__.py b/src/sage/numerical/backends/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/numerical/backends/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/parallel/__init__.py b/src/sage/parallel/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/parallel/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/plot/__init__.py b/src/sage/plot/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/plot/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/plot/plot3d/__init__.py b/src/sage/plot/plot3d/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/plot/plot3d/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/probability/__init__.py b/src/sage/probability/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/probability/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/quadratic_forms/__init__.py b/src/sage/quadratic_forms/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/quadratic_forms/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/quadratic_forms/genera/__init__.py b/src/sage/quadratic_forms/genera/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/quadratic_forms/genera/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/quivers/__init__.py b/src/sage/quivers/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/quivers/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/asymptotic/__init__.py b/src/sage/rings/asymptotic/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/asymptotic/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/bernmm/__init__.py b/src/sage/rings/bernmm/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/bernmm/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/convert/__init__.py b/src/sage/rings/convert/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/convert/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/finite_rings/__init__.py b/src/sage/rings/finite_rings/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/finite_rings/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/function_field/__init__.py b/src/sage/rings/function_field/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/function_field/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/function_field/drinfeld_modules/__init__.py b/src/sage/rings/function_field/drinfeld_modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/function_field/drinfeld_modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/invariants/__init__.py b/src/sage/rings/invariants/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/invariants/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/number_field/__init__.py b/src/sage/rings/number_field/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/number_field/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/padics/__init__.py b/src/sage/rings/padics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/padics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/polynomial/padics/__init__.py b/src/sage/rings/polynomial/padics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/polynomial/padics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/polynomial/weil/__init__.py b/src/sage/rings/polynomial/weil/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/polynomial/weil/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/semirings/__init__.py b/src/sage/rings/semirings/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/semirings/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/valuation/__init__.py b/src/sage/rings/valuation/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/valuation/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/sandpiles/__init__.py b/src/sage/sandpiles/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/sandpiles/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/sat/__init__.py b/src/sage/sat/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/sat/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/__init__.py b/src/sage/schemes/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/affine/__init__.py b/src/sage/schemes/affine/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/affine/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/berkovich/__init__.py b/src/sage/schemes/berkovich/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/berkovich/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/curves/__init__.py b/src/sage/schemes/curves/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/curves/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/cyclic_covers/__init__.py b/src/sage/schemes/cyclic_covers/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/cyclic_covers/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/elliptic_curves/__init__.py b/src/sage/schemes/elliptic_curves/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/elliptic_curves/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/generic/__init__.py b/src/sage/schemes/generic/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/generic/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/generic/notes/__init__.py b/src/sage/schemes/generic/notes/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/generic/notes/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/hyperelliptic_curves/__init__.py b/src/sage/schemes/hyperelliptic_curves/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/hyperelliptic_curves/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py b/src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/jacobians/__init__.py b/src/sage/schemes/jacobians/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/jacobians/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/plane_conics/__init__.py b/src/sage/schemes/plane_conics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/plane_conics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/plane_quartics/__init__.py b/src/sage/schemes/plane_quartics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/plane_quartics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/product_projective/__init__.py b/src/sage/schemes/product_projective/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/product_projective/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/projective/__init__.py b/src/sage/schemes/projective/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/projective/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/riemann_surfaces/__init__.py b/src/sage/schemes/riemann_surfaces/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/riemann_surfaces/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/toric/__init__.py b/src/sage/schemes/toric/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/toric/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/toric/sheaf/__init__.py b/src/sage/schemes/toric/sheaf/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/toric/sheaf/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/sets/__init__.py b/src/sage/sets/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/sets/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/stats/__init__.py b/src/sage/stats/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/stats/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/stats/distributions/__init__.py b/src/sage/stats/distributions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/stats/distributions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/stats/hmm/__init__.py b/src/sage/stats/hmm/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/stats/hmm/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/symbolic/ginac/__init__.py b/src/sage/symbolic/ginac/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/symbolic/ginac/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/symbolic/integration/__init__.py b/src/sage/symbolic/integration/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/symbolic/integration/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/tensor/__init__.py b/src/sage/tensor/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/tensor/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/tensor/modules/__init__.py b/src/sage/tensor/modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/tensor/modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/tests/books/__init__.py b/src/sage/tests/books/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/tests/books/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/topology/__init__.py b/src/sage/topology/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/topology/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/typeset/__init__.py b/src/sage/typeset/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/typeset/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name From efe272cd22652fda1759b1863fa9166f84eb8921 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 10:23:28 +0000 Subject: [PATCH 067/161] create dependency on generated interpreters --- src/sage/ext/meson.build | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index b278e6fbb81..74c1c5f9332 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -37,26 +37,26 @@ interpreters = custom_target( wrapper_el_header = custom_target( 'wrapper_el.h', output : 'wrapper_el.h', - input : 'interpreters/wrapper_el.pyx', - command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + input : ['interpreters/wrapper_el.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], ) wrapper_cc_header = custom_target( 'wrapper_cc.h', output : 'wrapper_cc.h', - input : 'interpreters/wrapper_cc.pyx', - command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + input : ['interpreters/wrapper_cc.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], ) wrapper_cdf_header = custom_target( 'wrapper_cdf.h', output : 'wrapper_cdf.h', - input : 'interpreters/wrapper_cdf.pyx', - command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + input : ['interpreters/wrapper_cdf.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], ) wrapper_rr_header = custom_target( 'wrapper_rr.h', output : 'wrapper_rr.h', - input : 'interpreters/wrapper_rr.pyx', - command : [cython.cmd_array(), '@INPUT@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + input : ['interpreters/wrapper_rr.pyx', interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], ) interpreters_dep = declare_dependency( From 17888c93857a3f10f23edded743eb24f4221faa8 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 10:27:58 +0000 Subject: [PATCH 068/161] Readd interpreter generation in ci --- .github/workflows/ci-meson.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index d5fa873d0c9..854762b48a1 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -59,6 +59,12 @@ jobs: conda info conda list + - name: Bootstrap + shell: bash -l {0} + run: python -m sage_setup.autogen.interpreters src/sage/ext/interpreters + env: + PYTHONPATH: src + - name: Build shell: bash -l {0} run: | From 946ef70aa7b20752bc3238608c09ed3a312e01d7 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 10:51:48 +0000 Subject: [PATCH 069/161] And remove some of the init files again --- src/sage/combinat/words/notes/__init__.py | 1 - src/sage/doctest/tests/__init__.py | 1 - src/sage/ext/mac-app/__init__.py | 1 - src/sage/ext_data/__init__.py | 1 - src/sage/ext_data/doctest/__init__.py | 1 - src/sage/ext_data/doctest/invalid/__init__.py | 1 - src/sage/ext_data/gap/__init__.py | 1 - src/sage/ext_data/gap/joyner/__init__.py | 1 - src/sage/ext_data/graphs/__init__.py | 1 - src/sage/ext_data/kenzo/__init__.py | 1 - src/sage/ext_data/magma/__init__.py | 1 - src/sage/ext_data/magma/latex/__init__.py | 1 - src/sage/ext_data/magma/sage/__init__.py | 1 - src/sage/ext_data/mwrank/__init__.py | 1 - src/sage/ext_data/nbconvert/__init__.py | 1 - src/sage/ext_data/notebook-ipython/__init__.py | 1 - src/sage/ext_data/pari/__init__.py | 1 - src/sage/ext_data/pari/buzzard/__init__.py | 1 - src/sage/ext_data/pari/dokchitser/__init__.py | 1 - src/sage/ext_data/pari/simon/__init__.py | 1 - src/sage/ext_data/singular/__init__.py | 1 - src/sage/ext_data/singular/function_field/__init__.py | 1 - src/sage/ext_data/threejs/__init__.py | 1 - src/sage/ext_data/valgrind/__init__.py | 1 - src/sage/graphs/bliss_cpp/__init__.py | 1 - src/sage/graphs/cliquer/__init__.py | 1 - src/sage/misc/notes/__init__.py | 1 - src/sage/rings/bernmm/__init__.py | 1 - src/sage/schemes/generic/notes/__init__.py | 1 - src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py | 1 - src/sage/symbolic/ginac/__init__.py | 1 - 31 files changed, 31 deletions(-) delete mode 100644 src/sage/combinat/words/notes/__init__.py delete mode 100644 src/sage/doctest/tests/__init__.py delete mode 100644 src/sage/ext/mac-app/__init__.py delete mode 100644 src/sage/ext_data/__init__.py delete mode 100644 src/sage/ext_data/doctest/__init__.py delete mode 100644 src/sage/ext_data/doctest/invalid/__init__.py delete mode 100644 src/sage/ext_data/gap/__init__.py delete mode 100644 src/sage/ext_data/gap/joyner/__init__.py delete mode 100644 src/sage/ext_data/graphs/__init__.py delete mode 100644 src/sage/ext_data/kenzo/__init__.py delete mode 100644 src/sage/ext_data/magma/__init__.py delete mode 100644 src/sage/ext_data/magma/latex/__init__.py delete mode 100644 src/sage/ext_data/magma/sage/__init__.py delete mode 100644 src/sage/ext_data/mwrank/__init__.py delete mode 100644 src/sage/ext_data/nbconvert/__init__.py delete mode 100644 src/sage/ext_data/notebook-ipython/__init__.py delete mode 100644 src/sage/ext_data/pari/__init__.py delete mode 100644 src/sage/ext_data/pari/buzzard/__init__.py delete mode 100644 src/sage/ext_data/pari/dokchitser/__init__.py delete mode 100644 src/sage/ext_data/pari/simon/__init__.py delete mode 100644 src/sage/ext_data/singular/__init__.py delete mode 100644 src/sage/ext_data/singular/function_field/__init__.py delete mode 100644 src/sage/ext_data/threejs/__init__.py delete mode 100644 src/sage/ext_data/valgrind/__init__.py delete mode 100644 src/sage/graphs/bliss_cpp/__init__.py delete mode 100644 src/sage/graphs/cliquer/__init__.py delete mode 100644 src/sage/misc/notes/__init__.py delete mode 100644 src/sage/rings/bernmm/__init__.py delete mode 100644 src/sage/schemes/generic/notes/__init__.py delete mode 100644 src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py delete mode 100644 src/sage/symbolic/ginac/__init__.py diff --git a/src/sage/combinat/words/notes/__init__.py b/src/sage/combinat/words/notes/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/combinat/words/notes/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/doctest/tests/__init__.py b/src/sage/doctest/tests/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/doctest/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext/mac-app/__init__.py b/src/sage/ext/mac-app/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext/mac-app/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/__init__.py b/src/sage/ext_data/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/doctest/__init__.py b/src/sage/ext_data/doctest/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/doctest/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/doctest/invalid/__init__.py b/src/sage/ext_data/doctest/invalid/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/doctest/invalid/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/gap/__init__.py b/src/sage/ext_data/gap/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/gap/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/gap/joyner/__init__.py b/src/sage/ext_data/gap/joyner/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/gap/joyner/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/graphs/__init__.py b/src/sage/ext_data/graphs/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/graphs/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/kenzo/__init__.py b/src/sage/ext_data/kenzo/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/kenzo/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/magma/__init__.py b/src/sage/ext_data/magma/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/magma/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/magma/latex/__init__.py b/src/sage/ext_data/magma/latex/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/magma/latex/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/magma/sage/__init__.py b/src/sage/ext_data/magma/sage/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/magma/sage/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/mwrank/__init__.py b/src/sage/ext_data/mwrank/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/mwrank/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/nbconvert/__init__.py b/src/sage/ext_data/nbconvert/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/nbconvert/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/notebook-ipython/__init__.py b/src/sage/ext_data/notebook-ipython/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/notebook-ipython/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/__init__.py b/src/sage/ext_data/pari/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/pari/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/buzzard/__init__.py b/src/sage/ext_data/pari/buzzard/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/pari/buzzard/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/dokchitser/__init__.py b/src/sage/ext_data/pari/dokchitser/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/pari/dokchitser/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/pari/simon/__init__.py b/src/sage/ext_data/pari/simon/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/pari/simon/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/singular/__init__.py b/src/sage/ext_data/singular/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/singular/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/singular/function_field/__init__.py b/src/sage/ext_data/singular/function_field/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/singular/function_field/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/threejs/__init__.py b/src/sage/ext_data/threejs/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/threejs/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext_data/valgrind/__init__.py b/src/sage/ext_data/valgrind/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext_data/valgrind/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/graphs/bliss_cpp/__init__.py b/src/sage/graphs/bliss_cpp/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/graphs/bliss_cpp/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/graphs/cliquer/__init__.py b/src/sage/graphs/cliquer/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/graphs/cliquer/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/misc/notes/__init__.py b/src/sage/misc/notes/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/misc/notes/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/rings/bernmm/__init__.py b/src/sage/rings/bernmm/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/rings/bernmm/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/schemes/generic/notes/__init__.py b/src/sage/schemes/generic/notes/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/schemes/generic/notes/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py b/src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/schemes/hyperelliptic_curves/hypellfrob/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/symbolic/ginac/__init__.py b/src/sage/symbolic/ginac/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/symbolic/ginac/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name From 0189df54d7837dc4c77ae7b8b95b6fd7b31499ca Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 10:55:03 +0000 Subject: [PATCH 070/161] Fix interpreters include directory --- src/sage/ext/meson.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index 74c1c5f9332..e0f87b894c5 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -38,25 +38,25 @@ wrapper_el_header = custom_target( 'wrapper_el.h', output : 'wrapper_el.h', input : ['interpreters/wrapper_el.pyx', interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) wrapper_cc_header = custom_target( 'wrapper_cc.h', output : 'wrapper_cc.h', input : ['interpreters/wrapper_cc.pyx', interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) wrapper_cdf_header = custom_target( 'wrapper_cdf.h', output : 'wrapper_cdf.h', input : ['interpreters/wrapper_cdf.pyx', interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) wrapper_rr_header = custom_target( 'wrapper_rr.h', output : 'wrapper_rr.h', input : ['interpreters/wrapper_rr.pyx', interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) interpreters_dep = declare_dependency( From ef0ba56f22f409e3bccb571c935d1432bfba9acf Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 11:26:36 +0000 Subject: [PATCH 071/161] Fix glpk import error --- src/sage/numerical/backends/meson.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sage/numerical/backends/meson.build b/src/sage/numerical/backends/meson.build index 57ae6e5c18d..cdf6b47be32 100644 --- a/src/sage/numerical/backends/meson.build +++ b/src/sage/numerical/backends/meson.build @@ -1,3 +1,5 @@ +# Cannot be found via pkg-config +glpk = cc.find_library('glpk') py.install_sources( 'all.py', 'all__sagemath_polyhedra.py', @@ -33,7 +35,7 @@ foreach name, pyx : extension_data subdir: 'sage/numerical/backends', install: true, include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cysignals, gmp], + dependencies: [py_dep, cysignals, glpk, gmp], ) endforeach From 56e1d8d439ce359993ab2f9e6842b9dc300aa1b1 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 16 Nov 2023 11:38:10 +0000 Subject: [PATCH 072/161] Fix arb runtime error --- src/sage/libs/arb/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index e3b521de3ba..8fae1826015 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -14,7 +14,7 @@ foreach name, pyx : extension_data subdir: 'sage/libs/arb', install: true, include_directories: [inc_arb, inc_cpython, inc_flint, inc_rings], - dependencies: [py_dep, flint, gmp, mpfr], + dependencies: [py_dep, arb, flint, gmp, mpfr], ) endforeach From 1199bcd66cb9d6aa6c2c44b4734dbcbe94e07bb3 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 18 Nov 2023 08:57:01 +0000 Subject: [PATCH 073/161] Add missing init file --- src/sage/ext/interpreters/__init__.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/sage/ext/interpreters/__init__.py diff --git a/src/sage/ext/interpreters/__init__.py b/src/sage/ext/interpreters/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext/interpreters/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name From 5759c282f153267eaf520e9cd7957bc7765698c2 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 18 Nov 2023 09:05:39 +0000 Subject: [PATCH 074/161] Fix runtime errors due to missing glpk --- src/meson.build | 7 ++----- src/sage/libs/glpk/meson.build | 2 +- src/sage/numerical/backends/meson.build | 2 -- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/meson.build b/src/meson.build index 21f450db56f..bcb33fcae80 100644 --- a/src/meson.build +++ b/src/meson.build @@ -138,11 +138,8 @@ ecm = declare_dependency( cc.find_library('ecm'), ] ) -glpk = declare_dependency( - dependencies: [ - cc.find_library('glpk'), - ] -) +# Cannot be found via pkg-config +glpk = cc.find_library('glpk') ppl = declare_dependency( dependencies: [ cc.find_library('ppl'), diff --git a/src/sage/libs/glpk/meson.build b/src/sage/libs/glpk/meson.build index 05f81795705..adbeec10c85 100644 --- a/src/sage/libs/glpk/meson.build +++ b/src/sage/libs/glpk/meson.build @@ -13,7 +13,7 @@ foreach name, pyx : extension_data subdir: 'sage/libs/glpk', install: true, include_directories: [inc_cpython], - dependencies: [py_dep, cysignals, gmp], + dependencies: [py_dep, cysignals, glpk, gmp], ) endforeach diff --git a/src/sage/numerical/backends/meson.build b/src/sage/numerical/backends/meson.build index cdf6b47be32..2b33de4a94e 100644 --- a/src/sage/numerical/backends/meson.build +++ b/src/sage/numerical/backends/meson.build @@ -1,5 +1,3 @@ -# Cannot be found via pkg-config -glpk = cc.find_library('glpk') py.install_sources( 'all.py', 'all__sagemath_polyhedra.py', From b4988ff4bc633af0b0d033fd70d2756a19e1bd7a Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 18 Nov 2023 09:06:37 +0000 Subject: [PATCH 075/161] Don't remove init file in interpreters --- src/sage_setup/autogen/interpreters/__init__.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/sage_setup/autogen/interpreters/__init__.py b/src/sage_setup/autogen/interpreters/__init__.py index 75096d06b80..87dae60bce7 100644 --- a/src/sage_setup/autogen/interpreters/__init__.py +++ b/src/sage_setup/autogen/interpreters/__init__.py @@ -226,11 +226,6 @@ def rebuild(dirname, force=False, interpreters=None, distribution=None): except OSError: if not os.path.isdir(dirname): raise - # Remove leftover file from before move to namespace packages - try: - os.remove(os.path.join(dirname, '__init__.py')) - except FileNotFoundError: - pass # Although multiple files are generated by this function, since # they are all generated at once it suffices to make sure if just From bd9fd26890de642579c4a42acdcaa06658bd83b3 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 19 Nov 2023 11:37:01 +0000 Subject: [PATCH 076/161] Fix missing pari dependency --- src/sage/schemes/elliptic_curves/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/schemes/elliptic_curves/meson.build b/src/sage/schemes/elliptic_curves/meson.build index dfed2dd7368..6dcd2411cd4 100644 --- a/src/sage/schemes/elliptic_curves/meson.build +++ b/src/sage/schemes/elliptic_curves/meson.build @@ -61,7 +61,7 @@ foreach name, pyx : extension_data subdir: 'sage/schemes/elliptic_curves', install: true, include_directories: [inc_cpython, inc_flint, inc_numpy, inc_rings], - dependencies: [py_dep, cypari2, cysignals, flint, gmp, mpfr], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, mpfr, pari], ) endforeach From 592e2f45fb96e3327d72e3a638dfd8a7bda19ded Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 19 Nov 2023 12:06:42 +0000 Subject: [PATCH 077/161] cleanup ci --- .github/workflows/ci-meson.yml | 27 +++++++++++++++------------ bootstrap-conda | 3 ++- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 854762b48a1..ff24205cb21 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -20,18 +20,19 @@ jobs: runs-on: ${{ matrix.os }} strategy: - fail-fast: ${{ github.event_name == 'pull_request' }} - max-parallel: ${{ github.event_name == 'pull_request' && 2 || 6 }} matrix: os: [ubuntu-latest, macos-latest] python: ['3.9', '3.10', '3.11'] - # Optional environment is disabled for now as its not yet working - # environment: [environment, environment-optional] - conda-env: [environment] steps: - uses: actions/checkout@v4 + - name: Merge CI fixes from sagemath/sage + run: | + .ci/merge-fixes.sh + env: + GH_TOKEN: ${{ github.token }} + - name: Create conda environment files run: ./bootstrap-conda @@ -42,6 +43,13 @@ jobs: key: ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11.yml') }} + - name: Compiler cache + uses: actions/cache@v3 + with: + path: ${{ github.workspace }}/.ccache + key: ${{ runner.os }}-meson-${{ matrix.python }}-${{ github.run_id }} + restore-keys: ${{ runner.os }}-meson-${{ matrix.python }}- + - name: Setup Conda environment uses: conda-incubator/setup-miniconda@v2 with: @@ -51,7 +59,7 @@ jobs: channels: conda-forge channel-priority: true activate-environment: sage - environment-file: src/${{ matrix.conda-env }}-${{ matrix.python }}.yml + environment-file: src/environment-${{ matrix.python }}.yml - name: Print Conda environment shell: bash -l {0} @@ -68,12 +76,7 @@ jobs: - name: Build shell: bash -l {0} run: | - pip install --no-build-isolation --config-settings=builddir=builddir --editable . - - - name: Test import - shell: bash -l {0} - continue-on-error: true - run: ./sage -python -m pytest -c src/tox.ini --doctest-modules src + pip install --no-build-isolation --config-settings=builddir=builddir . - name: Test shell: bash -l {0} diff --git a/bootstrap-conda b/bootstrap-conda index 9573a8917ed..bf1126c43d9 100755 --- a/bootstrap-conda +++ b/bootstrap-conda @@ -100,7 +100,8 @@ echo >&2 $0:$LINENO: generate conda environment files sed 's/name: sage-build/name: sage/' environment-template.yml echo " - meson" echo " - meson-python" - echo " - pytest" + echo " - ccache" + echo " - pytest" echo " # Additional packages providing all dependencies for the Sage library" for pkg in $SAGELIB_SYSTEM_PACKAGES; do echo " - $pkg" From 4f5b91b5c55cb543be84b42ca779ec0559116b97 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 19 Nov 2023 13:24:03 +0000 Subject: [PATCH 078/161] install ext_data --- src/sage/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/meson.build b/src/sage/meson.build index 1e89aef0d8a..0f2ec543604 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -4,6 +4,7 @@ sage_install_dir = py.get_install_dir() / 'sage' no_processing = [ 'databases', 'doctest', + 'ext_data', 'features', 'game_theory', 'homology', From 7a5c83ef054d504e783fa96bde41acde64c5c719 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 19 Nov 2023 13:25:02 +0000 Subject: [PATCH 079/161] Don't fail fast in ci --- .github/workflows/ci-meson.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index ff24205cb21..f3af009c22b 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -20,6 +20,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [ubuntu-latest, macos-latest] python: ['3.9', '3.10', '3.11'] From c00b92f0c29d7927ce22154debd4231602dc9236 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 19 Nov 2023 14:29:42 +0000 Subject: [PATCH 080/161] set env variables correctly --- meson.build | 39 --------------------------------------- src/meson.build | 5 +++++ src/sage/env.py | 7 ++++++- src/sage/meson.build | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 40 deletions(-) diff --git a/meson.build b/meson.build index 3a4723d21ac..aa8c8552f15 100644 --- a/meson.build +++ b/meson.build @@ -17,45 +17,6 @@ cc = meson.get_compiler('c') cpp = meson.get_compiler('cpp') cython = meson.get_compiler('cython') -# Generate the configuration file -conf_data = configuration_data() - -conf_data.set('PACKAGE_VERSION', '1.2.3') - -maxima = find_program('maxima', required: true) -conf_data.set('SAGE_MAXIMA', maxima.full_path()) -# Conda's ecl does not have any problems with Maxima, so nothing needs to be set here: -conf_data.set('SAGE_MAXIMA_FAS', '') - -# Kenzo cannot yet be provided by the system, so we always use the SAGE_LOCAL path for now. -conf_data.set('SAGE_KENZO_FAS', '\'${prefix}\'/lib/ecl/kenzo.fas') - -conf_data.set('SAGE_ARB_LIBRARY', 'arb') - -# Cannot be found via pkg-config -ntl = cc.find_library('ntl', required: true) -# It can be found, so we don't have to set anything here: -conf_data.set('NTL_INCDIR', '') -conf_data.set('NTL_LIBDIR', '') - -ecl_config = find_program('ecl-config', required: true) -conf_data.set('SAGE_ECL_CONFIG', ecl_config.full_path()) - -conf_data.set('SAGE_ARCHFLAGS', 'unset') - -# not needed when using conda, as we then don't build any pc files -conf_data.set('SAGE_PKG_CONFIG_PATH', '') - -openmp = dependency('openmp', required : false) -if openmp.found() - conf_data.set('OPENMP_CFLAGS', '-fopenmp') - conf_data.set('OPENMP_CXXFLAGS', '-fopenmp') -endif - -configure_file(input : 'pkgs/sage-conf_conda/_sage_conf/_conf.py.in', - output : '_conf.py', - configuration : conf_data) - test( 'import', py, diff --git a/src/meson.build b/src/meson.build index bcb33fcae80..8f5129dd25b 100644 --- a/src/meson.build +++ b/src/meson.build @@ -216,6 +216,11 @@ gap = cc.find_library('gap') singular = dependency('Singular') +maxima = find_program('maxima', required: true) + +# Cannot be found via pkg-config +ntl = cc.find_library('ntl', required: true) + # It's strange but cython cannot find its own include files # so we find them ourselves, and add them to the include path inc_cython = run_command(py, diff --git a/src/sage/env.py b/src/sage/env.py index 4515e90e912..42ab2fc1a8b 100644 --- a/src/sage/env.py +++ b/src/sage/env.py @@ -146,7 +146,12 @@ def var(key: str, *fallbacks: Optional[str], force: bool = False) -> Optional[st import sage_conf value = getattr(sage_conf, key, None) except ImportError: - pass + try: + import sage.config + value = getattr(sage.config, key, None) + except ImportError: + pass + # Try all fallbacks in order as long as we don't have a value for f in fallbacks: if value is not None: diff --git a/src/sage/meson.build b/src/sage/meson.build index 0f2ec543604..f3013186314 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -1,5 +1,37 @@ sage_install_dir = py.get_install_dir() / 'sage' +# Generate the configuration file +conf_data = configuration_data() +conf_data.set('PACKAGE_VERSION', '1.2.3') +conf_data.set('SAGE_ROOT', meson.current_source_dir() / '..' / '..') +conf_data.set('SAGE_MAXIMA', maxima.full_path()) +# Conda's ecl does not have any problems with Maxima, so nothing needs to be set here: +conf_data.set('SAGE_MAXIMA_FAS', '') +# Kenzo cannot yet be provided by the system, so we always use the SAGE_LOCAL path for now. +conf_data.set('SAGE_KENZO_FAS', '\'${prefix}\'/lib/ecl/kenzo.fas') +conf_data.set('SAGE_ARB_LIBRARY', 'arb') +# It can be found, so we don't have to set anything here: +conf_data.set('NTL_INCDIR', '') +conf_data.set('NTL_LIBDIR', '') +ecl_config = find_program('ecl-config', required: true) +conf_data.set('SAGE_ECL_CONFIG', ecl_config.full_path()) +conf_data.set('SAGE_ARCHFLAGS', 'unset') +# not needed when using conda, as we then don't build any pc files +conf_data.set('SAGE_PKG_CONFIG_PATH', '') +openmp = dependency('openmp', required : false) +if openmp.found() + conf_data.set('OPENMP_CFLAGS', '-fopenmp') + conf_data.set('OPENMP_CXXFLAGS', '-fopenmp') +endif + +configure_file( + input: '../../pkgs/sage-conf_conda/_sage_conf/_conf.py.in', + output: 'config.py', + install_dir: py.get_install_dir() / 'sage', + install: true, + configuration: conf_data +) + # Packages that need no processing and can be installed directly no_processing = [ 'databases', From b3910632fdc6bc2079ba34c1252aaa1570a51d6b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 19 Nov 2023 14:49:34 +0000 Subject: [PATCH 081/161] Add a few missing headers --- generate-meson.py | 2 +- src/sage/arith/meson.build | 7 ++++ src/sage/cpython/meson.build | 14 ++++++++ src/sage/ext/interpreters/meson.build | 6 ++++ src/sage/ext/meson.build | 8 +++++ src/sage/graphs/base/meson.build | 8 +++++ .../graphs/graph_decompositions/meson.build | 4 +++ src/sage/graphs/meson.build | 9 +++++ src/sage/libs/singular/meson.build | 6 ++++ src/sage/misc/meson.build | 15 ++++++++ src/sage/rings/convert/meson.build | 1 + src/sage/rings/finite_rings/meson.build | 12 +++++++ src/sage/rings/function_field/meson.build | 1 + src/sage/rings/meson.build | 35 +++++++++++++++++++ src/sage/rings/number_field/meson.build | 5 +++ src/sage/rings/padics/meson.build | 28 +++++++++++++++ src/sage/rings/polynomial/meson.build | 29 +++++++++++++++ src/sage/rings/polynomial/pbori/meson.build | 1 + src/sage/rings/polynomial/weil/meson.build | 1 + src/sage/structure/meson.build | 16 +++++++++ src/sage/symbolic/meson.build | 4 +++ 21 files changed, 211 insertions(+), 1 deletion(-) diff --git a/generate-meson.py b/generate-meson.py index 9a4bed7a73c..1bcb7fc3871 100644 --- a/generate-meson.py +++ b/generate-meson.py @@ -25,7 +25,7 @@ def run(folder: Path): return folder_rel_to_src = folder.relative_to('src') - python_files = sorted(list(folder.glob('*.py'))) + python_files = sorted(list(folder.glob('*.py')) + list(folder.glob('*.pxd')) + list(folder.glob('*.h'))) cython_files = sorted(list(folder.glob('*.pyx'))) diff --git a/src/sage/arith/meson.build b/src/sage/arith/meson.build index 1387e5246f6..8bcab22277f 100644 --- a/src/sage/arith/meson.build +++ b/src/sage/arith/meson.build @@ -1,7 +1,14 @@ py.install_sources( 'all.py', 'all__sagemath_objects.py', + 'constants.pxd', + 'functions.pxd', + 'long.pxd', 'misc.py', + 'multi_modular.pxd', + 'numerical_approx.pxd', + 'power.pxd', + 'rational_reconstruction.pxd', subdir: 'sage/arith', ) diff --git a/src/sage/cpython/meson.build b/src/sage/cpython/meson.build index 3653d0cfe0b..b4b83289127 100644 --- a/src/sage/cpython/meson.build +++ b/src/sage/cpython/meson.build @@ -2,6 +2,20 @@ py.install_sources( '__init__.py', '_py2_random.py', 'all.py', + 'cython_metaclass.h', + 'cython_metaclass.pxd', + 'dict_del_by_value.pxd', + 'dict_internal.h', + 'getattr.pxd', + 'pycore_long.h', + 'pycore_long.pxd', + 'python_debug.h', + 'python_debug.pxd', + 'pyx_visit.h', + 'string.pxd', + 'string_impl.h', + 'type.pxd', + 'wrapperdescr.pxd', subdir: 'sage/cpython', ) diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build index 17057e737df..125ec37304c 100644 --- a/src/sage/ext/interpreters/meson.build +++ b/src/sage/ext/interpreters/meson.build @@ -1,5 +1,11 @@ py.install_sources( 'all.py', + 'wrapper_cc.pxd', + 'wrapper_cdf.pxd', + 'wrapper_el.pxd', + 'wrapper_py.pxd', + 'wrapper_rdf.pxd', + 'wrapper_rr.pxd', subdir: 'sage/ext/interpreters', ) diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index e0f87b894c5..4615b24361e 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -1,5 +1,13 @@ py.install_sources( 'all__sagemath_objects.py', + 'ccobject.h', + 'cplusplus.pxd', + 'fast_callable.pxd', + 'fast_eval.pxd', + 'memory_allocator.pxd', + 'mod_int.h', + 'mod_int.pxd', + 'stdsage.pxd', subdir: 'sage/ext', ) diff --git a/src/sage/graphs/base/meson.build b/src/sage/graphs/base/meson.build index 55052e6d545..43b5b530fbd 100644 --- a/src/sage/graphs/base/meson.build +++ b/src/sage/graphs/base/meson.build @@ -1,6 +1,14 @@ py.install_sources( 'all.py', + 'boost_graph.pxd', + 'c_graph.pxd', + 'dense_graph.pxd', + 'graph_backends.pxd', 'overview.py', + 'sparse_graph.pxd', + 'static_dense_graph.pxd', + 'static_sparse_backend.pxd', + 'static_sparse_graph.pxd', subdir: 'sage/graphs/base', ) diff --git a/src/sage/graphs/graph_decompositions/meson.build b/src/sage/graphs/graph_decompositions/meson.build index 6ed735ca46d..569049303ad 100644 --- a/src/sage/graphs/graph_decompositions/meson.build +++ b/src/sage/graphs/graph_decompositions/meson.build @@ -9,7 +9,11 @@ rw = declare_dependency( py.install_sources( 'all.py', 'all__sagemath_tdlib.py', + 'fast_digraph.pxd', 'modular_decomposition.py', + 'rankwidth.pxd', + 'tree_decomposition.pxd', + 'vertex_separation.pxd', subdir: 'sage/graphs/graph_decompositions', ) diff --git a/src/sage/graphs/meson.build b/src/sage/graphs/meson.build index 40a95e7e590..a564f8f3d09 100644 --- a/src/sage/graphs/meson.build +++ b/src/sage/graphs/meson.build @@ -14,11 +14,16 @@ py.install_sources( 'all__sagemath_mcqd.py', 'all__sagemath_tdlib.py', 'bipartite_graph.py', + 'cliquer.pxd', + 'connectivity.pxd', + 'convexity_properties.pxd', 'digraph.py', 'digraph_generators.py', + 'distances_all_pairs.pxd', 'domination.py', 'dot2tex_utils.py', 'generic_graph.py', + 'generic_graph_pyx.pxd', 'graph.py', 'graph_database.py', 'graph_editor.py', @@ -29,13 +34,17 @@ py.install_sources( 'graph_plot.py', 'graph_plot_js.py', 'hypergraph_generators.py', + 'independent_sets.pxd', 'isgci.py', 'lovasz_theta.py', + 'mcqd.pxd', 'orientations.py', 'partial_cube.py', 'pq_trees.py', 'print_graphs.py', 'schnyder.py', + 'traversals.pxd', + 'trees.pxd', 'tutte_polynomial.py', subdir: 'sage/graphs', ) diff --git a/src/sage/libs/singular/meson.build b/src/sage/libs/singular/meson.build index 9dad471f9b8..1a7037adaa5 100644 --- a/src/sage/libs/singular/meson.build +++ b/src/sage/libs/singular/meson.build @@ -1,6 +1,12 @@ py.install_sources( '__init__.py', + 'decl.pxd', + 'function.pxd', 'function_factory.py', + 'groebner_strategy.pxd', + 'polynomial.pxd', + 'ring.pxd', + 'singular.pxd', 'standard_options.py', subdir: 'sage/libs/singular', ) diff --git a/src/sage/misc/meson.build b/src/sage/misc/meson.build index 066990166db..27e76f59025 100644 --- a/src/sage/misc/meson.build +++ b/src/sage/misc/meson.build @@ -5,10 +5,15 @@ py.install_sources( 'all__sagemath_environment.py', 'all__sagemath_objects.py', 'all__sagemath_repl.py', + 'allocator.pxd', 'banner.py', 'benchmark.py', + 'binary_tree.pxd', 'bindable_class.py', + 'c3_controlled.pxd', + 'cachefunc.pxd', 'call.py', + 'classcall_metaclass.pxd', 'classgraph.py', 'compat.py', 'converting_dict.py', @@ -21,25 +26,32 @@ py.install_sources( 'edit_module.py', 'element_with_label.py', 'explain_pickle.py', + 'fast_methods.pxd', 'flatten.py', 'func_persist.py', + 'function_mangling.pxd', 'functional.py', 'gperftools.py', 'html.py', + 'inherit_comparison.pxd', 'inline_fortran.py', 'latex.py', 'latex_macros.py', 'latex_standalone.py', 'lazy_format.py', 'lazy_import_cache.py', + 'lazy_list.pxd', + 'lazy_string.pxd', 'map_threaded.py', 'mathml.py', 'messaging.py', 'method_decorator.py', 'misc.py', + 'misc_c.pxd', 'mrange.py', 'multireplace.py', 'namespace_package.py', + 'nested_class.pxd', 'object_multiplexer.py', 'package.py', 'package_dir.py', @@ -49,6 +61,7 @@ py.install_sources( 'proof.py', 'python.py', 'random_testing.py', + 'randstate.pxd', 'remote_file.py', 'replace_dot_all.py', 'repr.py', @@ -60,6 +73,7 @@ py.install_sources( 'sagedoc.py', 'sagedoc_conf.py', 'sageinspect.py', + 'search.pxd', 'sh.py', 'sphinxify.py', 'superseded.py', @@ -72,6 +86,7 @@ py.install_sources( 'unknown.py', 'verbose.py', 'viewer.py', + 'weak_dict.pxd', subdir: 'sage/misc', ) diff --git a/src/sage/rings/convert/meson.build b/src/sage/rings/convert/meson.build index f438e735f3f..65d9d870063 100644 --- a/src/sage/rings/convert/meson.build +++ b/src/sage/rings/convert/meson.build @@ -1,5 +1,6 @@ py.install_sources( 'all.py', + 'mpfi.pxd', subdir: 'sage/rings/convert', ) diff --git a/src/sage/rings/finite_rings/meson.build b/src/sage/rings/finite_rings/meson.build index 4db4db3575d..c1935bab281 100644 --- a/src/sage/rings/finite_rings/meson.build +++ b/src/sage/rings/finite_rings/meson.build @@ -1,15 +1,27 @@ py.install_sources( 'all.py', 'conway_polynomials.py', + 'element_base.pxd', + 'element_givaro.pxd', + 'element_ntl_gf2e.pxd', + 'element_pari_ffelt.pxd', + 'finite_field_base.pxd', 'finite_field_constructor.py', 'finite_field_givaro.py', 'finite_field_ntl_gf2e.py', 'finite_field_pari_ffelt.py', 'finite_field_prime_modn.py', 'galois_group.py', + 'hom_finite_field.pxd', + 'hom_finite_field_givaro.pxd', + 'hom_prime_finite_field.pxd', 'homset.py', + 'integer_mod.pxd', + 'integer_mod_limits.h', 'integer_mod_ring.py', 'maps_finite_field.py', + 'residue_field.pxd', + 'stdint.pxd', subdir: 'sage/rings/finite_rings', ) diff --git a/src/sage/rings/function_field/meson.build b/src/sage/rings/function_field/meson.build index 954c446bd57..501d28f8015 100644 --- a/src/sage/rings/function_field/meson.build +++ b/src/sage/rings/function_field/meson.build @@ -6,6 +6,7 @@ py.install_sources( 'derivations_rational.py', 'differential.py', 'divisor.py', + 'element.pxd', 'extensions.py', 'function_field.py', 'function_field_polymod.py', diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 63438447097..7d6a54781ab 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -6,6 +6,7 @@ pthread = declare_dependency( py.install_sources( '__init__.py', + 'abc.pxd', 'algebraic_closure_finite_field.py', 'all.py', 'all__sagemath_categories.py', @@ -15,36 +16,70 @@ py.install_sources( 'cfinite_sequence.py', 'cif.py', 'commutative_algebra.py', + 'complex_arb.pxd', + 'complex_conversion.pxd', + 'complex_double.pxd', + 'complex_interval.pxd', 'complex_interval_field.py', + 'complex_mpc.pxd', + 'complex_mpfr.pxd', 'continued_fraction.py', 'continued_fraction_gosper.py', 'derivation.py', + 'fast_arith.pxd', 'fraction_field.py', + 'fraction_field_FpT.pxd', 'generic.py', 'homset.py', 'ideal.py', 'ideal_monoid.py', 'imaginary_unit.py', 'infinity.py', + 'integer.pxd', + 'integer_fake.h', + 'integer_fake.pxd', + 'integer_ring.pxd', 'laurent_series_ring.py', + 'laurent_series_ring_element.pxd', 'lazy_series.py', 'lazy_series_ring.py', 'localization.py', 'monomials.py', + 'morphism.pxd', 'multi_power_series_ring.py', 'multi_power_series_ring_element.py', 'numbers_abc.py', 'pari_ring.py', + 'power_series_mpoly.pxd', + 'power_series_pari.pxd', + 'power_series_poly.pxd', 'power_series_ring.py', + 'power_series_ring_element.pxd', 'puiseux_series_ring.py', + 'puiseux_series_ring_element.pxd', 'qqbar.py', 'qqbar_decorators.py', 'quotient_ring.py', 'quotient_ring_element.py', + 'rational.pxd', 'rational_field.py', + 'real_arb.pxd', + 'real_double.pxd', + 'real_double_element_gsl.pxd', 'real_field.py', + 'real_lazy.pxd', + 'real_mpfi.pxd', + 'real_mpfr.pxd', + 'ring.pxd', + 'ring_extension.pxd', + 'ring_extension_conversion.pxd', + 'ring_extension_element.pxd', 'ring_extension_homset.py', + 'ring_extension_morphism.pxd', + 'sum_of_squares.pxd', 'tate_algebra.py', + 'tate_algebra_element.pxd', + 'tate_algebra_ideal.pxd', 'tests.py', 'universal_cyclotomic_field.py', subdir: 'sage/rings', diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index 032f1c3321d..da05baead7b 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -8,6 +8,10 @@ py.install_sources( 'maps.py', 'morphism.py', 'number_field.py', + 'number_field_base.pxd', + 'number_field_element.pxd', + 'number_field_element_base.pxd', + 'number_field_element_quadratic.pxd', 'number_field_ideal.py', 'number_field_ideal_rel.py', 'number_field_rel.py', @@ -16,6 +20,7 @@ py.install_sources( 'small_primes_of_degree_one.py', 'splitting_field.py', 'structure.py', + 'totallyreal_data.pxd', 'totallyreal_phc.py', 'totallyreal_rel.py', 'unit_group.py', diff --git a/src/sage/rings/padics/meson.build b/src/sage/rings/padics/meson.build index bd69f694ce8..b59328f5271 100644 --- a/src/sage/rings/padics/meson.build +++ b/src/sage/rings/padics/meson.build @@ -1,20 +1,48 @@ py.install_sources( 'all.py', + 'common_conversion.pxd', 'eisenstein_extension_generic.py', 'factory.py', 'generic_nodes.py', 'lattice_precision.py', 'local_generic.py', + 'local_generic_element.pxd', 'misc.py', + 'morphism.pxd', + 'padic_ZZ_pX_CA_element.pxd', + 'padic_ZZ_pX_CR_element.pxd', + 'padic_ZZ_pX_FM_element.pxd', + 'padic_ZZ_pX_element.pxd', 'padic_base_generic.py', 'padic_base_leaves.py', + 'padic_capped_absolute_element.pxd', + 'padic_capped_relative_element.pxd', + 'padic_ext_element.pxd', 'padic_extension_generic.py', 'padic_extension_leaves.py', + 'padic_fixed_mod_element.pxd', + 'padic_floating_point_element.pxd', 'padic_generic.py', + 'padic_generic_element.pxd', 'padic_lattice_element.py', + 'padic_printing.pxd', + 'padic_relaxed_element.pxd', + 'padic_relaxed_errors.pxd', 'padic_valuation.py', + 'pow_computer.pxd', + 'pow_computer_ext.pxd', + 'pow_computer_flint.pxd', + 'pow_computer_relative.pxd', 'precision_error.py', + 'qadic_flint_CA.pxd', + 'qadic_flint_CR.pxd', + 'qadic_flint_FM.pxd', + 'qadic_flint_FP.pxd', 'relative_extension_leaves.py', + 'relative_ramified_CA.pxd', + 'relative_ramified_CR.pxd', + 'relative_ramified_FM.pxd', + 'relative_ramified_FP.pxd', 'tests.py', 'tutorial.py', 'unramified_extension_generic.py', diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index 1430321ca38..3566bc62a9a 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -1,35 +1,64 @@ py.install_sources( 'all.py', 'binary_form_reduce.py', + 'commutative_polynomial.pxd', 'complex_roots.py', 'convolution.py', + 'evaluation.pxd', + 'evaluation_flint.pxd', + 'evaluation_ntl.pxd', 'flatten.py', 'groebner_fan.py', 'ideal.py', 'infinite_polynomial_element.py', 'infinite_polynomial_ring.py', 'integer_valued_polynomials.py', + 'laurent_polynomial.pxd', 'laurent_polynomial_ideal.py', + 'laurent_polynomial_mpair.pxd', 'laurent_polynomial_ring.py', 'laurent_polynomial_ring_base.py', 'msolve.py', + 'multi_polynomial.pxd', 'multi_polynomial_element.py', 'multi_polynomial_ideal.py', + 'multi_polynomial_ideal_libsingular.pxd', + 'multi_polynomial_libsingular.pxd', 'multi_polynomial_ring.py', + 'multi_polynomial_ring_base.pxd', 'multi_polynomial_sequence.py', 'omega.py', 'ore_function_element.py', 'ore_function_field.py', + 'ore_polynomial_element.pxd', 'ore_polynomial_ring.py', + 'plural.pxd', + 'polydict.pxd', + 'polynomial_compiled.pxd', + 'polynomial_complex_arb.pxd', + 'polynomial_element.pxd', 'polynomial_element_generic.py', 'polynomial_fateman.py', + 'polynomial_gf2x.pxd', + 'polynomial_integer_dense_flint.pxd', + 'polynomial_integer_dense_ntl.pxd', + 'polynomial_modn_dense_ntl.pxd', 'polynomial_quotient_ring.py', 'polynomial_quotient_ring_element.py', + 'polynomial_rational_flint.pxd', 'polynomial_ring.py', 'polynomial_ring_constructor.py', + 'polynomial_ring_homomorphism.pxd', 'polynomial_singular_interface.py', + 'polynomial_zmod_flint.pxd', + 'polynomial_zz_pex.pxd', + 'real_roots.pxd', + 'skew_polynomial_element.pxd', + 'skew_polynomial_finite_field.pxd', + 'skew_polynomial_finite_order.pxd', 'skew_polynomial_ring.py', 'symmetric_ideal.py', + 'symmetric_reduction.pxd', 'term_order.py', 'toy_buchberger.py', 'toy_d_basis.py', diff --git a/src/sage/rings/polynomial/pbori/meson.build b/src/sage/rings/polynomial/pbori/meson.build index 56482234dda..ed61f857d0f 100644 --- a/src/sage/rings/polynomial/pbori/meson.build +++ b/src/sage/rings/polynomial/pbori/meson.build @@ -22,6 +22,7 @@ py.install_sources( 'll.py', 'nf.py', 'parallel.py', + 'pbori.pxd', 'randompoly.py', 'rank.py', 'specialsets.py', diff --git a/src/sage/rings/polynomial/weil/meson.build b/src/sage/rings/polynomial/weil/meson.build index ad617697b46..5db5abe197e 100644 --- a/src/sage/rings/polynomial/weil/meson.build +++ b/src/sage/rings/polynomial/weil/meson.build @@ -1,5 +1,6 @@ py.install_sources( 'all.py', + 'power_sums.h', subdir: 'sage/rings/polynomial/weil', ) diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index 280b6743e42..a1500cbbb8b 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -1,16 +1,32 @@ py.install_sources( '__init__.py', 'all.py', + 'category_object.pxd', + 'coerce.pxd', + 'coerce_actions.pxd', + 'coerce_dict.pxd', 'coerce_exceptions.py', + 'coerce_maps.pxd', + 'debug_options.pxd', 'dynamic_class.py', + 'element.pxd', + 'element_wrapper.pxd', 'factorization.py', 'factorization_integer.py', 'formal_sum.py', 'gens_py.py', 'global_options.py', 'indexed_generators.py', + 'list_clone.pxd', 'list_clone_timings.py', + 'mutability.pxd', 'nonexact.py', + 'parent.pxd', + 'parent_base.pxd', + 'parent_gens.pxd', + 'parent_old.pxd', + 'richcmp.pxd', + 'sage_object.pxd', 'sage_object_test.py', 'sequence.py', 'set_factories.py', diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index 5c24532bda4..2acc0fdf825 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -9,14 +9,18 @@ py.install_sources( 'callable.py', 'complexity_measures.py', 'constants.py', + 'expression.pxd', 'expression_conversion_algebraic.py', 'expression_conversion_sympy.py', 'expression_conversions.py', + 'function.pxd', 'function_factory.py', 'maxima_wrapper.py', 'operators.py', + 'pynac_wrap.h', 'random_tests.py', 'relation.py', + 'ring.pxd', 'subring.py', 'symbols.py', 'symengine.py', From b78557d1db4fb2b856c733429317ca197780a663 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 20 Nov 2023 02:18:47 +0000 Subject: [PATCH 082/161] correctly specify version --- meson.build | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/meson.build b/meson.build index aa8c8552f15..b5ef4dc0d06 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project( 'SageMath', ['c', 'cpp', 'cython'], - version: '10.2.beta8', + version: files('src/VERSION.txt'), license: 'GPL v3', meson_version: '>= 1.2.0', ) @@ -17,15 +17,6 @@ cc = meson.get_compiler('c') cpp = meson.get_compiler('cpp') cython = meson.get_compiler('cython') -test( - 'import', - py, - args: [ - '-c', - 'from sage.categories.category import Category; print(Category)', - ], - ) - # py_with_pytest = py_module.find_installation(required: false, modules: ['pytest']) # if py_with_pytest.found() # test( From 353b9899825ed98df3312d94f7d3758ff23f9c8a Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 20 Nov 2023 02:46:12 +0000 Subject: [PATCH 083/161] Properly set SAGE_SHARE to datadir, and warn if cremona is not installed --- pkgs/sage-conf/_sage_conf/_conf.py.in | 1 + src/sage/meson.build | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/pkgs/sage-conf/_sage_conf/_conf.py.in b/pkgs/sage-conf/_sage_conf/_conf.py.in index 87b27ca05cb..d94472ec467 100644 --- a/pkgs/sage-conf/_sage_conf/_conf.py.in +++ b/pkgs/sage-conf/_sage_conf/_conf.py.in @@ -8,6 +8,7 @@ VERSION = "@PACKAGE_VERSION@" # to it. SAGE_LOCAL = "@prefix@" SAGE_ROOT = "@SAGE_ROOT@" +SAGE_SHARE = "@SAGE_SHARE@" # The path to the standalone maxima executable. MAXIMA = "@SAGE_MAXIMA@".replace('${prefix}', SAGE_LOCAL) diff --git a/src/sage/meson.build b/src/sage/meson.build index f3013186314..8701d7f7a0b 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -1,9 +1,21 @@ +fs = import('fs') sage_install_dir = py.get_install_dir() / 'sage' # Generate the configuration file conf_data = configuration_data() conf_data.set('PACKAGE_VERSION', '1.2.3') conf_data.set('SAGE_ROOT', meson.current_source_dir() / '..' / '..') +# We use Python's prefix here to make it work with conda +prefix = py.get_variable('prefix', '') +conf_data.set('prefix', prefix) +datadir = fs.expanduser(get_option('datadir')) +if not fs.is_absolute(datadir) + datadir = prefix / datadir +endif +conf_data.set('SAGE_SHARE', datadir) +if not fs.exists(datadir / 'cremona') + message('Warning: The specified datadir does not contain the necessary Cremona database. Either specify a different datadir or specify a correct the correct path via the environment variable SAGE_SHARE during runtime.') +endif conf_data.set('SAGE_MAXIMA', maxima.full_path()) # Conda's ecl does not have any problems with Maxima, so nothing needs to be set here: conf_data.set('SAGE_MAXIMA_FAS', '') From 46dbc4f357b66767b52ce53b6e43cd2a9d180598 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 20 Nov 2023 02:51:17 +0000 Subject: [PATCH 084/161] Install more headers --- src/sage/libs/arb/meson.build | 15 +++++++ src/sage/libs/coxeter3/meson.build | 2 + src/sage/libs/eclib/meson.build | 3 ++ src/sage/libs/flint/meson.build | 28 +++++++++++++ src/sage/libs/gap/meson.build | 3 ++ src/sage/libs/giac/meson.build | 2 + src/sage/libs/glpk/meson.build | 5 +++ src/sage/libs/gmp/meson.build | 11 +++++ src/sage/libs/gsl/meson.build | 64 ++++++++++++++++++++++++++++++ src/sage/libs/lcalc/meson.build | 2 + src/sage/libs/linbox/meson.build | 5 +++ src/sage/libs/meson.build | 7 ++++ src/sage/libs/mpmath/meson.build | 1 + src/sage/libs/ntl/meson.build | 42 ++++++++++++++++++++ src/sage/libs/pari/meson.build | 6 +++ 15 files changed, 196 insertions(+) diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index 8fae1826015..2a2d52dad41 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -1,5 +1,20 @@ py.install_sources( '__init__.py', + 'acb.pxd', + 'acb_calc.pxd', + 'acb_elliptic.pxd', + 'acb_hypgeom.pxd', + 'acb_mat.pxd', + 'acb_modular.pxd', + 'acb_poly.pxd', + 'arb.pxd', + 'arb_fmpz_poly.pxd', + 'arb_hypgeom.pxd', + 'arb_wrap.h', + 'arf.pxd', + 'bernoulli.pxd', + 'mag.pxd', + 'types.pxd', subdir: 'sage/libs/arb', ) diff --git a/src/sage/libs/coxeter3/meson.build b/src/sage/libs/coxeter3/meson.build index 8d9ea2019dc..ea75996ddb7 100644 --- a/src/sage/libs/coxeter3/meson.build +++ b/src/sage/libs/coxeter3/meson.build @@ -2,7 +2,9 @@ coxeter3 = cc.find_library('coxeter3', required: false) py.install_sources( '__init__.py', 'all__sagemath_coxeter3.py', + 'coxeter.pxd', 'coxeter_group.py', + 'decl.pxd', subdir: 'sage/libs/coxeter3', ) diff --git a/src/sage/libs/eclib/meson.build b/src/sage/libs/eclib/meson.build index 81efc60d663..4cdca5b7c42 100644 --- a/src/sage/libs/eclib/meson.build +++ b/src/sage/libs/eclib/meson.build @@ -2,7 +2,10 @@ py.install_sources( '__init__.py', 'all.py', 'constructor.py', + 'homspace.pxd', 'interface.py', + 'mat.pxd', + 'newforms.pxd', subdir: 'sage/libs/eclib', ) diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build index 3411fea4911..ab3a64936a3 100644 --- a/src/sage/libs/flint/meson.build +++ b/src/sage/libs/flint/meson.build @@ -1,5 +1,33 @@ py.install_sources( '__init__.py', + 'arith.pxd', + 'flint.pxd', + 'flint_ntl_wrap.h', + 'flint_wrap.h', + 'fmpq.pxd', + 'fmpq_mat.pxd', + 'fmpq_poly.pxd', + 'fmpz.pxd', + 'fmpz_factor.pxd', + 'fmpz_mat.pxd', + 'fmpz_mod.pxd', + 'fmpz_mod_poly.pxd', + 'fmpz_poly.pxd', + 'fmpz_poly_mat.pxd', + 'fmpz_poly_q.pxd', + 'fmpz_vec.pxd', + 'fq.pxd', + 'fq_nmod.pxd', + 'nmod_poly.pxd', + 'nmod_vec.pxd', + 'ntl_interface.pxd', + 'padic.pxd', + 'padic_poly.pxd', + 'qadic.pxd', + 'qsieve.pxd', + 'thread_pool.pxd', + 'types.pxd', + 'ulong_extras.pxd', subdir: 'sage/libs/flint', ) diff --git a/src/sage/libs/gap/meson.build b/src/sage/libs/gap/meson.build index 5214a0ced62..b917e5c7bee 100644 --- a/src/sage/libs/gap/meson.build +++ b/src/sage/libs/gap/meson.build @@ -3,12 +3,15 @@ py.install_sources( 'all_documented_functions.py', 'assigned_names.py', 'context_managers.py', + 'element.pxd', 'gap_functions.py', 'gap_globals.py', + 'gap_includes.pxd', 'operations.py', 'saved_workspace.py', 'test.py', 'test_long.py', + 'util.pxd', subdir: 'sage/libs/gap', ) diff --git a/src/sage/libs/giac/meson.build b/src/sage/libs/giac/meson.build index e18c79d5dce..f4003c4a9c7 100644 --- a/src/sage/libs/giac/meson.build +++ b/src/sage/libs/giac/meson.build @@ -6,6 +6,8 @@ giac = declare_dependency( py.install_sources( '__init__.py', + 'giac.pxd', + 'misc.h', subdir: 'sage/libs/giac', ) diff --git a/src/sage/libs/glpk/meson.build b/src/sage/libs/glpk/meson.build index adbeec10c85..080e12bd275 100644 --- a/src/sage/libs/glpk/meson.build +++ b/src/sage/libs/glpk/meson.build @@ -1,5 +1,10 @@ py.install_sources( '__init__.py', + 'constants.pxd', + 'env.pxd', + 'graph.pxd', + 'lp.pxd', + 'types.pxd', subdir: 'sage/libs/glpk', ) diff --git a/src/sage/libs/gmp/meson.build b/src/sage/libs/gmp/meson.build index 35a3a5af964..7eaa2b4f586 100644 --- a/src/sage/libs/gmp/meson.build +++ b/src/sage/libs/gmp/meson.build @@ -1,5 +1,16 @@ py.install_sources( '__init__.py', + 'all.pxd', + 'binop.pxd', + 'misc.pxd', + 'mpf.pxd', + 'mpn.pxd', + 'mpq.pxd', + 'mpz.pxd', + 'pylong.pxd', + 'random.pxd', + 'randomize.pxd', + 'types.pxd', subdir: 'sage/libs/gmp', ) diff --git a/src/sage/libs/gsl/meson.build b/src/sage/libs/gsl/meson.build index fb85c2f0026..39d674466f3 100644 --- a/src/sage/libs/gsl/meson.build +++ b/src/sage/libs/gsl/meson.build @@ -1,5 +1,69 @@ py.install_sources( '__init__.py', + 'airy.pxd', + 'all.pxd', + 'array.pxd', + 'bessel.pxd', + 'blas.pxd', + 'blas_types.pxd', + 'block.pxd', + 'chebyshev.pxd', + 'clausen.pxd', + 'combination.pxd', + 'complex.pxd', + 'coulomb.pxd', + 'coupling.pxd', + 'dawson.pxd', + 'debye.pxd', + 'dilog.pxd', + 'eigen.pxd', + 'elementary.pxd', + 'ellint.pxd', + 'elljac.pxd', + 'erf.pxd', + 'errno.pxd', + 'exp.pxd', + 'expint.pxd', + 'fermi_dirac.pxd', + 'fft.pxd', + 'fit.pxd', + 'gamma.pxd', + 'gegenbauer.pxd', + 'histogram.pxd', + 'hyperg.pxd', + 'integration.pxd', + 'interp.pxd', + 'laguerre.pxd', + 'lambert.pxd', + 'legendre.pxd', + 'linalg.pxd', + 'log.pxd', + 'math.pxd', + 'matrix.pxd', + 'matrix_complex.pxd', + 'min.pxd', + 'monte.pxd', + 'ntuple.pxd', + 'odeiv.pxd', + 'permutation.pxd', + 'poly.pxd', + 'pow_int.pxd', + 'psi.pxd', + 'qrng.pxd', + 'random.pxd', + 'rng.pxd', + 'roots.pxd', + 'sort.pxd', + 'statistics.pxd', + 'sum.pxd', + 'synchrotron.pxd', + 'transport.pxd', + 'trig.pxd', + 'types.pxd', + 'vector.pxd', + 'vector_complex.pxd', + 'wavelet.pxd', + 'zeta.pxd', subdir: 'sage/libs/gsl', ) diff --git a/src/sage/libs/lcalc/meson.build b/src/sage/libs/lcalc/meson.build index 6d170655920..e70ed610108 100644 --- a/src/sage/libs/lcalc/meson.build +++ b/src/sage/libs/lcalc/meson.build @@ -1,5 +1,7 @@ py.install_sources( '__init__.py', + 'lcalc_Lfunction.pxd', + 'lcalc_sage.h', subdir: 'sage/libs/lcalc', ) diff --git a/src/sage/libs/linbox/meson.build b/src/sage/libs/linbox/meson.build index a18e7799cd7..48b092ed5d8 100644 --- a/src/sage/libs/linbox/meson.build +++ b/src/sage/libs/linbox/meson.build @@ -1,5 +1,10 @@ py.install_sources( '__init__.py', + 'conversion.pxd', + 'fflas.pxd', + 'givaro.pxd', + 'linbox.pxd', + 'linbox_flint_interface.pxd', subdir: 'sage/libs/linbox', ) diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index 30c2aa4fcc6..6833380ac11 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -12,6 +12,13 @@ py.install_sources( 'all__sagemath_meataxe.py', 'all__sagemath_objects.py', 'all__sagemath_sirocco.py', + 'ecl.pxd', + 'eclsig.h', + 'gmpxx.pxd', + 'iml.pxd', + 'm4ri.pxd', + 'm4rie.pxd', + 'meataxe.pxd', subdir: 'sage/libs', ) diff --git a/src/sage/libs/mpmath/meson.build b/src/sage/libs/mpmath/meson.build index edd7851e4f6..7bd5c737668 100644 --- a/src/sage/libs/mpmath/meson.build +++ b/src/sage/libs/mpmath/meson.build @@ -1,6 +1,7 @@ py.install_sources( '__init__.py', 'all.py', + 'utils.pxd', subdir: 'sage/libs/mpmath', ) diff --git a/src/sage/libs/ntl/meson.build b/src/sage/libs/ntl/meson.build index 8f1794a2f7b..cf4b30ad55a 100644 --- a/src/sage/libs/ntl/meson.build +++ b/src/sage/libs/ntl/meson.build @@ -1,6 +1,48 @@ py.install_sources( + 'GF2.pxd', + 'GF2E.pxd', + 'GF2EX.pxd', + 'GF2X.pxd', + 'ZZ.pxd', + 'ZZX.pxd', + 'ZZ_p.pxd', + 'ZZ_pE.pxd', + 'ZZ_pEX.pxd', + 'ZZ_pX.pxd', '__init__.py', 'all.py', + 'conversion.pxd', + 'convert.pxd', + 'lzz_p.pxd', + 'lzz_pX.pxd', + 'mat_GF2.pxd', + 'mat_GF2E.pxd', + 'mat_ZZ.pxd', + 'ntl_GF2.pxd', + 'ntl_GF2E.pxd', + 'ntl_GF2EContext.pxd', + 'ntl_GF2EX.pxd', + 'ntl_GF2X.pxd', + 'ntl_ZZ.pxd', + 'ntl_ZZX.pxd', + 'ntl_ZZ_p.pxd', + 'ntl_ZZ_pContext.pxd', + 'ntl_ZZ_pE.pxd', + 'ntl_ZZ_pEContext.pxd', + 'ntl_ZZ_pEX.pxd', + 'ntl_ZZ_pX.pxd', + 'ntl_lzz_p.pxd', + 'ntl_lzz_pContext.pxd', + 'ntl_lzz_pX.pxd', + 'ntl_mat_GF2.pxd', + 'ntl_mat_GF2E.pxd', + 'ntl_mat_ZZ.pxd', + 'ntl_tools.pxd', + 'ntlwrap.h', + 'ntlwrap_impl.h', + 'types.pxd', + 'vec_GF2.pxd', + 'vec_GF2E.pxd', subdir: 'sage/libs/ntl', ) diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build index 3250e59b85a..1ba3f5e37e2 100644 --- a/src/sage/libs/pari/meson.build +++ b/src/sage/libs/pari/meson.build @@ -1,6 +1,12 @@ py.install_sources( '__init__.py', 'all.py', + 'convert_flint.pxd', + 'convert_gmp.pxd', + 'convert_sage.pxd', + 'convert_sage_complex_double.pxd', + 'convert_sage_real_double.pxd', + 'misc.pxd', 'tests.py', subdir: 'sage/libs/pari', ) From d3289132850ffe32c11c6c462cf63f72963a262c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 24 Nov 2023 10:09:35 +0000 Subject: [PATCH 085/161] Readd init files --- src/sage/__init__.py | 2 ++ src/sage/algebras/__init__.py | 1 + src/sage/algebras/finite_dimensional_algebras/__init__.py | 1 + src/sage/algebras/fusion_rings/__init__.py | 1 + src/sage/algebras/hecke_algebras/__init__.py | 1 + src/sage/algebras/letterplace/__init__.py | 1 + src/sage/algebras/lie_algebras/__init__.py | 1 + src/sage/algebras/lie_conformal_algebras/__init__.py | 1 + src/sage/algebras/quantum_groups/__init__.py | 1 + src/sage/algebras/quatalg/__init__.py | 1 + src/sage/algebras/steenrod/__init__.py | 1 + src/sage/arith/__init__.py | 1 + src/sage/calculus/__init__.py | 1 + src/sage/calculus/transforms/__init__.py | 1 + src/sage/categories/__init__.py | 0 src/sage/categories/examples/__init__.py | 1 + src/sage/coding/__init__.py | 1 + src/sage/coding/codecan/__init__.py | 1 + src/sage/coding/guruswami_sudan/__init__.py | 1 + src/sage/coding/source_coding/__init__.py | 1 + src/sage/combinat/__init__.py | 1 + src/sage/combinat/chas/__init__.py | 1 + src/sage/combinat/cluster_algebra_quiver/__init__.py | 1 + src/sage/combinat/crystals/__init__.py | 1 + src/sage/combinat/designs/__init__.py | 1 + src/sage/combinat/matrices/__init__.py | 1 + src/sage/combinat/ncsf_qsym/__init__.py | 1 + src/sage/combinat/ncsym/__init__.py | 1 + src/sage/combinat/path_tableaux/__init__.py | 1 + src/sage/combinat/posets/__init__.py | 1 + src/sage/combinat/rigged_configurations/__init__.py | 1 + src/sage/combinat/root_system/__init__.py | 1 + src/sage/combinat/sf/__init__.py | 1 + src/sage/combinat/species/__init__.py | 1 + src/sage/combinat/words/__init__.py | 1 + src/sage/crypto/block_cipher/__init__.py | 1 + src/sage/crypto/public_key/__init__.py | 1 + src/sage/data_structures/__init__.py | 1 + src/sage/databases/__init__.py | 1 + src/sage/dynamics/__init__.py | 1 + src/sage/dynamics/arithmetic_dynamics/__init__.py | 1 + src/sage/dynamics/cellular_automata/__init__.py | 1 + src/sage/dynamics/complex_dynamics/__init__.py | 1 + src/sage/ext/__init__.py | 1 + src/sage/functions/__init__.py | 1 + src/sage/game_theory/__init__.py | 1 + src/sage/games/__init__.py | 1 + src/sage/geometry/__init__.py | 1 + src/sage/geometry/hyperbolic_space/__init__.py | 1 + src/sage/geometry/hyperplane_arrangement/__init__.py | 1 + src/sage/geometry/polyhedron/__init__.py | 1 + .../geometry/polyhedron/combinatorial_polyhedron/__init__.py | 1 + src/sage/geometry/polyhedron/modules/__init__.py | 1 + src/sage/geometry/riemannian_manifolds/__init__.py | 1 + src/sage/geometry/triangulation/__init__.py | 1 + src/sage/graphs/__init__.py | 1 + src/sage/graphs/base/__init__.py | 1 + src/sage/graphs/generators/__init__.py | 1 + src/sage/graphs/graph_decompositions/__init__.py | 1 + src/sage/groups/__init__.py | 1 + src/sage/groups/abelian_gps/__init__.py | 1 + src/sage/groups/additive_abelian/__init__.py | 1 + src/sage/groups/affine_gps/__init__.py | 1 + src/sage/groups/lie_gps/__init__.py | 1 + src/sage/groups/matrix_gps/__init__.py | 1 + src/sage/groups/misc_gps/__init__.py | 1 + src/sage/groups/perm_gps/__init__.py | 1 + src/sage/groups/perm_gps/partn_ref/__init__.py | 1 + src/sage/groups/perm_gps/partn_ref2/__init__.py | 1 + src/sage/groups/semimonomial_transformations/__init__.py | 1 + src/sage/homology/__init__.py | 1 + src/sage/interacts/__init__.py | 1 + src/sage/interfaces/__init__.py | 1 + src/sage/knots/__init__.py | 1 + src/sage/lfunctions/__init__.py | 1 + src/sage/libs/__init__.py | 0 src/sage/libs/gap/__init__.py | 0 src/sage/libs/mpc/__init__.py | 1 + src/sage/libs/mpfi/__init__.py | 1 + src/sage/libs/mpfr/__init__.py | 1 + src/sage/libs/polybori/__init__.py | 1 + src/sage/logic/__init__.py | 1 + src/sage/manifolds/__init__.py | 1 + src/sage/manifolds/differentiable/__init__.py | 1 + src/sage/manifolds/differentiable/examples/__init__.py | 1 + src/sage/manifolds/subsets/__init__.py | 1 + src/sage/matrix/__init__.py | 1 + src/sage/matroids/__init__.py | 1 + src/sage/misc/__init__.py | 0 src/sage/modular/__init__.py | 1 + src/sage/modular/abvar/__init__.py | 1 + src/sage/modular/arithgroup/__init__.py | 1 + src/sage/modular/btquotients/__init__.py | 1 + src/sage/modular/hecke/__init__.py | 1 + src/sage/modular/local_comp/__init__.py | 1 + src/sage/modular/modform/__init__.py | 1 + src/sage/modular/modform_hecketriangle/__init__.py | 1 + src/sage/modular/modsym/__init__.py | 1 + src/sage/modular/overconvergent/__init__.py | 1 + src/sage/modular/pollack_stevens/__init__.py | 1 + src/sage/modular/quasimodform/__init__.py | 1 + src/sage/modular/quatalg/__init__.py | 1 + src/sage/modular/ssmod/__init__.py | 1 + src/sage/modules/__init__.py | 1 + src/sage/modules/fg_pid/__init__.py | 1 + src/sage/modules/fp_graded/__init__.py | 1 + src/sage/modules/fp_graded/steenrod/__init__.py | 1 + src/sage/modules/with_basis/__init__.py | 1 + src/sage/monoids/__init__.py | 1 + src/sage/numerical/__init__.py | 1 + src/sage/numerical/backends/__init__.py | 1 + src/sage/parallel/__init__.py | 1 + src/sage/plot/__init__.py | 1 + src/sage/plot/plot3d/__init__.py | 1 + src/sage/probability/__init__.py | 1 + src/sage/quadratic_forms/__init__.py | 1 + src/sage/quadratic_forms/genera/__init__.py | 1 + src/sage/quivers/__init__.py | 1 + src/sage/rings/__init__.py | 1 + src/sage/rings/asymptotic/__init__.py | 1 + src/sage/rings/convert/__init__.py | 1 + src/sage/rings/finite_rings/__init__.py | 1 + src/sage/rings/function_field/__init__.py | 1 + src/sage/rings/function_field/drinfeld_modules/__init__.py | 1 + src/sage/rings/invariants/__init__.py | 1 + src/sage/rings/number_field/__init__.py | 1 + src/sage/rings/padics/__init__.py | 1 + src/sage/rings/polynomial/__init__.py | 1 + src/sage/rings/polynomial/padics/__init__.py | 1 + src/sage/rings/polynomial/weil/__init__.py | 1 + src/sage/rings/semirings/__init__.py | 1 + src/sage/rings/valuation/__init__.py | 1 + src/sage/sandpiles/__init__.py | 1 + src/sage/sat/__init__.py | 1 + src/sage/schemes/__init__.py | 1 + src/sage/schemes/affine/__init__.py | 1 + src/sage/schemes/berkovich/__init__.py | 1 + src/sage/schemes/curves/__init__.py | 1 + src/sage/schemes/cyclic_covers/__init__.py | 1 + src/sage/schemes/elliptic_curves/__init__.py | 1 + src/sage/schemes/generic/__init__.py | 1 + src/sage/schemes/hyperelliptic_curves/__init__.py | 1 + src/sage/schemes/jacobians/__init__.py | 1 + src/sage/schemes/plane_conics/__init__.py | 1 + src/sage/schemes/plane_quartics/__init__.py | 1 + src/sage/schemes/product_projective/__init__.py | 1 + src/sage/schemes/projective/__init__.py | 1 + src/sage/schemes/riemann_surfaces/__init__.py | 1 + src/sage/schemes/toric/__init__.py | 1 + src/sage/schemes/toric/sheaf/__init__.py | 1 + src/sage/sets/__init__.py | 1 + src/sage/stats/__init__.py | 1 + src/sage/stats/distributions/__init__.py | 1 + src/sage/stats/hmm/__init__.py | 1 + src/sage/symbolic/__init__.py | 1 + src/sage/symbolic/integration/__init__.py | 1 + src/sage/tensor/__init__.py | 1 + src/sage/tensor/modules/__init__.py | 1 + src/sage/tests/books/__init__.py | 1 + src/sage/topology/__init__.py | 1 + src/sage/typeset/__init__.py | 1 + src/sage_setup/autogen/interpreters/__init__.py | 5 ----- 162 files changed, 158 insertions(+), 5 deletions(-) create mode 100644 src/sage/__init__.py create mode 100644 src/sage/algebras/__init__.py create mode 100644 src/sage/algebras/finite_dimensional_algebras/__init__.py create mode 100644 src/sage/algebras/fusion_rings/__init__.py create mode 100644 src/sage/algebras/hecke_algebras/__init__.py create mode 100644 src/sage/algebras/letterplace/__init__.py create mode 100644 src/sage/algebras/lie_algebras/__init__.py create mode 100644 src/sage/algebras/lie_conformal_algebras/__init__.py create mode 100644 src/sage/algebras/quantum_groups/__init__.py create mode 100644 src/sage/algebras/quatalg/__init__.py create mode 100644 src/sage/algebras/steenrod/__init__.py create mode 100644 src/sage/arith/__init__.py create mode 100644 src/sage/calculus/__init__.py create mode 100644 src/sage/calculus/transforms/__init__.py create mode 100644 src/sage/categories/__init__.py create mode 100644 src/sage/categories/examples/__init__.py create mode 100644 src/sage/coding/__init__.py create mode 100644 src/sage/coding/codecan/__init__.py create mode 100644 src/sage/coding/guruswami_sudan/__init__.py create mode 100644 src/sage/coding/source_coding/__init__.py create mode 100644 src/sage/combinat/__init__.py create mode 100644 src/sage/combinat/chas/__init__.py create mode 100644 src/sage/combinat/cluster_algebra_quiver/__init__.py create mode 100644 src/sage/combinat/crystals/__init__.py create mode 100644 src/sage/combinat/designs/__init__.py create mode 100644 src/sage/combinat/matrices/__init__.py create mode 100644 src/sage/combinat/ncsf_qsym/__init__.py create mode 100644 src/sage/combinat/ncsym/__init__.py create mode 100644 src/sage/combinat/path_tableaux/__init__.py create mode 100644 src/sage/combinat/posets/__init__.py create mode 100644 src/sage/combinat/rigged_configurations/__init__.py create mode 100644 src/sage/combinat/root_system/__init__.py create mode 100644 src/sage/combinat/sf/__init__.py create mode 100644 src/sage/combinat/species/__init__.py create mode 100644 src/sage/combinat/words/__init__.py create mode 100644 src/sage/crypto/block_cipher/__init__.py create mode 100644 src/sage/crypto/public_key/__init__.py create mode 100644 src/sage/data_structures/__init__.py create mode 100644 src/sage/databases/__init__.py create mode 100644 src/sage/dynamics/__init__.py create mode 100644 src/sage/dynamics/arithmetic_dynamics/__init__.py create mode 100644 src/sage/dynamics/cellular_automata/__init__.py create mode 100644 src/sage/dynamics/complex_dynamics/__init__.py create mode 100644 src/sage/ext/__init__.py create mode 100644 src/sage/functions/__init__.py create mode 100644 src/sage/game_theory/__init__.py create mode 100644 src/sage/games/__init__.py create mode 100644 src/sage/geometry/__init__.py create mode 100644 src/sage/geometry/hyperbolic_space/__init__.py create mode 100644 src/sage/geometry/hyperplane_arrangement/__init__.py create mode 100644 src/sage/geometry/polyhedron/__init__.py create mode 100644 src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py create mode 100644 src/sage/geometry/polyhedron/modules/__init__.py create mode 100644 src/sage/geometry/riemannian_manifolds/__init__.py create mode 100644 src/sage/geometry/triangulation/__init__.py create mode 100644 src/sage/graphs/__init__.py create mode 100644 src/sage/graphs/base/__init__.py create mode 100644 src/sage/graphs/generators/__init__.py create mode 100644 src/sage/graphs/graph_decompositions/__init__.py create mode 100644 src/sage/groups/__init__.py create mode 100644 src/sage/groups/abelian_gps/__init__.py create mode 100644 src/sage/groups/additive_abelian/__init__.py create mode 100644 src/sage/groups/affine_gps/__init__.py create mode 100644 src/sage/groups/lie_gps/__init__.py create mode 100644 src/sage/groups/matrix_gps/__init__.py create mode 100644 src/sage/groups/misc_gps/__init__.py create mode 100644 src/sage/groups/perm_gps/__init__.py create mode 100644 src/sage/groups/perm_gps/partn_ref/__init__.py create mode 100644 src/sage/groups/perm_gps/partn_ref2/__init__.py create mode 100644 src/sage/groups/semimonomial_transformations/__init__.py create mode 100644 src/sage/homology/__init__.py create mode 100644 src/sage/interacts/__init__.py create mode 100644 src/sage/interfaces/__init__.py create mode 100644 src/sage/knots/__init__.py create mode 100644 src/sage/lfunctions/__init__.py create mode 100644 src/sage/libs/__init__.py create mode 100644 src/sage/libs/gap/__init__.py create mode 100644 src/sage/libs/mpc/__init__.py create mode 100644 src/sage/libs/mpfi/__init__.py create mode 100644 src/sage/libs/mpfr/__init__.py create mode 100644 src/sage/libs/polybori/__init__.py create mode 100644 src/sage/logic/__init__.py create mode 100644 src/sage/manifolds/__init__.py create mode 100644 src/sage/manifolds/differentiable/__init__.py create mode 100644 src/sage/manifolds/differentiable/examples/__init__.py create mode 100644 src/sage/manifolds/subsets/__init__.py create mode 100644 src/sage/matrix/__init__.py create mode 100644 src/sage/matroids/__init__.py create mode 100644 src/sage/misc/__init__.py create mode 100644 src/sage/modular/__init__.py create mode 100644 src/sage/modular/abvar/__init__.py create mode 100644 src/sage/modular/arithgroup/__init__.py create mode 100644 src/sage/modular/btquotients/__init__.py create mode 100644 src/sage/modular/hecke/__init__.py create mode 100644 src/sage/modular/local_comp/__init__.py create mode 100644 src/sage/modular/modform/__init__.py create mode 100644 src/sage/modular/modform_hecketriangle/__init__.py create mode 100644 src/sage/modular/modsym/__init__.py create mode 100644 src/sage/modular/overconvergent/__init__.py create mode 100644 src/sage/modular/pollack_stevens/__init__.py create mode 100644 src/sage/modular/quasimodform/__init__.py create mode 100644 src/sage/modular/quatalg/__init__.py create mode 100644 src/sage/modular/ssmod/__init__.py create mode 100644 src/sage/modules/__init__.py create mode 100644 src/sage/modules/fg_pid/__init__.py create mode 100644 src/sage/modules/fp_graded/__init__.py create mode 100644 src/sage/modules/fp_graded/steenrod/__init__.py create mode 100644 src/sage/modules/with_basis/__init__.py create mode 100644 src/sage/monoids/__init__.py create mode 100644 src/sage/numerical/__init__.py create mode 100644 src/sage/numerical/backends/__init__.py create mode 100644 src/sage/parallel/__init__.py create mode 100644 src/sage/plot/__init__.py create mode 100644 src/sage/plot/plot3d/__init__.py create mode 100644 src/sage/probability/__init__.py create mode 100644 src/sage/quadratic_forms/__init__.py create mode 100644 src/sage/quadratic_forms/genera/__init__.py create mode 100644 src/sage/quivers/__init__.py create mode 100644 src/sage/rings/__init__.py create mode 100644 src/sage/rings/asymptotic/__init__.py create mode 100644 src/sage/rings/convert/__init__.py create mode 100644 src/sage/rings/finite_rings/__init__.py create mode 100644 src/sage/rings/function_field/__init__.py create mode 100644 src/sage/rings/function_field/drinfeld_modules/__init__.py create mode 100644 src/sage/rings/invariants/__init__.py create mode 100644 src/sage/rings/number_field/__init__.py create mode 100644 src/sage/rings/padics/__init__.py create mode 100644 src/sage/rings/polynomial/__init__.py create mode 100644 src/sage/rings/polynomial/padics/__init__.py create mode 100644 src/sage/rings/polynomial/weil/__init__.py create mode 100644 src/sage/rings/semirings/__init__.py create mode 100644 src/sage/rings/valuation/__init__.py create mode 100644 src/sage/sandpiles/__init__.py create mode 100644 src/sage/sat/__init__.py create mode 100644 src/sage/schemes/__init__.py create mode 100644 src/sage/schemes/affine/__init__.py create mode 100644 src/sage/schemes/berkovich/__init__.py create mode 100644 src/sage/schemes/curves/__init__.py create mode 100644 src/sage/schemes/cyclic_covers/__init__.py create mode 100644 src/sage/schemes/elliptic_curves/__init__.py create mode 100644 src/sage/schemes/generic/__init__.py create mode 100644 src/sage/schemes/hyperelliptic_curves/__init__.py create mode 100644 src/sage/schemes/jacobians/__init__.py create mode 100644 src/sage/schemes/plane_conics/__init__.py create mode 100644 src/sage/schemes/plane_quartics/__init__.py create mode 100644 src/sage/schemes/product_projective/__init__.py create mode 100644 src/sage/schemes/projective/__init__.py create mode 100644 src/sage/schemes/riemann_surfaces/__init__.py create mode 100644 src/sage/schemes/toric/__init__.py create mode 100644 src/sage/schemes/toric/sheaf/__init__.py create mode 100644 src/sage/sets/__init__.py create mode 100644 src/sage/stats/__init__.py create mode 100644 src/sage/stats/distributions/__init__.py create mode 100644 src/sage/stats/hmm/__init__.py create mode 100644 src/sage/symbolic/__init__.py create mode 100644 src/sage/symbolic/integration/__init__.py create mode 100644 src/sage/tensor/__init__.py create mode 100644 src/sage/tensor/modules/__init__.py create mode 100644 src/sage/tests/books/__init__.py create mode 100644 src/sage/topology/__init__.py create mode 100644 src/sage/typeset/__init__.py diff --git a/src/sage/__init__.py b/src/sage/__init__.py new file mode 100644 index 00000000000..f6eb5289696 --- /dev/null +++ b/src/sage/__init__.py @@ -0,0 +1,2 @@ +# This is only here to mark the sage directory as a Python package +# (so that cython determines the correct module name) diff --git a/src/sage/algebras/__init__.py b/src/sage/algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/finite_dimensional_algebras/__init__.py b/src/sage/algebras/finite_dimensional_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/finite_dimensional_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/fusion_rings/__init__.py b/src/sage/algebras/fusion_rings/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/fusion_rings/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/hecke_algebras/__init__.py b/src/sage/algebras/hecke_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/hecke_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/letterplace/__init__.py b/src/sage/algebras/letterplace/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/letterplace/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/lie_algebras/__init__.py b/src/sage/algebras/lie_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/lie_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/lie_conformal_algebras/__init__.py b/src/sage/algebras/lie_conformal_algebras/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/lie_conformal_algebras/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/quantum_groups/__init__.py b/src/sage/algebras/quantum_groups/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/quantum_groups/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/quatalg/__init__.py b/src/sage/algebras/quatalg/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/quatalg/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/algebras/steenrod/__init__.py b/src/sage/algebras/steenrod/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/algebras/steenrod/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/arith/__init__.py b/src/sage/arith/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/arith/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/calculus/__init__.py b/src/sage/calculus/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/calculus/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/calculus/transforms/__init__.py b/src/sage/calculus/transforms/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/calculus/transforms/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/categories/__init__.py b/src/sage/categories/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/categories/examples/__init__.py b/src/sage/categories/examples/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/categories/examples/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/__init__.py b/src/sage/coding/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/codecan/__init__.py b/src/sage/coding/codecan/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/codecan/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/guruswami_sudan/__init__.py b/src/sage/coding/guruswami_sudan/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/guruswami_sudan/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/coding/source_coding/__init__.py b/src/sage/coding/source_coding/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/coding/source_coding/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/__init__.py b/src/sage/combinat/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/chas/__init__.py b/src/sage/combinat/chas/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/chas/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/cluster_algebra_quiver/__init__.py b/src/sage/combinat/cluster_algebra_quiver/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/cluster_algebra_quiver/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/crystals/__init__.py b/src/sage/combinat/crystals/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/crystals/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/designs/__init__.py b/src/sage/combinat/designs/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/designs/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/matrices/__init__.py b/src/sage/combinat/matrices/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/matrices/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/ncsf_qsym/__init__.py b/src/sage/combinat/ncsf_qsym/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/ncsf_qsym/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/ncsym/__init__.py b/src/sage/combinat/ncsym/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/ncsym/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/path_tableaux/__init__.py b/src/sage/combinat/path_tableaux/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/path_tableaux/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/posets/__init__.py b/src/sage/combinat/posets/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/posets/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/rigged_configurations/__init__.py b/src/sage/combinat/rigged_configurations/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/rigged_configurations/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/root_system/__init__.py b/src/sage/combinat/root_system/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/root_system/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/sf/__init__.py b/src/sage/combinat/sf/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/sf/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/species/__init__.py b/src/sage/combinat/species/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/species/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/combinat/words/__init__.py b/src/sage/combinat/words/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/combinat/words/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/crypto/block_cipher/__init__.py b/src/sage/crypto/block_cipher/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/crypto/block_cipher/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/crypto/public_key/__init__.py b/src/sage/crypto/public_key/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/crypto/public_key/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/data_structures/__init__.py b/src/sage/data_structures/__init__.py new file mode 100644 index 00000000000..a347df6f046 --- /dev/null +++ b/src/sage/data_structures/__init__.py @@ -0,0 +1 @@ +# So that cython creates the correct module names diff --git a/src/sage/databases/__init__.py b/src/sage/databases/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/databases/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/__init__.py b/src/sage/dynamics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/arithmetic_dynamics/__init__.py b/src/sage/dynamics/arithmetic_dynamics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/arithmetic_dynamics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/cellular_automata/__init__.py b/src/sage/dynamics/cellular_automata/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/cellular_automata/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/dynamics/complex_dynamics/__init__.py b/src/sage/dynamics/complex_dynamics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/dynamics/complex_dynamics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/ext/__init__.py b/src/sage/ext/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/ext/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/functions/__init__.py b/src/sage/functions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/functions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/game_theory/__init__.py b/src/sage/game_theory/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/game_theory/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/games/__init__.py b/src/sage/games/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/games/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/__init__.py b/src/sage/geometry/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/hyperbolic_space/__init__.py b/src/sage/geometry/hyperbolic_space/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/hyperbolic_space/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/hyperplane_arrangement/__init__.py b/src/sage/geometry/hyperplane_arrangement/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/hyperplane_arrangement/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/polyhedron/__init__.py b/src/sage/geometry/polyhedron/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/polyhedron/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py b/src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/polyhedron/modules/__init__.py b/src/sage/geometry/polyhedron/modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/polyhedron/modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/riemannian_manifolds/__init__.py b/src/sage/geometry/riemannian_manifolds/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/riemannian_manifolds/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/geometry/triangulation/__init__.py b/src/sage/geometry/triangulation/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/geometry/triangulation/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/__init__.py b/src/sage/graphs/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/base/__init__.py b/src/sage/graphs/base/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/base/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/generators/__init__.py b/src/sage/graphs/generators/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/generators/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/graphs/graph_decompositions/__init__.py b/src/sage/graphs/graph_decompositions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/graphs/graph_decompositions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/__init__.py b/src/sage/groups/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/abelian_gps/__init__.py b/src/sage/groups/abelian_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/abelian_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/additive_abelian/__init__.py b/src/sage/groups/additive_abelian/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/additive_abelian/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/affine_gps/__init__.py b/src/sage/groups/affine_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/affine_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/lie_gps/__init__.py b/src/sage/groups/lie_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/lie_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/matrix_gps/__init__.py b/src/sage/groups/matrix_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/matrix_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/misc_gps/__init__.py b/src/sage/groups/misc_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/misc_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/perm_gps/__init__.py b/src/sage/groups/perm_gps/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/perm_gps/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/perm_gps/partn_ref/__init__.py b/src/sage/groups/perm_gps/partn_ref/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/perm_gps/partn_ref2/__init__.py b/src/sage/groups/perm_gps/partn_ref2/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/perm_gps/partn_ref2/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/groups/semimonomial_transformations/__init__.py b/src/sage/groups/semimonomial_transformations/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/groups/semimonomial_transformations/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/homology/__init__.py b/src/sage/homology/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/homology/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/interacts/__init__.py b/src/sage/interacts/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/interacts/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/interfaces/__init__.py b/src/sage/interfaces/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/interfaces/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/knots/__init__.py b/src/sage/knots/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/knots/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/lfunctions/__init__.py b/src/sage/lfunctions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/lfunctions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/__init__.py b/src/sage/libs/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/libs/gap/__init__.py b/src/sage/libs/gap/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/libs/mpc/__init__.py b/src/sage/libs/mpc/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/mpc/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/mpfi/__init__.py b/src/sage/libs/mpfi/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/mpfi/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/mpfr/__init__.py b/src/sage/libs/mpfr/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/mpfr/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/libs/polybori/__init__.py b/src/sage/libs/polybori/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/libs/polybori/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/logic/__init__.py b/src/sage/logic/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/logic/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/__init__.py b/src/sage/manifolds/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/differentiable/__init__.py b/src/sage/manifolds/differentiable/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/differentiable/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/differentiable/examples/__init__.py b/src/sage/manifolds/differentiable/examples/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/differentiable/examples/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/manifolds/subsets/__init__.py b/src/sage/manifolds/subsets/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/manifolds/subsets/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/matrix/__init__.py b/src/sage/matrix/__init__.py new file mode 100644 index 00000000000..165aea9af28 --- /dev/null +++ b/src/sage/matrix/__init__.py @@ -0,0 +1 @@ +# Because of relative imports diff --git a/src/sage/matroids/__init__.py b/src/sage/matroids/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/matroids/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/misc/__init__.py b/src/sage/misc/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/modular/__init__.py b/src/sage/modular/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/abvar/__init__.py b/src/sage/modular/abvar/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/abvar/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/arithgroup/__init__.py b/src/sage/modular/arithgroup/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/arithgroup/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/btquotients/__init__.py b/src/sage/modular/btquotients/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/btquotients/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/hecke/__init__.py b/src/sage/modular/hecke/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/hecke/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/local_comp/__init__.py b/src/sage/modular/local_comp/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/local_comp/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/modform/__init__.py b/src/sage/modular/modform/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/modform/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/modform_hecketriangle/__init__.py b/src/sage/modular/modform_hecketriangle/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/modform_hecketriangle/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/modsym/__init__.py b/src/sage/modular/modsym/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/modsym/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/overconvergent/__init__.py b/src/sage/modular/overconvergent/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/overconvergent/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/pollack_stevens/__init__.py b/src/sage/modular/pollack_stevens/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/pollack_stevens/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/quasimodform/__init__.py b/src/sage/modular/quasimodform/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/quasimodform/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/quatalg/__init__.py b/src/sage/modular/quatalg/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/quatalg/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modular/ssmod/__init__.py b/src/sage/modular/ssmod/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modular/ssmod/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/__init__.py b/src/sage/modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/fg_pid/__init__.py b/src/sage/modules/fg_pid/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/fg_pid/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/fp_graded/__init__.py b/src/sage/modules/fp_graded/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/fp_graded/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/fp_graded/steenrod/__init__.py b/src/sage/modules/fp_graded/steenrod/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/fp_graded/steenrod/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/modules/with_basis/__init__.py b/src/sage/modules/with_basis/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/modules/with_basis/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/monoids/__init__.py b/src/sage/monoids/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/monoids/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/numerical/__init__.py b/src/sage/numerical/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/numerical/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/numerical/backends/__init__.py b/src/sage/numerical/backends/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/numerical/backends/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/parallel/__init__.py b/src/sage/parallel/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/parallel/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/plot/__init__.py b/src/sage/plot/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/plot/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/plot/plot3d/__init__.py b/src/sage/plot/plot3d/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/plot/plot3d/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/probability/__init__.py b/src/sage/probability/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/probability/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/quadratic_forms/__init__.py b/src/sage/quadratic_forms/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/quadratic_forms/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/quadratic_forms/genera/__init__.py b/src/sage/quadratic_forms/genera/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/quadratic_forms/genera/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/quivers/__init__.py b/src/sage/quivers/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/quivers/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/__init__.py b/src/sage/rings/__init__.py new file mode 100644 index 00000000000..5ef917c1263 --- /dev/null +++ b/src/sage/rings/__init__.py @@ -0,0 +1 @@ +# To make cython create the correct module name diff --git a/src/sage/rings/asymptotic/__init__.py b/src/sage/rings/asymptotic/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/asymptotic/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/convert/__init__.py b/src/sage/rings/convert/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/convert/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/finite_rings/__init__.py b/src/sage/rings/finite_rings/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/finite_rings/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/function_field/__init__.py b/src/sage/rings/function_field/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/function_field/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/function_field/drinfeld_modules/__init__.py b/src/sage/rings/function_field/drinfeld_modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/function_field/drinfeld_modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/invariants/__init__.py b/src/sage/rings/invariants/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/invariants/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/number_field/__init__.py b/src/sage/rings/number_field/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/number_field/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/padics/__init__.py b/src/sage/rings/padics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/padics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/polynomial/__init__.py b/src/sage/rings/polynomial/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/polynomial/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/polynomial/padics/__init__.py b/src/sage/rings/polynomial/padics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/polynomial/padics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/polynomial/weil/__init__.py b/src/sage/rings/polynomial/weil/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/polynomial/weil/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/semirings/__init__.py b/src/sage/rings/semirings/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/semirings/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/rings/valuation/__init__.py b/src/sage/rings/valuation/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/rings/valuation/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/sandpiles/__init__.py b/src/sage/sandpiles/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/sandpiles/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/sat/__init__.py b/src/sage/sat/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/sat/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/__init__.py b/src/sage/schemes/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/affine/__init__.py b/src/sage/schemes/affine/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/affine/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/berkovich/__init__.py b/src/sage/schemes/berkovich/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/berkovich/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/curves/__init__.py b/src/sage/schemes/curves/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/curves/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/cyclic_covers/__init__.py b/src/sage/schemes/cyclic_covers/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/cyclic_covers/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/elliptic_curves/__init__.py b/src/sage/schemes/elliptic_curves/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/elliptic_curves/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/generic/__init__.py b/src/sage/schemes/generic/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/generic/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/hyperelliptic_curves/__init__.py b/src/sage/schemes/hyperelliptic_curves/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/hyperelliptic_curves/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/jacobians/__init__.py b/src/sage/schemes/jacobians/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/jacobians/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/plane_conics/__init__.py b/src/sage/schemes/plane_conics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/plane_conics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/plane_quartics/__init__.py b/src/sage/schemes/plane_quartics/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/plane_quartics/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/product_projective/__init__.py b/src/sage/schemes/product_projective/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/product_projective/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/projective/__init__.py b/src/sage/schemes/projective/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/projective/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/riemann_surfaces/__init__.py b/src/sage/schemes/riemann_surfaces/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/riemann_surfaces/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/toric/__init__.py b/src/sage/schemes/toric/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/toric/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/schemes/toric/sheaf/__init__.py b/src/sage/schemes/toric/sheaf/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/schemes/toric/sheaf/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/sets/__init__.py b/src/sage/sets/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/sets/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/stats/__init__.py b/src/sage/stats/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/stats/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/stats/distributions/__init__.py b/src/sage/stats/distributions/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/stats/distributions/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/stats/hmm/__init__.py b/src/sage/stats/hmm/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/stats/hmm/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/symbolic/__init__.py b/src/sage/symbolic/__init__.py new file mode 100644 index 00000000000..27875dc3de5 --- /dev/null +++ b/src/sage/symbolic/__init__.py @@ -0,0 +1 @@ +# here so that cython creates the correct module name diff --git a/src/sage/symbolic/integration/__init__.py b/src/sage/symbolic/integration/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/symbolic/integration/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/tensor/__init__.py b/src/sage/tensor/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/tensor/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/tensor/modules/__init__.py b/src/sage/tensor/modules/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/tensor/modules/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/tests/books/__init__.py b/src/sage/tests/books/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/tests/books/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/topology/__init__.py b/src/sage/topology/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/topology/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage/typeset/__init__.py b/src/sage/typeset/__init__.py new file mode 100644 index 00000000000..1b10e244496 --- /dev/null +++ b/src/sage/typeset/__init__.py @@ -0,0 +1 @@ +# Here so that cython creates the correct module name diff --git a/src/sage_setup/autogen/interpreters/__init__.py b/src/sage_setup/autogen/interpreters/__init__.py index 75096d06b80..87dae60bce7 100644 --- a/src/sage_setup/autogen/interpreters/__init__.py +++ b/src/sage_setup/autogen/interpreters/__init__.py @@ -226,11 +226,6 @@ def rebuild(dirname, force=False, interpreters=None, distribution=None): except OSError: if not os.path.isdir(dirname): raise - # Remove leftover file from before move to namespace packages - try: - os.remove(os.path.join(dirname, '__init__.py')) - except FileNotFoundError: - pass # Although multiple files are generated by this function, since # they are all generated at once it suffices to make sure if just From 817c49c6d6b565f5d99b5835e34e6abed354285d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 24 Nov 2023 10:21:24 +0000 Subject: [PATCH 086/161] Fix tests --- src/sage/misc/cython.py | 9 +++------ src/sage_setup/find.py | 5 ----- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/sage/misc/cython.py b/src/sage/misc/cython.py index c0c803bf943..4541cd03bd6 100644 --- a/src/sage/misc/cython.py +++ b/src/sage/misc/cython.py @@ -231,16 +231,13 @@ def cython(filename, verbose=0, compile_message=False, ....: ''') In Cython 0.29.33 using `from PACKAGE cimport MODULE` is broken - when `PACKAGE` is a namespace package, see :trac:`35322`:: + when `PACKAGE` is a namespace package, see :trac:`35322` + (but as of now sage.misc is not a namespace package, so this passes):: sage: cython(''' ....: from sage.misc cimport cachefunc ....: ''') - Traceback (most recent call last): - ... - RuntimeError: Error compiling Cython file: - ... - ...: 'sage/misc.pxd' not found + """ if not filename.endswith('pyx'): print("Warning: file (={}) should have extension .pyx".format(filename), file=sys.stderr) diff --git a/src/sage_setup/find.py b/src/sage_setup/find.py index 61d91abc2eb..f53a228fcb6 100644 --- a/src/sage_setup/find.py +++ b/src/sage_setup/find.py @@ -375,11 +375,6 @@ def installed_files_by_module(site_packages, modules=('sage',)): sage: f2 'sage/structure/....pyc' - Namespace packages:: - - sage: files_by_module['sage.graphs.graph_decompositions'] - set() - This takes about 30ms with warm cache:: sage: timeit('installed_files_by_module(site_packages)', # random output From b5ffbe6fc70f348f9a52b95da821e81ebdcfb00c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 24 Nov 2023 20:26:49 +0800 Subject: [PATCH 087/161] Fix linter --- src/sage/misc/cython.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/misc/cython.py b/src/sage/misc/cython.py index 4541cd03bd6..02e4db4f3c3 100644 --- a/src/sage/misc/cython.py +++ b/src/sage/misc/cython.py @@ -237,7 +237,7 @@ def cython(filename, verbose=0, compile_message=False, sage: cython(''' ....: from sage.misc cimport cachefunc ....: ''') - + """ if not filename.endswith('pyx'): print("Warning: file (={}) should have extension .pyx".format(filename), file=sys.stderr) From 4698e07a5223e0b4399f835369e5ca2c18012e56 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 7 Dec 2023 12:39:42 +0000 Subject: [PATCH 088/161] update meson files --- src/meson.build | 6 ------ src/sage/geometry/meson.build | 1 + src/sage/libs/arb/meson.build | 2 +- src/sage/libs/flint/meson.build | 1 + src/sage/matrix/meson.build | 5 +++-- src/sage/meson.build | 1 - src/sage/rings/meson.build | 4 ++-- src/sage/rings/number_field/meson.build | 2 +- src/sage/rings/polynomial/meson.build | 4 ++-- 9 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/meson.build b/src/meson.build index 8f5129dd25b..26cfcdab42d 100644 --- a/src/meson.build +++ b/src/meson.build @@ -195,12 +195,6 @@ mpc = declare_dependency( cc.find_library('mpc'), ] ) -# Cannot be found via pkg-config -arb = declare_dependency( - dependencies: [ - cc.find_library('arb'), - ] -) mpfi = declare_dependency( dependencies: [ cc.find_library('mpfi'), diff --git a/src/sage/geometry/meson.build b/src/sage/geometry/meson.build index 4964ad981a5..57853c8ae15 100644 --- a/src/sage/geometry/meson.build +++ b/src/sage/geometry/meson.build @@ -25,6 +25,7 @@ extension_data = { 'abc': files('abc.pyx'), 'integral_points_generic_dense': files('integral_points_generic_dense.pyx'), 'integral_points_integer_dense': files('integral_points_integer_dense.pyx'), + 'palp_normal_form': files('palp_normal_form.pyx'), 'point_collection': files('point_collection.pyx'), 'toric_lattice_element': files('toric_lattice_element.pyx'), } diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index 2a2d52dad41..cd5ec778dd1 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -29,7 +29,7 @@ foreach name, pyx : extension_data subdir: 'sage/libs/arb', install: true, include_directories: [inc_arb, inc_cpython, inc_flint, inc_rings], - dependencies: [py_dep, arb, flint, gmp, mpfr], + dependencies: [py_dep, flint, gmp, mpfr], ) endforeach diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build index ab3a64936a3..807e2d09f7b 100644 --- a/src/sage/libs/flint/meson.build +++ b/src/sage/libs/flint/meson.build @@ -34,6 +34,7 @@ py.install_sources( extension_data = { 'arith': files('arith.pyx'), 'flint': files('flint.pyx'), + 'fmpq_poly': files('fmpq_poly.pyx'), 'fmpz_factor': files('fmpz_factor.pyx'), 'fmpz_poly': files('fmpz_poly.pyx'), 'qsieve': files('qsieve.pyx'), diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index 7a0362ef582..8b67f6b1bfc 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -49,6 +49,7 @@ extension_data = { 'matrix_generic_dense': files('matrix_generic_dense.pyx'), 'matrix_generic_sparse': files('matrix_generic_sparse.pyx'), # 'matrix_gfpn_dense': files('matrix_gfpn_dense.pyx'), # not yet on conda + 'matrix_laurent_mpolynomial_dense': files('matrix_laurent_mpolynomial_dense.pyx'), 'matrix_numpy_dense': files('matrix_numpy_dense.pyx'), 'matrix_numpy_integer_dense': files('matrix_numpy_integer_dense.pyx'), 'matrix_polynomial_dense': files('matrix_polynomial_dense.pyx'), @@ -70,7 +71,7 @@ foreach name, pyx : extension_data subdir: 'sage/matrix', install: true, include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib], + dependencies: [py_dep, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib], ) endforeach @@ -94,7 +95,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, singular, zlib], + dependencies: [py_dep, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, singular, zlib], ) endforeach diff --git a/src/sage/meson.build b/src/sage/meson.build index 8701d7f7a0b..980a62e3e35 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -21,7 +21,6 @@ conf_data.set('SAGE_MAXIMA', maxima.full_path()) conf_data.set('SAGE_MAXIMA_FAS', '') # Kenzo cannot yet be provided by the system, so we always use the SAGE_LOCAL path for now. conf_data.set('SAGE_KENZO_FAS', '\'${prefix}\'/lib/ecl/kenzo.fas') -conf_data.set('SAGE_ARB_LIBRARY', 'arb') # It can be found, so we don't have to set anything here: conf_data.set('NTL_INCDIR', '') conf_data.set('NTL_LIBDIR', '') diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 7d6a54781ab..85e59021c9f 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -131,7 +131,7 @@ foreach name, pyx : extension_data subdir: 'sage/rings', install: true, include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], ) endforeach @@ -149,7 +149,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], ) endforeach diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index da05baead7b..e3b6cfa6d5d 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -57,7 +57,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], - dependencies: [py_dep, arb, cypari2, cysignals, flint, gmp, mpfi, mpfr, ntl], + dependencies: [py_dep, cypari2, cysignals, flint, gmp, mpfi, mpfr, ntl], ) endforeach diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index 3566bc62a9a..dbc0189b826 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -97,7 +97,7 @@ foreach name, pyx : extension_data subdir: 'sage/rings/polynomial', install: true, include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari], + dependencies: [py_dep, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari], ) endforeach @@ -122,7 +122,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, arb, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari, singular], + dependencies: [py_dep, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari, singular], ) endforeach From 1adecdbb964f6ccae7e681cac76646e7a80b2606 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 7 Dec 2023 12:56:31 +0000 Subject: [PATCH 089/161] fix bernmm compilation /opt/conda/envs/sage-dev/x86_64-conda-linux-gnu/include/c++/12.3.0/bits/stl_tree.h:772:15: error: static assertion failed: comparison object must be invocable as const 772 | is_invocable_v, /opt/conda/envs/sage-dev/x86_64-conda-linux-gnu/include/c++/12.3.0/bits/stl_tree.h:772:15: note: 'std::is_invocable_v' evaluates to false --- src/sage/rings/bernmm/bern_rat.cpp | 4 ++-- src/sage/rings/meson.build | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sage/rings/bernmm/bern_rat.cpp b/src/sage/rings/bernmm/bern_rat.cpp index 963cb173524..1a1ad87b6c2 100644 --- a/src/sage/rings/bernmm/bern_rat.cpp +++ b/src/sage/rings/bernmm/bern_rat.cpp @@ -87,7 +87,7 @@ struct Item */ struct Item_cmp { - bool operator()(const Item* x, const Item* y) + bool operator()(const Item* x, const Item* y) const { return mpz_cmp(x->modulus, y->modulus) < 0; } @@ -331,9 +331,9 @@ void bern_rat(mpq_t res, long k, int num_threads) #ifdef USE_THREADS for (long i = 0; i < num_threads - 1; i++) pthread_join(threads[i], NULL); -#endif pthread_attr_destroy (&attr); +#endif // reconstruct B_k as a rational number Item* item = *(state.items.begin()); diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 85e59021c9f..143b683260a 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -136,7 +136,7 @@ foreach name, pyx : extension_data endforeach extension_data_cpp = { - 'bernmm': files('bernmm.pyx', 'bernmm/bern_modp.cpp', 'bernmm/bern_modp_util.cpp'),#, 'bernmm/bern_rat.cpp'), - TODO: Compilation error + 'bernmm': files('bernmm.pyx', 'bernmm/bern_modp.cpp', 'bernmm/bern_modp_util.cpp', 'bernmm/bern_rat.cpp'), 'bernoulli_mod_p': files('bernoulli_mod_p.pyx'), 'fraction_field_FpT': files('fraction_field_FpT.pyx'), 'rational': files('rational.pyx'), @@ -147,6 +147,7 @@ foreach name, pyx : extension_data_cpp sources: pyx, subdir: 'sage/rings', install: true, + cpp_args: ['-DUSE_THREADS=1','-DTHREAD_STACK_SIZE=4096'], override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], dependencies: [py_dep, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], From 56f33941c0df1885748de34fbcb23972c65142c0 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 7 Dec 2023 13:23:55 +0000 Subject: [PATCH 090/161] fix missing python file --- src/sage/quadratic_forms/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/quadratic_forms/meson.build b/src/sage/quadratic_forms/meson.build index 64271fb416f..46581073301 100644 --- a/src/sage/quadratic_forms/meson.build +++ b/src/sage/quadratic_forms/meson.build @@ -1,6 +1,7 @@ py.install_sources( 'all.py', 'binary_qf.py', + 'bqf_class_group.py', 'constructions.py', 'extras.py', 'qfsolve.py', From c9f99489b143c8704dc4579444c04cbb2f7fdc18 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 8 Dec 2023 16:43:24 +0000 Subject: [PATCH 091/161] fix a few more failing tests by installing necessary files --- src/sage/categories/meson.build | 6 ++++++ src/sage/data_structures/meson.build | 9 +++++++++ src/sage/rings/meson.build | 2 ++ src/sage/schemes/elliptic_curves/meson.build | 2 ++ 4 files changed, 19 insertions(+) diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build index beb4a57fe7c..416be5f1897 100644 --- a/src/sage/categories/meson.build +++ b/src/sage/categories/meson.build @@ -1,5 +1,6 @@ py.install_sources( '__init__.py', + 'action.pxd', 'additive_groups.py', 'additive_magmas.py', 'additive_monoids.py', @@ -20,6 +21,8 @@ py.install_sources( 'bimodules.py', 'cartesian_product.py', 'category.py', + 'category_cy_helper.pxd', + 'category_singleton.pxd', 'category_types.py', 'category_with_axiom.py', 'chain_complexes.py', @@ -83,6 +86,7 @@ py.install_sources( 'finitely_generated_magmas.py', 'finitely_generated_semigroups.py', 'function_fields.py', + 'functor.pxd', 'g_sets.py', 'gcd_domains.py', 'generalized_coxeter_groups.py', @@ -130,6 +134,7 @@ py.install_sources( 'magmas_and_additive_magmas.py', 'magmatic_algebras.py', 'manifolds.py', + 'map.pxd', 'matrix_algebras.py', 'metric_spaces.py', 'modular_abelian_varieties.py', @@ -137,6 +142,7 @@ py.install_sources( 'modules_with_basis.py', 'monoid_algebras.py', 'monoids.py', + 'morphism.pxd', 'number_fields.py', 'objects.py', 'partially_ordered_monoids.py', diff --git a/src/sage/data_structures/meson.build b/src/sage/data_structures/meson.build index ad656c3cab6..4582d9bcb75 100644 --- a/src/sage/data_structures/meson.build +++ b/src/sage/data_structures/meson.build @@ -1,7 +1,16 @@ py.install_sources( '__init__.py', 'all.py', + 'binary_matrix.pxd', + 'binary_search.pxd', + 'bitset.pxd', + 'bitset_base.pxd', + 'bitset_intrinsics.h', + 'blas_dict.pxd', + 'bounded_integer_sequences.pxd', + 'list_of_pairs.pxd', 'mutable_poset.py', + 'sparse_bitset.pxd', 'stream.py', subdir: 'sage/data_structures', ) diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 143b683260a..473eb734cd3 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -36,6 +36,7 @@ py.install_sources( 'imaginary_unit.py', 'infinity.py', 'integer.pxd', + 'integer.pyx', 'integer_fake.h', 'integer_fake.pxd', 'integer_ring.pxd', @@ -62,6 +63,7 @@ py.install_sources( 'quotient_ring.py', 'quotient_ring_element.py', 'rational.pxd', + 'rational.pyx', 'rational_field.py', 'real_arb.pxd', 'real_double.pxd', diff --git a/src/sage/schemes/elliptic_curves/meson.build b/src/sage/schemes/elliptic_curves/meson.build index 6dcd2411cd4..ce4f2366180 100644 --- a/src/sage/schemes/elliptic_curves/meson.build +++ b/src/sage/schemes/elliptic_curves/meson.build @@ -30,6 +30,7 @@ py.install_sources( 'hom_composite.py', 'hom_frobenius.py', 'hom_scalar.py', + 'hom_sum.py', 'hom_velusqrt.py', 'isogeny_class.py', 'isogeny_small_degree.py', @@ -38,6 +39,7 @@ py.install_sources( 'kraus.py', 'lseries_ell.py', 'mod5family.py', + 'mod_poly.py', 'modular_parametrization.py', 'padic_lseries.py', 'padics.py', From 72053171ea0425ff182bdc8e5681118a8b898b83 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 9 Dec 2023 04:53:16 +0000 Subject: [PATCH 092/161] embed file position into cython docstrings --- src/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/meson.build b/src/meson.build index 26cfcdab42d..217e42bf8ff 100644 --- a/src/meson.build +++ b/src/meson.build @@ -242,6 +242,7 @@ add_project_arguments('-X c_api_binop_methods=True', language : 'cython') add_project_arguments('-X cdivision=True', language : 'cython') add_project_arguments('-X cpow=True', language : 'cython') add_project_arguments('-X embedsignature=True', language : 'cython') +add_project_arguments('--embed-positions', language : 'cython') add_project_arguments('-X fast_getattr=True', language : 'cython') #add_project_arguments('-X language_level="3"', language : 'cython') add_project_arguments('-X legacy_implicit_noexcept=True', language : 'cython') From 36a8e758129f9a307abcdbc81c965ae767deb9d4 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 14 Dec 2023 06:19:12 +0000 Subject: [PATCH 093/161] Fix build error --- src/sage/libs/pari/meson.build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build index 1ba3f5e37e2..da41b9a3507 100644 --- a/src/sage/libs/pari/meson.build +++ b/src/sage/libs/pari/meson.build @@ -6,6 +6,7 @@ py.install_sources( 'convert_sage.pxd', 'convert_sage_complex_double.pxd', 'convert_sage_real_double.pxd', + 'convert_sage_real_mpfr.pxd', 'misc.pxd', 'tests.py', subdir: 'sage/libs/pari', @@ -16,7 +17,9 @@ extension_data = { 'convert_gmp': files('convert_gmp.pyx'), 'convert_sage': files('convert_sage.pyx'), 'convert_sage_complex_double': files('convert_sage_complex_double.pyx'), + 'convert_sage_matrix': files('convert_sage_matrix.pyx'), 'convert_sage_real_double': files('convert_sage_real_double.pyx'), + 'convert_sage_real_mpfr': files('convert_sage_real_mpfr.pyx'), 'misc': files('misc.pyx'), } From b468af35d7768f4428d641986db3586b701af5b3 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 14 Dec 2023 07:42:49 +0000 Subject: [PATCH 094/161] cleanup --- src/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/src/meson.build b/src/meson.build index 217e42bf8ff..50ae0191a88 100644 --- a/src/meson.build +++ b/src/meson.build @@ -255,7 +255,6 @@ inc_flint = include_directories('sage/libs/flint') inc_gsl = include_directories('sage/libs/gsl') inc_ntl = include_directories('sage/libs/ntl') inc_arb = include_directories('sage/libs/arb') -inc_iml = include_directories('sage/libs') inc_data_structures = include_directories('sage/data_structures') inc_ext = include_directories('sage/ext') inc_interpreters = include_directories('sage/ext/interpreters') From 95ed032e9c8e8f142e2dc3ad2f26f13f50d6a5b4 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 14 Dec 2023 07:46:07 +0000 Subject: [PATCH 095/161] Remove explicit file names from docs Reason: Cython uses the working dir to relativize the file name (see https://github.com/cython/cython/blob/2f93a5f92a80352e72f5fa9679fd282cb7a497ad/Cython/Compiler/Scanning.py#L199-L200), but meson runs the compilation from a temporary folder (https://github.com/mesonbuild/meson/blob/e991c4d45460c09e5eaee6cb1041edb95d1e990e/mesonbuild/compilers/compilers.py#L832-L879). Hence this the file name relatization is not working. --- src/sage/misc/lazy_attribute.pyx | 4 ++-- src/sage/misc/nested_class.pyx | 2 +- src/sage/misc/sagedoc.py | 5 +---- src/sage/misc/sageinspect.py | 4 ++-- src/sage/repl/interpreter.py | 2 +- src/sage/structure/coerce.pyx | 6 +++--- 6 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/sage/misc/lazy_attribute.pyx b/src/sage/misc/lazy_attribute.pyx index 1f07870b8ec..0a04881979e 100644 --- a/src/sage/misc/lazy_attribute.pyx +++ b/src/sage/misc/lazy_attribute.pyx @@ -66,8 +66,8 @@ cdef class _lazy_attribute(): sage: Parent.element_class - sage: Parent.element_class.__doc__[91:147] - 'The (default) class for the elements of this parent\n\n ' + sage: "The (default) class for the elements of this parent" in Parent.element_class.__doc__ + True sage: Parent.element_class.__name__ 'element_class' sage: Parent.element_class.__module__ diff --git a/src/sage/misc/nested_class.pyx b/src/sage/misc/nested_class.pyx index e397b356c22..5691a0864f4 100644 --- a/src/sage/misc/nested_class.pyx +++ b/src/sage/misc/nested_class.pyx @@ -335,7 +335,7 @@ class MainClass(object, metaclass=NestedClassMetaclass): sage: from sage.misc.nested_class import MainClass sage: print(MainClass.NestedClass.NestedSubClass.dummy.__doc__) NestedSubClass.dummy(self, x, *args, r=(1, 2, 3.4), **kwds) - File: sage/misc/nested_class.pyx (starting at line ...) + File: ...sage/misc/nested_class.pyx (starting at line ...) A dummy method to demonstrate the embedding of method signature for nested classes. diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py index 2632d0c4359..1b1a4516e42 100644 --- a/src/sage/misc/sagedoc.py +++ b/src/sage/misc/sagedoc.py @@ -653,10 +653,7 @@ def format(s, embedded=False): EXAMPLES:: sage: from sage.misc.sagedoc import format - sage: identity_matrix(2).rook_vector.__doc__[191:263] # needs sage.modules - 'Let `A` be an `m` by `n` (0,1)-matrix. We identify `A` with a chessboard' - - sage: format(identity_matrix(2).rook_vector.__doc__[191:263]) # needs sage.modules + sage: format('Let `A` be an `m` by `n` (0,1)-matrix. We identify `A` with a chessboard') 'Let A be an m by n (0,1)-matrix. We identify A with a chessboard\n' If the first line of the string is 'nodetex', remove 'nodetex' but diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py index 4d7c3f9c19c..42d8dbb05e9 100644 --- a/src/sage/misc/sageinspect.py +++ b/src/sage/misc/sageinspect.py @@ -343,7 +343,7 @@ def _extract_embedded_signature(docstring, name): sage: from sage.misc.sageinspect import _extract_embedded_signature sage: from sage.misc.nested_class import MainClass sage: print(_extract_embedded_signature(MainClass.NestedClass.NestedSubClass.dummy.__doc__, 'dummy')[0]) - File: sage/misc/nested_class.pyx (starting at line ...) + File: ...sage/misc/nested_class.pyx (starting at line ...) ... sage: _extract_embedded_signature(MainClass.NestedClass.NestedSubClass.dummy.__doc__, 'dummy')[1] FullArgSpec(args=['self', 'x', 'r'], varargs='args', varkw='kwds', defaults=((1, 2, 3.4),), kwonlyargs=[], kwonlydefaults=None, annotations={}) @@ -1952,7 +1952,7 @@ def _sage_getdoc_unformatted(obj): sage: from sage.misc.sageinspect import _sage_getdoc_unformatted sage: print(_sage_getdoc_unformatted(sage.rings.integer.Integer)) Integer(x=None, base=0) - File: sage/rings/integer.pyx (starting at line ...) + File: ...sage/rings/integer.pyx (starting at line ...) The :class:`Integer` class represents arbitrary precision integers. It derives from the :class:`Element` class, so diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py index 4ddb8aa94a3..5f38467caff 100644 --- a/src/sage/repl/interpreter.py +++ b/src/sage/repl/interpreter.py @@ -80,7 +80,7 @@ ZeroDivisionError...Traceback (most recent call last) ... ----> 1 Integer(1)/Integer(0) - .../sage/rings/integer.pyx... in sage.rings.integer.Integer...div... + ...integer.pyx... in sage.rings.integer.Integer...div... ... -> ... raise ZeroDivisionError("rational division by zero") ....: x = Rational.__new__(Rational) diff --git a/src/sage/structure/coerce.pyx b/src/sage/structure/coerce.pyx index 1e7c4dd1a49..5f8d4676cae 100644 --- a/src/sage/structure/coerce.pyx +++ b/src/sage/structure/coerce.pyx @@ -680,7 +680,7 @@ cdef class CoercionModel: sage: cm.record_exceptions() sage: cm._test_exception_stack() sage: cm.exception_stack() - ['Traceback (most recent call last):\n File "sage/structure/coerce.pyx", line ...TypeError: just a test'] + ['Traceback (most recent call last):\n File "...coerce.pyx", line ...TypeError: just a test'] sage: cm.record_exceptions(False) sage: cm._test_exception_stack() sage: cm.exception_stack() @@ -708,7 +708,7 @@ cdef class CoercionModel: [] sage: cm._test_exception_stack() sage: cm.exception_stack() - ['Traceback (most recent call last):\n File "sage/structure/coerce.pyx", line ...TypeError: just a test'] + ['Traceback (most recent call last):\n File "...coerce.pyx", line ...TypeError: just a test'] The function _test_exception_stack is executing the following code:: @@ -738,7 +738,7 @@ cdef class CoercionModel: [] sage: cm._test_exception_stack() sage: cm.exception_stack() - ['Traceback (most recent call last):\n File "sage/structure/coerce.pyx", line ...TypeError: just a test'] + ['Traceback (most recent call last):\n File "...coerce.pyx", line ...TypeError: just a test'] """ try: raise TypeError("just a test") From d19ce8072812527a100651725e5eb41f43a54d54 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 05:59:24 +0000 Subject: [PATCH 096/161] Update meson file of sets --- src/sage/sets/meson.build | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/sage/sets/meson.build b/src/sage/sets/meson.build index bf7a80d39bf..21a5d244f32 100644 --- a/src/sage/sets/meson.build +++ b/src/sage/sets/meson.build @@ -3,16 +3,20 @@ py.install_sources( 'all__sagemath_objects.py', 'cartesian_product.py', 'condition_set.py', + 'disjoint_set.pxd', 'disjoint_union_enumerated_sets.py', - 'family.py', + 'family.pxd', 'finite_enumerated_set.py', + 'finite_set_map_cy.pxd', 'finite_set_maps.py', 'image_set.py', 'integer_range.py', 'non_negative_integers.py', 'positive_integers.py', 'primes.py', + 'pythonclass.pxd', 'real_set.py', + 'recursively_enumerated_set.pxd', 'set.py', 'set_from_iterator.py', 'totally_ordered_finite_set.py', @@ -21,6 +25,7 @@ py.install_sources( extension_data = { 'disjoint_set': files('disjoint_set.pyx'), + 'family': files('family.pyx'), 'finite_set_map_cy': files('finite_set_map_cy.pyx'), 'pythonclass': files('pythonclass.pyx'), 'recursively_enumerated_set': files('recursively_enumerated_set.pyx'), From 192c26b89535da9c4d246fd607bf3f3bdba84302 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 06:09:23 +0000 Subject: [PATCH 097/161] Revert "Remove old warning about sage.gaprc" This reverts commit 395c310fbc0c4482dfe05c0ee5915431fa21160f. --- src/sage/libs/gap/util.pyx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sage/libs/gap/util.pyx b/src/sage/libs/gap/util.pyx index e7bf10c2593..8685dc08fa5 100644 --- a/src/sage/libs/gap/util.pyx +++ b/src/sage/libs/gap/util.pyx @@ -251,7 +251,10 @@ cdef initialize() noexcept: # Get the path to the sage.gaprc file and check that it exists sage_gaprc = os.path.join(os.path.dirname(__file__), 'sage.gaprc') - if os.path.exists(sage_gaprc): + if not os.path.exists(sage_gaprc): + warnings.warn(f"Sage's GAP initialization file {sage_gaprc} is " + "is missing; some functionality may be limited") + else: sage_gaprc = str_to_bytes(sage_gaprc, FS_ENCODING, "surrogateescape") argv[argc] = sage_gaprc argc += 1 From 88b6eddc70c7b70ad442818da85e8199405e6923 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 06:39:53 +0000 Subject: [PATCH 098/161] fix farey header import --- src/sage/modular/arithgroup/meson.build | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index ccaa0dc3811..e642bf49b0d 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -1,4 +1,3 @@ -inc_farey = meson.current_build_dir() py.install_sources( 'all.py', 'arithgroup_generic.py', @@ -46,8 +45,7 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/modular/arithgroup', install: true, override_options : ['cython_language=cpp'], - cpp_args: ['-I', inc_farey], - include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_rings, inc_src], dependencies: [py_dep, cysignals, flint, gmp, gmpxx], ) endforeach From cea7fd7762eda93c60b666c786e291bc9b0e4648 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 07:02:49 +0000 Subject: [PATCH 099/161] Print more infos during ci --- .github/workflows/ci-meson.yml | 2 +- src/doc/en/developer/meson.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index f3af009c22b..df088edc6e8 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -77,7 +77,7 @@ jobs: - name: Build shell: bash -l {0} run: | - pip install --no-build-isolation --config-settings=builddir=builddir . + pip install --no-build-isolation --config-settings=builddir=builddir . -v - name: Test shell: bash -l {0} diff --git a/src/doc/en/developer/meson.rst b/src/doc/en/developer/meson.rst index c1e62a5767b..e373b90c4eb 100644 --- a/src/doc/en/developer/meson.rst +++ b/src/doc/en/developer/meson.rst @@ -14,7 +14,7 @@ or ``for f in src/**/*.so ; do mv "$f" "$f.old"; done`` To compile and install the project in editable install, just use ```bash - pip install --no-build-isolation --config-settings=builddir=builddir --editable . + pip install --no-build-isolation --config-settings=builddir=builddir --editable -v . ``` Under the hood, pip invokes meson to configure and build the project. From d2440c75890d6e160543a5d38d34669ffc56761b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 07:03:16 +0000 Subject: [PATCH 100/161] Implement gap root discovery in meson --- src/sage/libs/gap/meson.build | 1 + src/sage/meson.build | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/src/sage/libs/gap/meson.build b/src/sage/libs/gap/meson.build index b917e5c7bee..6256bb82f19 100644 --- a/src/sage/libs/gap/meson.build +++ b/src/sage/libs/gap/meson.build @@ -8,6 +8,7 @@ py.install_sources( 'gap_globals.py', 'gap_includes.pxd', 'operations.py', + 'sage.gaprc', 'saved_workspace.py', 'test.py', 'test_long.py', diff --git a/src/sage/meson.build b/src/sage/meson.build index 980a62e3e35..43fc0332b92 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -34,6 +34,13 @@ if openmp.found() conf_data.set('OPENMP_CFLAGS', '-fopenmp') conf_data.set('OPENMP_CXXFLAGS', '-fopenmp') endif +gap_exe = find_program('gap') +if gap_exe.found() + gaprun = run_command(gap_exe, '-r', '-q', '--bare', '--nointeract', '-c', 'Display(JoinStringsWithSeparator(GAPInfo.RootPaths,";"));', check: true) + gap_root_paths = gaprun.stdout().strip() + gap_root_paths = '${prefix}/lib/gap;${prefix}/share/gap;' + gaprun.stdout().strip() +endif +conf_data.set('GAP_ROOT_PATHS', gap_root_paths) configure_file( input: '../../pkgs/sage-conf_conda/_sage_conf/_conf.py.in', From 88b8b4786446c3927ffa0fe1eef3662fd56fda0f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 07:03:30 +0000 Subject: [PATCH 101/161] Install missing directory --- src/sage/libs/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index 6833380ac11..a19f4b023fa 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -75,6 +75,7 @@ subdir('lcalc') subdir('linbox') install_subdir('linkages', install_dir: sage_install_dir / 'libs') install_subdir('lrcalc', install_dir: sage_install_dir / 'libs') +install_subdir('mpfr', install_dir: sage_install_dir / 'libs') subdir('mpmath') install_subdir('mwrank', install_dir: sage_install_dir / 'libs') subdir('ntl') From 987964625b2fad01995aa05f0b40ddd1fea11e44 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 07:04:08 +0000 Subject: [PATCH 102/161] fix failing test --- src/sage/repl/interpreter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py index 5f38467caff..c5e7c3ae49a 100644 --- a/src/sage/repl/interpreter.py +++ b/src/sage/repl/interpreter.py @@ -80,6 +80,7 @@ ZeroDivisionError...Traceback (most recent call last) ... ----> 1 Integer(1)/Integer(0) + ... ...integer.pyx... in sage.rings.integer.Integer...div... ... -> ... raise ZeroDivisionError("rational division by zero") From 2e44f4f2b3e69d31f77c5a1e64a6909bac2b843d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 07:24:55 +0000 Subject: [PATCH 103/161] docs: uninstall other sage packages --- src/doc/en/developer/meson.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/doc/en/developer/meson.rst b/src/doc/en/developer/meson.rst index e373b90c4eb..7929dbcb4eb 100644 --- a/src/doc/en/developer/meson.rst +++ b/src/doc/en/developer/meson.rst @@ -8,7 +8,8 @@ Assume we're starting from a clean repo and a fully set up conda environment:: (Note, that in the codespace environment you first have to delete the already compiled files, e.g. with ``shopt -s globstar`` followed by ``rm src/**/*.so`` -or ``for f in src/**/*.so ; do mv "$f" "$f.old"; done`` +or ``for f in src/**/*.so ; do mv "$f" "$f.old"; done``. +Also uninstall the 'old' sage packages with `` pip uninstall sage-conf sage-setup sagemath-standard``. ) To compile and install the project in editable install, just use From 6a5a8da1192118e3e07ac0bb5c24c85bccc4693d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 08:37:40 +0000 Subject: [PATCH 104/161] include missing cython source file --- src/sage/rings/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 473eb734cd3..3559d7b0471 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -40,6 +40,7 @@ py.install_sources( 'integer_fake.h', 'integer_fake.pxd', 'integer_ring.pxd', + 'integer_ring.pyx', 'laurent_series_ring.py', 'laurent_series_ring_element.pxd', 'lazy_series.py', From 1ab5f9e6a104db6f6a4532b2a4ff75f6a94e18f5 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 19 Dec 2023 13:30:14 +0000 Subject: [PATCH 105/161] Install missing file in groups --- src/sage/groups/meson.build | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sage/groups/meson.build b/src/sage/groups/meson.build index 648a9666b0b..495e4c48415 100644 --- a/src/sage/groups/meson.build +++ b/src/sage/groups/meson.build @@ -12,7 +12,9 @@ py.install_sources( 'fqf_orthogonal.py', 'free_group.py', 'galois_group.py', + 'galois_group_perm.py', 'generic.py', + 'group.pxd', 'group_exp.py', 'group_semidirect_product.py', 'groups_catalog.py', @@ -21,6 +23,8 @@ py.install_sources( 'libgap_group.py', 'libgap_mixin.py', 'libgap_morphism.py', + 'libgap_wrapper.pxd', + 'old.pxd', 'pari_group.py', 'raag.py', subdir: 'sage/groups', From 7891c11c948f8f8e5ee8d462598e4a2570584284 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 08:34:42 +0000 Subject: [PATCH 106/161] Remove unused setuptools versioning in pyproject.toml --- pyproject.toml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1d197d695b2..50b5d087d92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,6 +5,3 @@ requires = ['meson-python', 'cython>=3.0.0'] [project] name = 'sagemath' dynamic = ["version"] - -[tool.setuptools.dynamic] -version = {file = ["VERSION.txt"]} From ff6810361f2a2111a2c61fec181522b229ed5e45 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 08:41:48 +0000 Subject: [PATCH 107/161] Fix bug with Cython source code not appearing in tracebacks --- src/sage/repl/interpreter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/repl/interpreter.py b/src/sage/repl/interpreter.py index c5e7c3ae49a..16fa6b02ef6 100644 --- a/src/sage/repl/interpreter.py +++ b/src/sage/repl/interpreter.py @@ -74,7 +74,7 @@ sage: from sage.repl.interpreter import get_test_shell sage: shell = get_test_shell() - sage: print("dummy line"); shell.run_cell('1/0') # see #25320 for the reason of the `...` and the dummy line in this test + sage: print("dummy line"); shell.run_cell('1/0') # known bug (meson doesn't include the Cython source code) # see #25320 for the reason of the `...` and the dummy line in this test dummy line ... ZeroDivisionError...Traceback (most recent call last) From 87938522619e9a743094ee36e967cb9e20660d64 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 08:48:21 +0000 Subject: [PATCH 108/161] Fix runtime problem with lie algebras --- src/sage/algebras/finite_dimensional_algebras/meson.build | 1 + src/sage/algebras/fusion_rings/meson.build | 4 ++++ src/sage/algebras/letterplace/meson.build | 2 ++ src/sage/algebras/lie_algebras/meson.build | 2 ++ src/sage/algebras/meson.build | 3 +++ src/sage/algebras/quatalg/meson.build | 1 + 6 files changed, 13 insertions(+) diff --git a/src/sage/algebras/finite_dimensional_algebras/meson.build b/src/sage/algebras/finite_dimensional_algebras/meson.build index 82905b4f663..66cc5ec37dc 100644 --- a/src/sage/algebras/finite_dimensional_algebras/meson.build +++ b/src/sage/algebras/finite_dimensional_algebras/meson.build @@ -1,6 +1,7 @@ py.install_sources( 'all.py', 'finite_dimensional_algebra.py', + 'finite_dimensional_algebra_element.pxd', 'finite_dimensional_algebra_ideal.py', 'finite_dimensional_algebra_morphism.py', subdir: 'sage/algebras/finite_dimensional_algebras', diff --git a/src/sage/algebras/fusion_rings/meson.build b/src/sage/algebras/fusion_rings/meson.build index 1e4abfb33ec..aa113b3f9b0 100644 --- a/src/sage/algebras/fusion_rings/meson.build +++ b/src/sage/algebras/fusion_rings/meson.build @@ -1,8 +1,12 @@ py.install_sources( 'all.py', 'f_matrix.py', + 'fast_parallel_fmats_methods.pxd', + 'fast_parallel_fusion_ring_braid_repn.pxd', 'fusion_double.py', 'fusion_ring.py', + 'poly_tup_engine.pxd', + 'shm_managers.pxd', subdir: 'sage/algebras/fusion_rings', ) diff --git a/src/sage/algebras/letterplace/meson.build b/src/sage/algebras/letterplace/meson.build index 213d8b05aaf..5437e721483 100644 --- a/src/sage/algebras/letterplace/meson.build +++ b/src/sage/algebras/letterplace/meson.build @@ -1,5 +1,7 @@ py.install_sources( 'all.py', + 'free_algebra_element_letterplace.pxd', + 'free_algebra_letterplace.pxd', subdir: 'sage/algebras/letterplace', ) diff --git a/src/sage/algebras/lie_algebras/meson.build b/src/sage/algebras/lie_algebras/meson.build index 72a44793891..f151799266e 100644 --- a/src/sage/algebras/lie_algebras/meson.build +++ b/src/sage/algebras/lie_algebras/meson.build @@ -8,12 +8,14 @@ py.install_sources( 'free_lie_algebra.py', 'heisenberg.py', 'lie_algebra.py', + 'lie_algebra_element.pxd', 'morphism.py', 'nilpotent_lie_algebra.py', 'onsager.py', 'poincare_birkhoff_witt.py', 'quotient.py', 'rank_two_heisenberg_virasoro.py', + 'representation.py', 'structure_coefficients.py', 'subalgebra.py', 'symplectic_derivation.py', diff --git a/src/sage/algebras/meson.build b/src/sage/algebras/meson.build index be482e9d38f..dabac117a84 100644 --- a/src/sage/algebras/meson.build +++ b/src/sage/algebras/meson.build @@ -7,9 +7,11 @@ py.install_sources( 'catalog.py', 'cellular_basis.py', 'clifford_algebra.py', + 'clifford_algebra_element.pxd', 'cluster_algebra.py', 'commutative_dga.py', 'down_up_algebra.py', + 'exterior_algebra_groebner.pxd', 'finite_gca.py', 'free_algebra.py', 'free_algebra_element.py', @@ -21,6 +23,7 @@ py.install_sources( 'iwahori_hecke_algebra.py', 'jordan_algebra.py', 'nil_coxeter_algebra.py', + 'octonion_algebra.pxd', 'orlik_solomon.py', 'orlik_terao.py', 'q_commuting_polynomials.py', diff --git a/src/sage/algebras/quatalg/meson.build b/src/sage/algebras/quatalg/meson.build index 36dc9f57077..86f2d2fcf04 100644 --- a/src/sage/algebras/quatalg/meson.build +++ b/src/sage/algebras/quatalg/meson.build @@ -1,6 +1,7 @@ py.install_sources( 'all.py', 'quaternion_algebra.py', + 'quaternion_algebra_element.pxd', subdir: 'sage/algebras/quatalg', ) From f93063456fd11d373d94b306e005b34148f8c71e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 09:31:44 +0000 Subject: [PATCH 109/161] Cleanup meson files --- meson.build | 33 +++++----- src/meson.build | 168 ++++++++---------------------------------------- 2 files changed, 45 insertions(+), 156 deletions(-) diff --git a/meson.build b/meson.build index b5ef4dc0d06..26db7085579 100644 --- a/meson.build +++ b/meson.build @@ -17,21 +17,22 @@ cc = meson.get_compiler('c') cpp = meson.get_compiler('cpp') cython = meson.get_compiler('cython') -# py_with_pytest = py_module.find_installation(required: false, modules: ['pytest']) -# if py_with_pytest.found() -# test( -# 'pytest', -# py_with_pytest, -# args: [ -# '-m', -# 'pytest', -# '-c', -# meson.current_source_dir() / 'tox.ini', -# '--doctest-modules', -# meson.current_source_dir() / 'src' / 'sage' / 'categories' -# ], -# timeout: 0, -# ) -# endif +# Additional targets +py_with_pytest = py_module.find_installation(required: false, modules: ['pytest']) +if py_with_pytest.found() + test( + 'pytest', + py_with_pytest, + args: [ + '-m', + 'pytest', + '-c', + meson.current_source_dir() / 'tox.ini', + '--doctest', + meson.current_source_dir() / 'src' / 'sage' / 'categories' + ], + timeout: 0, + ) +endif subdir('src') diff --git a/src/meson.build b/src/meson.build index 50ae0191a88..9881f0f4b6d 100644 --- a/src/meson.build +++ b/src/meson.build @@ -56,155 +56,43 @@ print(cypari2.__file__.replace('__init__.py', '')) cypari2 = declare_dependency( include_directories: inc_cypari2, ) -pari = declare_dependency( - dependencies: [ - cc.find_library('pari'), - ] -) +pari = cc.find_library('pari') -mpfr = declare_dependency( - dependencies: [ - cc.find_library('mpfr'), - ] -) +mpfr = cc.find_library('mpfr') # Cannot be found by pkg-config -flint = declare_dependency( - dependencies: [ - cc.find_library('flint'), - ] -) +flint = cc.find_library('flint') cblas = dependency('cblas') gsl = dependency('gsl', fallback: ['gsl', 'gsl_dep'], version : '>=2.5', required: true) -gd = declare_dependency( - dependencies: [ - cc.find_library('gd'), - ] -) -iml = declare_dependency( - dependencies: [ - cc.find_library('iml'), - ] -) -m = declare_dependency( - dependencies: [ - cc.find_library('m'), - ] -) -m4ri = declare_dependency( - dependencies: [ - cc.find_library('m4ri'), - ] -) -m4rie = declare_dependency( - dependencies: [ - cc.find_library('m4rie'), - ] -) -mtx = declare_dependency( - dependencies: [ - cc.find_library('mtx', required: false), - ] -) -png = declare_dependency( - dependencies: [ - cc.find_library('png'), - ] -) -zlib = declare_dependency( - dependencies: [ - cc.find_library('z'), - ] -) -intl = declare_dependency( - dependencies: [ - cc.find_library('intl', required: false), - ] -) -curl = declare_dependency( - dependencies: [ - cc.find_library('curl'), - ] -) +gd = cc.find_library('gd') +iml = cc.find_library('iml') +m = cc.find_library('m') +m4ri = cc.find_library('m4ri') +m4rie = cc.find_library('m4rie') +mtx = cc.find_library('mtx', required: false) +png = cc.find_library('png') +zlib = cc.find_library('z') +intl = cc.find_library('intl', required: false) +curl = cc.find_library('curl') # Cannot be found via pkg-config -ec = declare_dependency( - dependencies: [ - cc.find_library('ec'), - ] -) -ecm = declare_dependency( - dependencies: [ - cc.find_library('ecm'), - ] -) +ec = cc.find_library('ec') +ecm = cc.find_library('ecm') # Cannot be found via pkg-config glpk = cc.find_library('glpk') -ppl = declare_dependency( - dependencies: [ - cc.find_library('ppl'), - ] -) -gmpxx = declare_dependency( - dependencies: [ - cc.find_library('gmpxx'), - ] -) -readline = declare_dependency( - dependencies: [ - cc.find_library('readline'), - ] -) -lfunction = declare_dependency( - dependencies: [ - cc.find_library('Lfunction', required: false), - ] -) -fflas = declare_dependency( - dependencies: [ - cc.find_library('fflas'), - ] -) -givaro = declare_dependency( - dependencies: [ - cc.find_library('givaro'), - ] -) -linbox = declare_dependency( - dependencies: [ - cc.find_library('linbox'), - ] -) -braiding = declare_dependency( - dependencies: [ - cc.find_library('braiding'), - ] -) -gc = declare_dependency( - dependencies: [ - cc.find_library('gc'), - ] -) -homfly = declare_dependency( - dependencies: [ - cc.find_library('homfly'), - ] -) -mpc = declare_dependency( - dependencies: [ - cc.find_library('mpc'), - ] -) -mpfi = declare_dependency( - dependencies: [ - cc.find_library('mpfi'), - ] -) -mpc = declare_dependency( - dependencies: [ - cc.find_library('mpc'), - ] -) +ppl = cc.find_library('ppl') +gmpxx = cc.find_library('gmpxx') +readline = cc.find_library('readline') +lfunction = cc.find_library('Lfunction', required: false) +fflas = cc.find_library('fflas') +givaro = cc.find_library('givaro') +linbox = cc.find_library('linbox') +braiding = cc.find_library('braiding') +gc = cc.find_library('gc') +homfly = cc.find_library('homfly') +mpc = cc.find_library('mpc') +mpfi = cc.find_library('mpfi') +mpc = cc.find_library('mpc') # Cannot be found via pkg-config gap = cc.find_library('gap') From 866000e0acc91822ae56046221f30338868fd070 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 10:44:07 +0000 Subject: [PATCH 110/161] Update documentation --- src/doc/en/developer/meson.rst | 41 ----------- src/doc/en/installation/meson.rst | 113 +++++++++++++++++++++++++++++ src/doc/en/installation/source.rst | 6 ++ 3 files changed, 119 insertions(+), 41 deletions(-) delete mode 100644 src/doc/en/developer/meson.rst create mode 100644 src/doc/en/installation/meson.rst diff --git a/src/doc/en/developer/meson.rst b/src/doc/en/developer/meson.rst deleted file mode 100644 index 7929dbcb4eb..00000000000 --- a/src/doc/en/developer/meson.rst +++ /dev/null @@ -1,41 +0,0 @@ -Assume we're starting from a clean repo and a fully set up conda environment:: - - ```bash - ./bootstrap-conda - mamba env create --file src/environment-dev-3.11.yml --name sage-dev - conda activate sage-dev - ``` - -(Note, that in the codespace environment you first have to delete the -already compiled files, e.g. with ``shopt -s globstar`` followed by ``rm src/**/*.so`` -or ``for f in src/**/*.so ; do mv "$f" "$f.old"; done``. -Also uninstall the 'old' sage packages with `` pip uninstall sage-conf sage-setup sagemath-standard``. -) - -To compile and install the project in editable install, just use - - ```bash - pip install --no-build-isolation --config-settings=builddir=builddir --editable -v . - ``` - -Under the hood, pip invokes meson to configure and build the project. -We can also use meson directly as follows. - -Now to configure the project, we need to run the following commands:: - - ```bash - meson setup builddir - ``` - -This will create a build directory ``builddir`` that will hold the build artifacts. -To compile the project, run the following command:: - - ```bash - meson compile -C builddir - ``` - -Installing the project is done with the following command:: - - ```bash - meson install -C builddir - ``` diff --git a/src/doc/en/installation/meson.rst b/src/doc/en/installation/meson.rst new file mode 100644 index 00000000000..2eae02994b4 --- /dev/null +++ b/src/doc/en/installation/meson.rst @@ -0,0 +1,113 @@ +.. _build-source-meson: + +================================ +Building from source using Meson +================================ + +This is a short guide on how to build the Sage from source using Meson. + +Walkthrough +=========== + +Assume we're starting from a clean repo and a fully set up conda environment:: + + ```bash + ./bootstrap-conda + mamba env create --file src/environment-dev-3.11.yml --name sage-dev + conda activate sage-dev + ``` + +Alternatively, install all build requirements as described in section +:ref:`_section-prereqs`. + +.. NOTE:: + + If you have previously build Sage in-place, you first have to delete the + already compiled files, e.g. with ``shopt -s globstar`` followed by + ``rm src/**/*.so`` or ``for f in src/**/*.so ; do mv "$f" "$f.old"; done``. + Also uninstall the 'old' sage packages with ``pip uninstall sage-conf sage-setup sagemath-standard``. + +Generate a few files that are needed for the build process:: + + ```bash + python -m sage_setup.autogen.interpreters src/sage/ext/interpreters + ``` + +To compile and install the project in editable install, just use:: + + ```bash + pip install --no-build-isolation --editable . + ``` + +This will install Sage in the current Python environment. You can then start +Sage from the command line with ``./sage`` or run the tests with ``./sage -t``. + +.. NOTE:: + + By using ``pip install --editable`` in the above steps, the Sage library + is installed in editable mode. This means that when you only edit source + files, there is no need to rebuild the library; it suffices to restart Sage. + Note that this even works when you edit Cython files, so you no longer need + to manually compile after editing Cython files. + +.. NOTE:: + + Note that ``make`` is not used at all, nor is ``configure``. + This means that any Sage-the-distribution commands such as ``sage -i`` + will not work. + +Background information +====================== + +Under the hood, pip invokes meson to configure and build the project. +We can also use meson directly as follows. + +To configure the project, we need to run the following command:: + + ```bash + meson setup builddir --prefix=$PWD/build-install + ``` + +This will create a build directory ``builddir`` that will hold the build artifacts. +The ``--prefix`` option specifies the directory where the Sage will be installed. +To compile the project, run the following command:: + + ```bash + meson compile -C builddir + ``` + +Installing is done with the following command:: + + ```bash + meson install -C builddir + ``` + +This will then install in the directory specified by ``--prefix``, e.g. +`build-install/lib/python3.11/site-packages/sage`. +Usually, this directory is not on your Python path, so you have to use:: + + ```bash + PYTHONPATH=build-install/lib/python3.11/site-packages ./sage + ``` + +Alternatively, we can still use pip to install:: + + ```bash + pip install --no-build-isolation --config-settings=builddir=builddir --editable . + ``` + +.. tip:: + + Package maintainers may want to specify further build options or need + to install to a different directory than the install prefix. + Both are supported naturally by Meson:: + + ```bash + meson setup builddir --prefix=/usr --libdir=... -Dcpp_args=... + meson compile -C builddir + DESTDIR=/path/to/staging/root meson install -C builddir + ``` + + See `Meson's quick guide `_ + and `Meson's install guide `_ + for more information. diff --git a/src/doc/en/installation/source.rst b/src/doc/en/installation/source.rst index ebe8f38cb15..c39acf13ea9 100644 --- a/src/doc/en/installation/source.rst +++ b/src/doc/en/installation/source.rst @@ -373,6 +373,12 @@ does not raise an :class:`ImportError`, then it worked. Installation steps ------------------ +.. hint:: + + The following steps use the classical ``./configure && make`` build + process. The modern Meson build system is also supported, see + :ref:`_build-source-meson`. + #. Follow the procedure in the file `README.md `_ in ``SAGE_ROOT``. From dbef9cc3faf29cb43a4a225dfcf18fa6a0b4609c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 10:50:21 +0000 Subject: [PATCH 111/161] Add meson as an installation option in table of contents --- src/doc/en/installation/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/src/doc/en/installation/index.rst b/src/doc/en/installation/index.rst index 50d0af27341..c4240be19e3 100644 --- a/src/doc/en/installation/index.rst +++ b/src/doc/en/installation/index.rst @@ -149,6 +149,7 @@ More information: binary conda source + meson launching troubles From 1174548f21149350a826357ef70db53fa73974d0 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 11:07:37 +0000 Subject: [PATCH 112/161] Use ccache action --- .github/workflows/ci-meson.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index df088edc6e8..5a2df82dea9 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -45,9 +45,9 @@ jobs: ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11.yml') }} - name: Compiler cache - uses: actions/cache@v3 + uses: hendrikmuhs/ccache-action@v1.2 with: - path: ${{ github.workspace }}/.ccache + create-symlink: true key: ${{ runner.os }}-meson-${{ matrix.python }}-${{ github.run_id }} restore-keys: ${{ runner.os }}-meson-${{ matrix.python }}- From 52f0032c3131ffba310c0ad61582aaf6cec5e9e3 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 11:45:09 +0000 Subject: [PATCH 113/161] Add ccache to project compilers as workaround --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 26db7085579..d330672610e 100644 --- a/meson.build +++ b/meson.build @@ -1,10 +1,11 @@ project( 'SageMath', - ['c', 'cpp', 'cython'], + ['ccache','c', 'cpp', 'cython'], version: files('src/VERSION.txt'), license: 'GPL v3', meson_version: '>= 1.2.0', ) +# Have to specify ccache explicitly for now: https://github.com/mesonbuild/meson/issues/12612 # Python module # https://mesonbuild.com/Python-module.html From 76c36e3212e4759176ef67377b246b71853b4da8 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 11:55:59 +0000 Subject: [PATCH 114/161] Remove ccache from conda env --- bootstrap-conda | 1 - 1 file changed, 1 deletion(-) diff --git a/bootstrap-conda b/bootstrap-conda index bf1126c43d9..ea30ae0b772 100755 --- a/bootstrap-conda +++ b/bootstrap-conda @@ -100,7 +100,6 @@ echo >&2 $0:$LINENO: generate conda environment files sed 's/name: sage-build/name: sage/' environment-template.yml echo " - meson" echo " - meson-python" - echo " - ccache" echo " - pytest" echo " # Additional packages providing all dependencies for the Sage library" for pkg in $SAGELIB_SYSTEM_PACKAGES; do From ad1b8a7d0d4a3e9f9a980cabb21a50596ddecf45 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 12:37:35 +0000 Subject: [PATCH 115/161] Update ccache-action to use main branch --- .github/workflows/ci-meson.yml | 2 +- meson.build | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 5a2df82dea9..a839dc063c2 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -45,7 +45,7 @@ jobs: ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11.yml') }} - name: Compiler cache - uses: hendrikmuhs/ccache-action@v1.2 + uses: hendrikmuhs/ccache-action@main with: create-symlink: true key: ${{ runner.os }}-meson-${{ matrix.python }}-${{ github.run_id }} diff --git a/meson.build b/meson.build index d330672610e..26db7085579 100644 --- a/meson.build +++ b/meson.build @@ -1,11 +1,10 @@ project( 'SageMath', - ['ccache','c', 'cpp', 'cython'], + ['c', 'cpp', 'cython'], version: files('src/VERSION.txt'), license: 'GPL v3', meson_version: '>= 1.2.0', ) -# Have to specify ccache explicitly for now: https://github.com/mesonbuild/meson/issues/12612 # Python module # https://mesonbuild.com/Python-module.html From 482dd0d0bccc5154980799bd5a72176f8dfd24fe Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 13:25:11 +0000 Subject: [PATCH 116/161] Explicitly set path to ccache --- .github/workflows/ci-meson.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index a839dc063c2..abc9d031732 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -45,9 +45,8 @@ jobs: ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11.yml') }} - name: Compiler cache - uses: hendrikmuhs/ccache-action@main + uses: hendrikmuhs/ccache-action@1.2 with: - create-symlink: true key: ${{ runner.os }}-meson-${{ matrix.python }}-${{ github.run_id }} restore-keys: ${{ runner.os }}-meson-${{ matrix.python }}- @@ -77,6 +76,7 @@ jobs: - name: Build shell: bash -l {0} run: | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" pip install --no-build-isolation --config-settings=builddir=builddir . -v - name: Test From 7943da698a1c5a81b9bd312274183a262b681806 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 13:47:00 +0000 Subject: [PATCH 117/161] Fix ccache-action version --- .github/workflows/ci-meson.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index abc9d031732..ee90e8ad7ea 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -45,7 +45,7 @@ jobs: ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11.yml') }} - name: Compiler cache - uses: hendrikmuhs/ccache-action@1.2 + uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ runner.os }}-meson-${{ matrix.python }}-${{ github.run_id }} restore-keys: ${{ runner.os }}-meson-${{ matrix.python }}- From e8ae9cffd8289d70e0b772d32e071f232321abe7 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 30 Dec 2023 16:22:34 +0000 Subject: [PATCH 118/161] Update build configuration to force use ccache --- .github/workflows/ci-meson.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index ee90e8ad7ea..d9378eab527 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -77,6 +77,8 @@ jobs: shell: bash -l {0} run: | export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" + export CC="ccache $CC" + export CXX="ccache $CXX" pip install --no-build-isolation --config-settings=builddir=builddir . -v - name: Test From 634512b1a73417e8a454e09c6fee332d9c190e80 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 31 Dec 2023 06:38:09 +0000 Subject: [PATCH 119/161] Fix reference to section-prereqs in meson.rst --- src/doc/en/installation/meson.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/en/installation/meson.rst b/src/doc/en/installation/meson.rst index 2eae02994b4..d2179bf8fe2 100644 --- a/src/doc/en/installation/meson.rst +++ b/src/doc/en/installation/meson.rst @@ -18,7 +18,7 @@ Assume we're starting from a clean repo and a fully set up conda environment:: ``` Alternatively, install all build requirements as described in section -:ref:`_section-prereqs`. +:ref:`section-prereqs`. .. NOTE:: From 1c47bcdbcf19b65d60b7d1f624f534dd4e2ba102 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 31 Dec 2023 09:14:26 +0000 Subject: [PATCH 120/161] Fix broken link in installation instructions --- src/doc/en/installation/source.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/en/installation/source.rst b/src/doc/en/installation/source.rst index c39acf13ea9..3e74447146e 100644 --- a/src/doc/en/installation/source.rst +++ b/src/doc/en/installation/source.rst @@ -377,7 +377,7 @@ Installation steps The following steps use the classical ``./configure && make`` build process. The modern Meson build system is also supported, see - :ref:`_build-source-meson`. + :ref:`build-source-meson`. #. Follow the procedure in the file `README.md `_ in ``SAGE_ROOT``. From 46bc6b4279c47c3f12c7da29f309b053a5cdb17c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 31 Dec 2023 09:21:43 +0000 Subject: [PATCH 121/161] Fix ccache restore key --- .github/workflows/ci-meson.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index d9378eab527..670be87a152 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -47,8 +47,7 @@ jobs: - name: Compiler cache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ${{ runner.os }}-meson-${{ matrix.python }}-${{ github.run_id }} - restore-keys: ${{ runner.os }}-meson-${{ matrix.python }}- + key: ${{ runner.os }}-meson-${{ matrix.python }} - name: Setup Conda environment uses: conda-incubator/setup-miniconda@v2 From 37e9d49cf65a83ef0926644aa21ed85aff9fde95 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 16 Jan 2024 05:57:31 +0000 Subject: [PATCH 122/161] Update flint meson file --- src/sage/libs/flint/meson.build | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build index 807e2d09f7b..88d8a479603 100644 --- a/src/sage/libs/flint/meson.build +++ b/src/sage/libs/flint/meson.build @@ -33,12 +33,16 @@ py.install_sources( extension_data = { 'arith': files('arith.pyx'), - 'flint': files('flint.pyx'), - 'fmpq_poly': files('fmpq_poly.pyx'), - 'fmpz_factor': files('fmpz_factor.pyx'), + 'arith_sage': files('arith_sage.pyx'), + 'flint_sage': files('flint_sage.pyx'), + 'fmpq_poly_sage': files('fmpq_poly_sage.pyx'), + 'fmpz_factor_sage': files('fmpz_factor_sage.pyx'), 'fmpz_poly': files('fmpz_poly.pyx'), + 'fmpz_poly_sage': files('fmpz_poly_sage.pyx'), 'qsieve': files('qsieve.pyx'), + 'qsieve_sage': files('qsieve_sage.pyx'), 'ulong_extras': files('ulong_extras.pyx'), + 'ulong_extras_sage': files('ulong_extras_sage.pyx'), } foreach name, pyx : extension_data From 4ef94d474b2d1bf7de77494f873c959832d2cca6 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 16 Jan 2024 08:43:47 +0000 Subject: [PATCH 123/161] Update test command to use 4 parallel processes --- .github/workflows/ci-meson.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 670be87a152..279fc9d1365 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -82,4 +82,4 @@ jobs: - name: Test shell: bash -l {0} - run: ./sage -t --all -p0 + run: ./sage -t --all -p4 From 30c7049959658abf264210c81250691b27f29512 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 11 Feb 2024 15:02:18 +0000 Subject: [PATCH 124/161] Remove gap_packages.py from py.install_sources() --- src/sage/tests/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/tests/meson.build b/src/sage/tests/meson.build index d4355a4a7be..0ec4233334a 100644 --- a/src/sage/tests/meson.build +++ b/src/sage/tests/meson.build @@ -11,7 +11,6 @@ py.install_sources( 'combinatorial_hopf_algebras.py', 'finite_poset.py', 'functools_partial_src.py', - 'gap_packages.py', 'gosper-sum.py', 'lazy_imports.py', 'modular_group_cohomology.py', From 0d8b2d7dda73f570369b8279845de184a278673a Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 11 Feb 2024 16:37:22 +0000 Subject: [PATCH 125/161] Add new Python files to various modules --- src/sage/combinat/designs/meson.build | 1 + src/sage/matroids/meson.build | 2 ++ src/sage/schemes/elliptic_curves/meson.build | 1 + 3 files changed, 4 insertions(+) diff --git a/src/sage/combinat/designs/meson.build b/src/sage/combinat/designs/meson.build index d9d393de6c8..d44cf8289a7 100644 --- a/src/sage/combinat/designs/meson.build +++ b/src/sage/combinat/designs/meson.build @@ -1,4 +1,5 @@ py.install_sources( + 'MOLS_handbook_data.py', 'all.py', 'bibd.py', 'block_design.py', diff --git a/src/sage/matroids/meson.build b/src/sage/matroids/meson.build index f018aea355e..917758578b5 100644 --- a/src/sage/matroids/meson.build +++ b/src/sage/matroids/meson.build @@ -3,6 +3,8 @@ py.install_sources( 'all.py', 'catalog.py', 'constructor.py', + 'database_collections.py', + 'database_matroids.py', 'dual_matroid.py', 'graphic_matroid.py', 'matroids_catalog.py', diff --git a/src/sage/schemes/elliptic_curves/meson.build b/src/sage/schemes/elliptic_curves/meson.build index ce4f2366180..d6120830312 100644 --- a/src/sage/schemes/elliptic_curves/meson.build +++ b/src/sage/schemes/elliptic_curves/meson.build @@ -32,6 +32,7 @@ py.install_sources( 'hom_scalar.py', 'hom_sum.py', 'hom_velusqrt.py', + 'homset.py', 'isogeny_class.py', 'isogeny_small_degree.py', 'jacobian.py', From dc24eaf1ff5f3289f5c2cbf5ec817fcff66959c8 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 13 Feb 2024 04:03:45 +0000 Subject: [PATCH 126/161] Add order_ideal.py to number_field module --- src/sage/rings/number_field/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index e3b6cfa6d5d..35ba8a30451 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -16,6 +16,7 @@ py.install_sources( 'number_field_ideal_rel.py', 'number_field_rel.py', 'order.py', + 'order_ideal.py', 'selmer_group.py', 'small_primes_of_degree_one.py', 'splitting_field.py', From dacc419cd6781be45144f8170d84c20e1875abc2 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 13 Feb 2024 04:15:43 +0000 Subject: [PATCH 127/161] Delete unused meson files in algebras and combinatorics --- src/sage/algebras/hecke_algebras/meson.build | 10 ------- .../lie_conformal_algebras/meson.build | 24 --------------- src/sage/algebras/quantum_groups/meson.build | 11 ------- src/sage/algebras/steenrod/meson.build | 10 ------- src/sage/combinat/chas/meson.build | 7 ----- .../cluster_algebra_quiver/meson.build | 11 ------- src/sage/combinat/ncsf_qsym/meson.build | 10 ------- src/sage/combinat/ncsym/meson.build | 8 ----- src/sage/combinat/path_tableaux/meson.build | 10 ------- src/sage/combinat/sf/meson.build | 29 ------------------- src/sage/combinat/species/meson.build | 23 --------------- 11 files changed, 153 deletions(-) delete mode 100644 src/sage/algebras/hecke_algebras/meson.build delete mode 100644 src/sage/algebras/lie_conformal_algebras/meson.build delete mode 100644 src/sage/algebras/quantum_groups/meson.build delete mode 100644 src/sage/algebras/steenrod/meson.build delete mode 100644 src/sage/combinat/chas/meson.build delete mode 100644 src/sage/combinat/cluster_algebra_quiver/meson.build delete mode 100644 src/sage/combinat/ncsf_qsym/meson.build delete mode 100644 src/sage/combinat/ncsym/meson.build delete mode 100644 src/sage/combinat/path_tableaux/meson.build delete mode 100644 src/sage/combinat/sf/meson.build delete mode 100644 src/sage/combinat/species/meson.build diff --git a/src/sage/algebras/hecke_algebras/meson.build b/src/sage/algebras/hecke_algebras/meson.build deleted file mode 100644 index 2ae6f3da80c..00000000000 --- a/src/sage/algebras/hecke_algebras/meson.build +++ /dev/null @@ -1,10 +0,0 @@ -py.install_sources( - 'all.py', - 'ariki_koike_algebra.py', - 'cubic_hecke_algebra.py', - 'cubic_hecke_base_ring.py', - 'cubic_hecke_matrix_rep.py', - subdir: 'sage/algebras/hecke_algebras', -) - - diff --git a/src/sage/algebras/lie_conformal_algebras/meson.build b/src/sage/algebras/lie_conformal_algebras/meson.build deleted file mode 100644 index 500fa71e42a..00000000000 --- a/src/sage/algebras/lie_conformal_algebras/meson.build +++ /dev/null @@ -1,24 +0,0 @@ -py.install_sources( - 'abelian_lie_conformal_algebra.py', - 'affine_lie_conformal_algebra.py', - 'all.py', - 'bosonic_ghosts_lie_conformal_algebra.py', - 'examples.py', - 'fermionic_ghosts_lie_conformal_algebra.py', - 'finitely_freely_generated_lca.py', - 'free_bosons_lie_conformal_algebra.py', - 'free_fermions_lie_conformal_algebra.py', - 'freely_generated_lie_conformal_algebra.py', - 'graded_lie_conformal_algebra.py', - 'lie_conformal_algebra.py', - 'lie_conformal_algebra_element.py', - 'lie_conformal_algebra_with_basis.py', - 'lie_conformal_algebra_with_structure_coefs.py', - 'n2_lie_conformal_algebra.py', - 'neveu_schwarz_lie_conformal_algebra.py', - 'virasoro_lie_conformal_algebra.py', - 'weyl_lie_conformal_algebra.py', - subdir: 'sage/algebras/lie_conformal_algebras', -) - - diff --git a/src/sage/algebras/quantum_groups/meson.build b/src/sage/algebras/quantum_groups/meson.build deleted file mode 100644 index c3f0d5c7fb5..00000000000 --- a/src/sage/algebras/quantum_groups/meson.build +++ /dev/null @@ -1,11 +0,0 @@ -py.install_sources( - 'ace_quantum_onsager.py', - 'all.py', - 'fock_space.py', - 'q_numbers.py', - 'quantum_group_gap.py', - 'representations.py', - subdir: 'sage/algebras/quantum_groups', -) - - diff --git a/src/sage/algebras/steenrod/meson.build b/src/sage/algebras/steenrod/meson.build deleted file mode 100644 index ad6a151b788..00000000000 --- a/src/sage/algebras/steenrod/meson.build +++ /dev/null @@ -1,10 +0,0 @@ -py.install_sources( - 'all.py', - 'steenrod_algebra.py', - 'steenrod_algebra_bases.py', - 'steenrod_algebra_misc.py', - 'steenrod_algebra_mult.py', - subdir: 'sage/algebras/steenrod', -) - - diff --git a/src/sage/combinat/chas/meson.build b/src/sage/combinat/chas/meson.build deleted file mode 100644 index 55138497547..00000000000 --- a/src/sage/combinat/chas/meson.build +++ /dev/null @@ -1,7 +0,0 @@ -py.install_sources( - 'all.py', - 'fsym.py', - 'wqsym.py', - subdir: 'sage/combinat/chas', -) - diff --git a/src/sage/combinat/cluster_algebra_quiver/meson.build b/src/sage/combinat/cluster_algebra_quiver/meson.build deleted file mode 100644 index 33f6c253ed1..00000000000 --- a/src/sage/combinat/cluster_algebra_quiver/meson.build +++ /dev/null @@ -1,11 +0,0 @@ -py.install_sources( - 'all.py', - 'cluster_seed.py', - 'interact.py', - 'mutation_class.py', - 'mutation_type.py', - 'quiver.py', - 'quiver_mutation_type.py', - subdir: 'sage/combinat/cluster_algebra_quiver', -) - diff --git a/src/sage/combinat/ncsf_qsym/meson.build b/src/sage/combinat/ncsf_qsym/meson.build deleted file mode 100644 index e30fce36206..00000000000 --- a/src/sage/combinat/ncsf_qsym/meson.build +++ /dev/null @@ -1,10 +0,0 @@ -py.install_sources( - 'all.py', - 'combinatorics.py', - 'generic_basis_code.py', - 'ncsf.py', - 'qsym.py', - 'tutorial.py', - subdir: 'sage/combinat/ncsf_qsym', -) - diff --git a/src/sage/combinat/ncsym/meson.build b/src/sage/combinat/ncsym/meson.build deleted file mode 100644 index d254c159ad3..00000000000 --- a/src/sage/combinat/ncsym/meson.build +++ /dev/null @@ -1,8 +0,0 @@ -py.install_sources( - 'all.py', - 'bases.py', - 'dual.py', - 'ncsym.py', - subdir: 'sage/combinat/ncsym', -) - diff --git a/src/sage/combinat/path_tableaux/meson.build b/src/sage/combinat/path_tableaux/meson.build deleted file mode 100644 index 4247e6ad15e..00000000000 --- a/src/sage/combinat/path_tableaux/meson.build +++ /dev/null @@ -1,10 +0,0 @@ -py.install_sources( - 'all.py', - 'catalog.py', - 'dyck_path.py', - 'frieze.py', - 'path_tableau.py', - 'semistandard.py', - subdir: 'sage/combinat/path_tableaux', -) - diff --git a/src/sage/combinat/sf/meson.build b/src/sage/combinat/sf/meson.build deleted file mode 100644 index 2d305a3bee6..00000000000 --- a/src/sage/combinat/sf/meson.build +++ /dev/null @@ -1,29 +0,0 @@ -py.install_sources( - 'all.py', - 'character.py', - 'classical.py', - 'dual.py', - 'elementary.py', - 'hall_littlewood.py', - 'hecke.py', - 'homogeneous.py', - 'jack.py', - 'k_dual.py', - 'kfpoly.py', - 'llt.py', - 'macdonald.py', - 'monomial.py', - 'multiplicative.py', - 'new_kschur.py', - 'ns_macdonald.py', - 'orthogonal.py', - 'orthotriang.py', - 'powersum.py', - 'schur.py', - 'sf.py', - 'sfa.py', - 'symplectic.py', - 'witt.py', - subdir: 'sage/combinat/sf', -) - diff --git a/src/sage/combinat/species/meson.build b/src/sage/combinat/species/meson.build deleted file mode 100644 index a7bf282707c..00000000000 --- a/src/sage/combinat/species/meson.build +++ /dev/null @@ -1,23 +0,0 @@ -py.install_sources( - 'all.py', - 'characteristic_species.py', - 'composition_species.py', - 'cycle_species.py', - 'empty_species.py', - 'functorial_composition_species.py', - 'generating_series.py', - 'library.py', - 'linear_order_species.py', - 'misc.py', - 'partition_species.py', - 'permutation_species.py', - 'product_species.py', - 'recursive_species.py', - 'set_species.py', - 'species.py', - 'structure.py', - 'subset_species.py', - 'sum_species.py', - subdir: 'sage/combinat/species', -) - From 6a89c454f0f3ac3cf52f6cfe97be3c8bff41444a Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 15 Feb 2024 07:10:16 +0000 Subject: [PATCH 128/161] Add new files to categories and designs --- src/sage/categories/meson.build | 1 + src/sage/combinat/designs/meson.build | 1 + 2 files changed, 2 insertions(+) diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build index 416be5f1897..57965b62ec9 100644 --- a/src/sage/categories/meson.build +++ b/src/sage/categories/meson.build @@ -44,6 +44,7 @@ py.install_sources( 'coxeter_groups.py', 'crystals.py', 'cw_complexes.py', + 'dedekind_domains.py', 'discrete_valuation.py', 'distributive_magmas_and_additive_magmas.py', 'division_rings.py', diff --git a/src/sage/combinat/designs/meson.build b/src/sage/combinat/designs/meson.build index d44cf8289a7..a36c92e08e2 100644 --- a/src/sage/combinat/designs/meson.build +++ b/src/sage/combinat/designs/meson.build @@ -7,6 +7,7 @@ py.install_sources( 'covering_design.py', 'database.py', 'design_catalog.py', + 'designs_pyx.pxd', 'difference_family.py', 'difference_matrices.py', 'ext_rep.py', From 6b14ccb81bf266f1bdf4263a0b5eee55df3ff13f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 18 Feb 2024 07:51:59 +0000 Subject: [PATCH 129/161] Remove unnecessary meson_version field from project configuration --- meson.build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 26db7085579..f00294b7e2f 100644 --- a/meson.build +++ b/meson.build @@ -2,8 +2,7 @@ project( 'SageMath', ['c', 'cpp', 'cython'], version: files('src/VERSION.txt'), - license: 'GPL v3', - meson_version: '>= 1.2.0', + license: 'GPL v3' ) # Python module From 087df3f0a0bacfaaa58c5ae9bd09be1b4c9cb81b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 18 Feb 2024 20:09:00 +0000 Subject: [PATCH 130/161] Update install_sources in meson files --- .../finite_dimensional_algebras/meson.build | 12 +- src/sage/algebras/fusion_rings/meson.build | 18 +- src/sage/algebras/letterplace/meson.build | 7 +- src/sage/algebras/lie_algebras/meson.build | 46 +- src/sage/algebras/meson.build | 84 ++-- src/sage/algebras/quatalg/meson.build | 7 +- src/sage/arith/meson.build | 22 +- src/sage/calculus/meson.build | 22 +- src/sage/calculus/transforms/meson.build | 6 +- src/sage/categories/examples/meson.build | 66 +-- src/sage/categories/meson.build | 398 +++++++++--------- src/sage/coding/codecan/meson.build | 5 +- src/sage/coding/meson.build | 71 ++-- src/sage/combinat/crystals/meson.build | 66 +-- src/sage/combinat/designs/meson.build | 42 +- src/sage/combinat/integer_lists/meson.build | 7 +- src/sage/combinat/matrices/meson.build | 8 +- src/sage/combinat/meson.build | 250 +++++------ src/sage/combinat/posets/meson.build | 28 +- .../rigged_configurations/meson.build | 46 +- src/sage/combinat/root_system/meson.build | 110 ++--- src/sage/combinat/words/meson.build | 34 +- src/sage/cpython/meson.build | 36 +- src/sage/crypto/meson.build | 28 +- src/sage/data_structures/meson.build | 28 +- .../dynamics/arithmetic_dynamics/meson.build | 22 +- .../dynamics/complex_dynamics/meson.build | 6 +- src/sage/dynamics/meson.build | 8 +- src/sage/ext/interpreters/meson.build | 16 +- src/sage/ext/meson.build | 20 +- src/sage/functions/meson.build | 42 +- src/sage/games/meson.build | 8 +- src/sage/geometry/meson.build | 40 +- .../combinatorial_polyhedron/meson.build | 5 +- src/sage/geometry/polyhedron/meson.build | 76 ++-- src/sage/geometry/triangulation/meson.build | 7 +- src/sage/graphs/base/meson.build | 22 +- src/sage/graphs/generators/meson.build | 24 +- .../graphs/graph_decompositions/meson.build | 16 +- src/sage/graphs/meson.build | 76 ++-- src/sage/groups/matrix_gps/meson.build | 48 +-- src/sage/groups/meson.build | 58 +-- src/sage/groups/perm_gps/meson.build | 18 +- .../groups/perm_gps/partn_ref/meson.build | 5 +- .../groups/perm_gps/partn_ref2/meson.build | 5 +- .../semimonomial_transformations/meson.build | 6 +- src/sage/interacts/meson.build | 16 +- src/sage/interfaces/meson.build | 120 +++--- src/sage/lfunctions/meson.build | 12 +- src/sage/libs/arb/meson.build | 34 +- src/sage/libs/coxeter3/meson.build | 12 +- src/sage/libs/eclib/meson.build | 16 +- src/sage/libs/flint/meson.build | 60 +-- src/sage/libs/gap/meson.build | 30 +- src/sage/libs/giac/meson.build | 7 +- src/sage/libs/glpk/meson.build | 14 +- src/sage/libs/gmp/meson.build | 26 +- src/sage/libs/gsl/meson.build | 132 +++--- src/sage/libs/lcalc/meson.build | 7 +- src/sage/libs/linbox/meson.build | 14 +- src/sage/libs/meson.build | 26 +- src/sage/libs/mpmath/meson.build | 7 +- src/sage/libs/ntl/meson.build | 90 ++-- src/sage/libs/pari/meson.build | 22 +- src/sage/libs/singular/meson.build | 20 +- src/sage/libs/symmetrica/meson.build | 6 +- src/sage/matrix/meson.build | 32 +- src/sage/matroids/meson.build | 30 +- src/sage/meson.build | 32 +- src/sage/misc/meson.build | 178 ++++---- src/sage/modular/arithgroup/meson.build | 22 +- src/sage/modular/meson.build | 26 +- src/sage/modular/modform/meson.build | 56 +-- src/sage/modular/modsym/meson.build | 32 +- src/sage/modular/pollack_stevens/meson.build | 18 +- src/sage/modules/meson.build | 52 +-- src/sage/modules/with_basis/meson.build | 14 +- src/sage/monoids/meson.build | 26 +- src/sage/numerical/backends/meson.build | 24 +- src/sage/numerical/meson.build | 16 +- src/sage/plot/meson.build | 62 +-- src/sage/plot/plot3d/meson.build | 28 +- src/sage/probability/meson.build | 6 +- src/sage/quadratic_forms/meson.build | 60 +-- src/sage/quivers/meson.build | 15 +- src/sage/rings/convert/meson.build | 6 +- src/sage/rings/finite_rings/meson.build | 48 +-- src/sage/rings/function_field/meson.build | 52 +-- src/sage/rings/meson.build | 162 +++---- src/sage/rings/number_field/meson.build | 54 +-- src/sage/rings/padics/meson.build | 96 ++--- src/sage/rings/polynomial/meson.build | 130 +++--- src/sage/rings/polynomial/pbori/meson.build | 42 +- src/sage/rings/polynomial/weil/meson.build | 6 +- src/sage/rings/semirings/meson.build | 6 +- src/sage/sat/meson.build | 6 +- src/sage/sat/solvers/meson.build | 12 +- src/sage/schemes/elliptic_curves/meson.build | 102 ++--- .../schemes/hyperelliptic_curves/meson.build | 34 +- src/sage/schemes/meson.build | 6 +- src/sage/schemes/toric/meson.build | 30 +- src/sage/sets/meson.build | 44 +- src/sage/stats/distributions/meson.build | 7 +- src/sage/stats/hmm/meson.build | 5 +- src/sage/stats/meson.build | 7 +- src/sage/structure/meson.build | 72 ++-- src/sage/symbolic/meson.build | 50 +-- src/sage/tests/meson.build | 44 +- 108 files changed, 2141 insertions(+), 2255 deletions(-) diff --git a/src/sage/algebras/finite_dimensional_algebras/meson.build b/src/sage/algebras/finite_dimensional_algebras/meson.build index 66cc5ec37dc..d821da5c6a4 100644 --- a/src/sage/algebras/finite_dimensional_algebras/meson.build +++ b/src/sage/algebras/finite_dimensional_algebras/meson.build @@ -1,10 +1,10 @@ py.install_sources( - 'all.py', - 'finite_dimensional_algebra.py', - 'finite_dimensional_algebra_element.pxd', - 'finite_dimensional_algebra_ideal.py', - 'finite_dimensional_algebra_morphism.py', - subdir: 'sage/algebras/finite_dimensional_algebras', + 'all.py', + 'finite_dimensional_algebra.py', + 'finite_dimensional_algebra_element.pxd', + 'finite_dimensional_algebra_ideal.py', + 'finite_dimensional_algebra_morphism.py', + subdir : 'sage/algebras/finite_dimensional_algebras' ) extension_data = { diff --git a/src/sage/algebras/fusion_rings/meson.build b/src/sage/algebras/fusion_rings/meson.build index aa113b3f9b0..63267a57e4f 100644 --- a/src/sage/algebras/fusion_rings/meson.build +++ b/src/sage/algebras/fusion_rings/meson.build @@ -1,13 +1,13 @@ py.install_sources( - 'all.py', - 'f_matrix.py', - 'fast_parallel_fmats_methods.pxd', - 'fast_parallel_fusion_ring_braid_repn.pxd', - 'fusion_double.py', - 'fusion_ring.py', - 'poly_tup_engine.pxd', - 'shm_managers.pxd', - subdir: 'sage/algebras/fusion_rings', + 'all.py', + 'f_matrix.py', + 'fast_parallel_fmats_methods.pxd', + 'fast_parallel_fusion_ring_braid_repn.pxd', + 'fusion_double.py', + 'fusion_ring.py', + 'poly_tup_engine.pxd', + 'shm_managers.pxd', + subdir : 'sage/algebras/fusion_rings' ) extension_data = { diff --git a/src/sage/algebras/letterplace/meson.build b/src/sage/algebras/letterplace/meson.build index 5437e721483..66044e74c46 100644 --- a/src/sage/algebras/letterplace/meson.build +++ b/src/sage/algebras/letterplace/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - 'all.py', - 'free_algebra_element_letterplace.pxd', - 'free_algebra_letterplace.pxd', - subdir: 'sage/algebras/letterplace', -) +py.install_sources('all.py', 'free_algebra_element_letterplace.pxd', 'free_algebra_letterplace.pxd', subdir : 'sage/algebras/letterplace') extension_data_cpp = { 'free_algebra_element_letterplace': files('free_algebra_element_letterplace.pyx'), diff --git a/src/sage/algebras/lie_algebras/meson.build b/src/sage/algebras/lie_algebras/meson.build index f151799266e..3396b638a15 100644 --- a/src/sage/algebras/lie_algebras/meson.build +++ b/src/sage/algebras/lie_algebras/meson.build @@ -1,27 +1,27 @@ py.install_sources( - 'abelian.py', - 'affine_lie_algebra.py', - 'all.py', - 'bch.py', - 'classical_lie_algebra.py', - 'examples.py', - 'free_lie_algebra.py', - 'heisenberg.py', - 'lie_algebra.py', - 'lie_algebra_element.pxd', - 'morphism.py', - 'nilpotent_lie_algebra.py', - 'onsager.py', - 'poincare_birkhoff_witt.py', - 'quotient.py', - 'rank_two_heisenberg_virasoro.py', - 'representation.py', - 'structure_coefficients.py', - 'subalgebra.py', - 'symplectic_derivation.py', - 'verma_module.py', - 'virasoro.py', - subdir: 'sage/algebras/lie_algebras', + 'abelian.py', + 'affine_lie_algebra.py', + 'all.py', + 'bch.py', + 'classical_lie_algebra.py', + 'examples.py', + 'free_lie_algebra.py', + 'heisenberg.py', + 'lie_algebra.py', + 'lie_algebra_element.pxd', + 'morphism.py', + 'nilpotent_lie_algebra.py', + 'onsager.py', + 'poincare_birkhoff_witt.py', + 'quotient.py', + 'rank_two_heisenberg_virasoro.py', + 'representation.py', + 'structure_coefficients.py', + 'subalgebra.py', + 'symplectic_derivation.py', + 'verma_module.py', + 'virasoro.py', + subdir : 'sage/algebras/lie_algebras' ) extension_data = { diff --git a/src/sage/algebras/meson.build b/src/sage/algebras/meson.build index dabac117a84..99e5902e935 100644 --- a/src/sage/algebras/meson.build +++ b/src/sage/algebras/meson.build @@ -1,46 +1,46 @@ py.install_sources( - 'affine_nil_temperley_lieb.py', - 'algebra.py', - 'all.py', - 'askey_wilson.py', - 'associated_graded.py', - 'catalog.py', - 'cellular_basis.py', - 'clifford_algebra.py', - 'clifford_algebra_element.pxd', - 'cluster_algebra.py', - 'commutative_dga.py', - 'down_up_algebra.py', - 'exterior_algebra_groebner.pxd', - 'finite_gca.py', - 'free_algebra.py', - 'free_algebra_element.py', - 'free_algebra_quotient.py', - 'free_algebra_quotient_element.py', - 'free_zinbiel_algebra.py', - 'group_algebra.py', - 'hall_algebra.py', - 'iwahori_hecke_algebra.py', - 'jordan_algebra.py', - 'nil_coxeter_algebra.py', - 'octonion_algebra.pxd', - 'orlik_solomon.py', - 'orlik_terao.py', - 'q_commuting_polynomials.py', - 'q_system.py', - 'quantum_clifford.py', - 'quantum_matrix_coordinate_algebra.py', - 'quaternion_algebra.py', - 'quaternion_algebra_element.py', - 'rational_cherednik_algebra.py', - 'schur_algebra.py', - 'shuffle_algebra.py', - 'splitting_algebra.py', - 'tensor_algebra.py', - 'weyl_algebra.py', - 'yangian.py', - 'yokonuma_hecke_algebra.py', - subdir: 'sage/algebras', + 'affine_nil_temperley_lieb.py', + 'algebra.py', + 'all.py', + 'askey_wilson.py', + 'associated_graded.py', + 'catalog.py', + 'cellular_basis.py', + 'clifford_algebra.py', + 'clifford_algebra_element.pxd', + 'cluster_algebra.py', + 'commutative_dga.py', + 'down_up_algebra.py', + 'exterior_algebra_groebner.pxd', + 'finite_gca.py', + 'free_algebra.py', + 'free_algebra_element.py', + 'free_algebra_quotient.py', + 'free_algebra_quotient_element.py', + 'free_zinbiel_algebra.py', + 'group_algebra.py', + 'hall_algebra.py', + 'iwahori_hecke_algebra.py', + 'jordan_algebra.py', + 'nil_coxeter_algebra.py', + 'octonion_algebra.pxd', + 'orlik_solomon.py', + 'orlik_terao.py', + 'q_commuting_polynomials.py', + 'q_system.py', + 'quantum_clifford.py', + 'quantum_matrix_coordinate_algebra.py', + 'quaternion_algebra.py', + 'quaternion_algebra_element.py', + 'rational_cherednik_algebra.py', + 'schur_algebra.py', + 'shuffle_algebra.py', + 'splitting_algebra.py', + 'tensor_algebra.py', + 'weyl_algebra.py', + 'yangian.py', + 'yokonuma_hecke_algebra.py', + subdir : 'sage/algebras' ) extension_data = { diff --git a/src/sage/algebras/quatalg/meson.build b/src/sage/algebras/quatalg/meson.build index 86f2d2fcf04..1461fd642bf 100644 --- a/src/sage/algebras/quatalg/meson.build +++ b/src/sage/algebras/quatalg/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - 'all.py', - 'quaternion_algebra.py', - 'quaternion_algebra_element.pxd', - subdir: 'sage/algebras/quatalg', -) +py.install_sources('all.py', 'quaternion_algebra.py', 'quaternion_algebra_element.pxd', subdir : 'sage/algebras/quatalg') extension_data_cpp = { 'quaternion_algebra_cython': files('quaternion_algebra_cython.pyx'), diff --git a/src/sage/arith/meson.build b/src/sage/arith/meson.build index 8bcab22277f..bc13ece46cc 100644 --- a/src/sage/arith/meson.build +++ b/src/sage/arith/meson.build @@ -1,15 +1,15 @@ py.install_sources( - 'all.py', - 'all__sagemath_objects.py', - 'constants.pxd', - 'functions.pxd', - 'long.pxd', - 'misc.py', - 'multi_modular.pxd', - 'numerical_approx.pxd', - 'power.pxd', - 'rational_reconstruction.pxd', - subdir: 'sage/arith', + 'all.py', + 'all__sagemath_objects.py', + 'constants.pxd', + 'functions.pxd', + 'long.pxd', + 'misc.py', + 'multi_modular.pxd', + 'numerical_approx.pxd', + 'power.pxd', + 'rational_reconstruction.pxd', + subdir : 'sage/arith' ) extension_data = { diff --git a/src/sage/calculus/meson.build b/src/sage/calculus/meson.build index 39b6945d9f7..c7bfa57d390 100644 --- a/src/sage/calculus/meson.build +++ b/src/sage/calculus/meson.build @@ -1,14 +1,16 @@ py.install_sources( - 'all.py', - 'calculus.py', - 'desolvers.py', - 'functional.py', - 'functions.py', - 'predefined.py', - 'test_sympy.py', - 'tests.py', - 'wester.py', - subdir: 'sage/calculus', + 'all.py', + 'calculus.py', + 'desolvers.py', + 'functional.py', + 'functions.py', + 'interpolation.pxd', + 'ode.pxd', + 'predefined.py', + 'test_sympy.py', + 'tests.py', + 'wester.py', + subdir : 'sage/calculus' ) extension_data = { diff --git a/src/sage/calculus/transforms/meson.build b/src/sage/calculus/transforms/meson.build index 7da588ca3b5..c495788eb1f 100644 --- a/src/sage/calculus/transforms/meson.build +++ b/src/sage/calculus/transforms/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'dft.py', - subdir: 'sage/calculus/transforms', -) +py.install_sources('all.py', 'dft.py', 'dwt.pxd', 'fft.pxd', subdir : 'sage/calculus/transforms') extension_data = { 'dwt': files('dwt.pyx'), diff --git a/src/sage/categories/examples/meson.build b/src/sage/categories/examples/meson.build index b87b550709c..fb4389af196 100644 --- a/src/sage/categories/examples/meson.build +++ b/src/sage/categories/examples/meson.build @@ -1,37 +1,37 @@ py.install_sources( - 'algebras_with_basis.py', - 'all.py', - 'commutative_additive_monoids.py', - 'commutative_additive_semigroups.py', - 'coxeter_groups.py', - 'crystals.py', - 'cw_complexes.py', - 'facade_sets.py', - 'filtered_algebras_with_basis.py', - 'filtered_modules_with_basis.py', - 'finite_coxeter_groups.py', - 'finite_dimensional_algebras_with_basis.py', - 'finite_dimensional_lie_algebras_with_basis.py', - 'finite_enumerated_sets.py', - 'finite_monoids.py', - 'finite_semigroups.py', - 'finite_weyl_groups.py', - 'graded_connected_hopf_algebras_with_basis.py', - 'graded_modules_with_basis.py', - 'graphs.py', - 'hopf_algebras_with_basis.py', - 'infinite_enumerated_sets.py', - 'lie_algebras.py', - 'lie_algebras_with_basis.py', - 'magmas.py', - 'manifolds.py', - 'monoids.py', - 'posets.py', - 'semigroups.py', - 'sets_cat.py', - 'sets_with_grading.py', - 'with_realizations.py', - subdir: 'sage/categories/examples', + 'algebras_with_basis.py', + 'all.py', + 'commutative_additive_monoids.py', + 'commutative_additive_semigroups.py', + 'coxeter_groups.py', + 'crystals.py', + 'cw_complexes.py', + 'facade_sets.py', + 'filtered_algebras_with_basis.py', + 'filtered_modules_with_basis.py', + 'finite_coxeter_groups.py', + 'finite_dimensional_algebras_with_basis.py', + 'finite_dimensional_lie_algebras_with_basis.py', + 'finite_enumerated_sets.py', + 'finite_monoids.py', + 'finite_semigroups.py', + 'finite_weyl_groups.py', + 'graded_connected_hopf_algebras_with_basis.py', + 'graded_modules_with_basis.py', + 'graphs.py', + 'hopf_algebras_with_basis.py', + 'infinite_enumerated_sets.py', + 'lie_algebras.py', + 'lie_algebras_with_basis.py', + 'magmas.py', + 'manifolds.py', + 'monoids.py', + 'posets.py', + 'semigroups.py', + 'sets_cat.py', + 'sets_with_grading.py', + 'with_realizations.py', + subdir : 'sage/categories/examples' ) extension_data = { diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build index 57965b62ec9..7ce68f4b5be 100644 --- a/src/sage/categories/meson.build +++ b/src/sage/categories/meson.build @@ -1,203 +1,203 @@ py.install_sources( - '__init__.py', - 'action.pxd', - 'additive_groups.py', - 'additive_magmas.py', - 'additive_monoids.py', - 'additive_semigroups.py', - 'affine_weyl_groups.py', - 'algebra_functor.py', - 'algebra_ideals.py', - 'algebra_modules.py', - 'algebras.py', - 'algebras_with_basis.py', - 'all.py', - 'all__sagemath_objects.py', - 'aperiodic_semigroups.py', - 'associative_algebras.py', - 'basic.py', - 'bialgebras.py', - 'bialgebras_with_basis.py', - 'bimodules.py', - 'cartesian_product.py', - 'category.py', - 'category_cy_helper.pxd', - 'category_singleton.pxd', - 'category_types.py', - 'category_with_axiom.py', - 'chain_complexes.py', - 'classical_crystals.py', - 'coalgebras.py', - 'coalgebras_with_basis.py', - 'commutative_additive_groups.py', - 'commutative_additive_monoids.py', - 'commutative_additive_semigroups.py', - 'commutative_algebra_ideals.py', - 'commutative_algebras.py', - 'commutative_ring_ideals.py', - 'commutative_rings.py', - 'complete_discrete_valuation.py', - 'complex_reflection_groups.py', - 'complex_reflection_or_generalized_coxeter_groups.py', - 'covariant_functorial_construction.py', - 'coxeter_group_algebras.py', - 'coxeter_groups.py', - 'crystals.py', - 'cw_complexes.py', - 'dedekind_domains.py', - 'discrete_valuation.py', - 'distributive_magmas_and_additive_magmas.py', - 'division_rings.py', - 'domains.py', - 'drinfeld_modules.py', - 'dual.py', - 'enumerated_sets.py', - 'euclidean_domains.py', - 'facade_sets.py', - 'fields.py', - 'filtered_algebras.py', - 'filtered_algebras_with_basis.py', - 'filtered_hopf_algebras_with_basis.py', - 'filtered_modules.py', - 'filtered_modules_with_basis.py', - 'finite_complex_reflection_groups.py', - 'finite_coxeter_groups.py', - 'finite_crystals.py', - 'finite_dimensional_algebras_with_basis.py', - 'finite_dimensional_bialgebras_with_basis.py', - 'finite_dimensional_coalgebras_with_basis.py', - 'finite_dimensional_graded_lie_algebras_with_basis.py', - 'finite_dimensional_hopf_algebras_with_basis.py', - 'finite_dimensional_lie_algebras_with_basis.py', - 'finite_dimensional_modules_with_basis.py', - 'finite_dimensional_nilpotent_lie_algebras_with_basis.py', - 'finite_dimensional_semisimple_algebras_with_basis.py', - 'finite_enumerated_sets.py', - 'finite_fields.py', - 'finite_groups.py', - 'finite_lattice_posets.py', - 'finite_monoids.py', - 'finite_permutation_groups.py', - 'finite_posets.py', - 'finite_semigroups.py', - 'finite_sets.py', - 'finite_weyl_groups.py', - 'finitely_generated_lambda_bracket_algebras.py', - 'finitely_generated_lie_conformal_algebras.py', - 'finitely_generated_magmas.py', - 'finitely_generated_semigroups.py', - 'function_fields.py', - 'functor.pxd', - 'g_sets.py', - 'gcd_domains.py', - 'generalized_coxeter_groups.py', - 'graded_algebras.py', - 'graded_algebras_with_basis.py', - 'graded_bialgebras.py', - 'graded_bialgebras_with_basis.py', - 'graded_coalgebras.py', - 'graded_coalgebras_with_basis.py', - 'graded_hopf_algebras.py', - 'graded_hopf_algebras_with_basis.py', - 'graded_lie_algebras.py', - 'graded_lie_algebras_with_basis.py', - 'graded_lie_conformal_algebras.py', - 'graded_modules.py', - 'graded_modules_with_basis.py', - 'graphs.py', - 'group_algebras.py', - 'groupoid.py', - 'groups.py', - 'h_trivial_semigroups.py', - 'hecke_modules.py', - 'highest_weight_crystals.py', - 'homset.py', - 'homsets.py', - 'hopf_algebras.py', - 'hopf_algebras_with_basis.py', - 'infinite_enumerated_sets.py', - 'integral_domains.py', - 'isomorphic_objects.py', - 'j_trivial_semigroups.py', - 'kac_moody_algebras.py', - 'l_trivial_semigroups.py', - 'lambda_bracket_algebras.py', - 'lambda_bracket_algebras_with_basis.py', - 'lattice_posets.py', - 'left_modules.py', - 'lie_algebras.py', - 'lie_algebras_with_basis.py', - 'lie_conformal_algebras.py', - 'lie_conformal_algebras_with_basis.py', - 'lie_groups.py', - 'loop_crystals.py', - 'magmas.py', - 'magmas_and_additive_magmas.py', - 'magmatic_algebras.py', - 'manifolds.py', - 'map.pxd', - 'matrix_algebras.py', - 'metric_spaces.py', - 'modular_abelian_varieties.py', - 'modules.py', - 'modules_with_basis.py', - 'monoid_algebras.py', - 'monoids.py', - 'morphism.pxd', - 'number_fields.py', - 'objects.py', - 'partially_ordered_monoids.py', - 'permutation_groups.py', - 'pointed_sets.py', - 'polyhedra.py', - 'poor_man_map.py', - 'posets.py', - 'primer.py', - 'principal_ideal_domains.py', - 'pushout.py', - 'quantum_group_representations.py', - 'quotient_fields.py', - 'quotients.py', - 'r_trivial_semigroups.py', - 'realizations.py', - 'regular_crystals.py', - 'regular_supercrystals.py', - 'right_modules.py', - 'ring_ideals.py', - 'rings.py', - 'rngs.py', - 'schemes.py', - 'semigroups.py', - 'semirings.py', - 'semisimple_algebras.py', - 'sets_cat.py', - 'sets_with_grading.py', - 'sets_with_partial_maps.py', - 'shephard_groups.py', - 'signed_tensor.py', - 'simplicial_complexes.py', - 'simplicial_sets.py', - 'subobjects.py', - 'subquotients.py', - 'super_algebras.py', - 'super_algebras_with_basis.py', - 'super_hopf_algebras_with_basis.py', - 'super_lie_conformal_algebras.py', - 'super_modules.py', - 'super_modules_with_basis.py', - 'supercommutative_algebras.py', - 'supercrystals.py', - 'tensor.py', - 'topological_spaces.py', - 'triangular_kac_moody_algebras.py', - 'tutorial.py', - 'unique_factorization_domains.py', - 'unital_algebras.py', - 'vector_bundles.py', - 'vector_spaces.py', - 'weyl_groups.py', - 'with_realizations.py', - subdir: 'sage/categories', + '__init__.py', + 'action.pxd', + 'additive_groups.py', + 'additive_magmas.py', + 'additive_monoids.py', + 'additive_semigroups.py', + 'affine_weyl_groups.py', + 'algebra_functor.py', + 'algebra_ideals.py', + 'algebra_modules.py', + 'algebras.py', + 'algebras_with_basis.py', + 'all.py', + 'all__sagemath_objects.py', + 'aperiodic_semigroups.py', + 'associative_algebras.py', + 'basic.py', + 'bialgebras.py', + 'bialgebras_with_basis.py', + 'bimodules.py', + 'cartesian_product.py', + 'category.py', + 'category_cy_helper.pxd', + 'category_singleton.pxd', + 'category_types.py', + 'category_with_axiom.py', + 'chain_complexes.py', + 'classical_crystals.py', + 'coalgebras.py', + 'coalgebras_with_basis.py', + 'commutative_additive_groups.py', + 'commutative_additive_monoids.py', + 'commutative_additive_semigroups.py', + 'commutative_algebra_ideals.py', + 'commutative_algebras.py', + 'commutative_ring_ideals.py', + 'commutative_rings.py', + 'complete_discrete_valuation.py', + 'complex_reflection_groups.py', + 'complex_reflection_or_generalized_coxeter_groups.py', + 'covariant_functorial_construction.py', + 'coxeter_group_algebras.py', + 'coxeter_groups.py', + 'crystals.py', + 'cw_complexes.py', + 'dedekind_domains.py', + 'discrete_valuation.py', + 'distributive_magmas_and_additive_magmas.py', + 'division_rings.py', + 'domains.py', + 'drinfeld_modules.py', + 'dual.py', + 'enumerated_sets.py', + 'euclidean_domains.py', + 'facade_sets.py', + 'fields.py', + 'filtered_algebras.py', + 'filtered_algebras_with_basis.py', + 'filtered_hopf_algebras_with_basis.py', + 'filtered_modules.py', + 'filtered_modules_with_basis.py', + 'finite_complex_reflection_groups.py', + 'finite_coxeter_groups.py', + 'finite_crystals.py', + 'finite_dimensional_algebras_with_basis.py', + 'finite_dimensional_bialgebras_with_basis.py', + 'finite_dimensional_coalgebras_with_basis.py', + 'finite_dimensional_graded_lie_algebras_with_basis.py', + 'finite_dimensional_hopf_algebras_with_basis.py', + 'finite_dimensional_lie_algebras_with_basis.py', + 'finite_dimensional_modules_with_basis.py', + 'finite_dimensional_nilpotent_lie_algebras_with_basis.py', + 'finite_dimensional_semisimple_algebras_with_basis.py', + 'finite_enumerated_sets.py', + 'finite_fields.py', + 'finite_groups.py', + 'finite_lattice_posets.py', + 'finite_monoids.py', + 'finite_permutation_groups.py', + 'finite_posets.py', + 'finite_semigroups.py', + 'finite_sets.py', + 'finite_weyl_groups.py', + 'finitely_generated_lambda_bracket_algebras.py', + 'finitely_generated_lie_conformal_algebras.py', + 'finitely_generated_magmas.py', + 'finitely_generated_semigroups.py', + 'function_fields.py', + 'functor.pxd', + 'g_sets.py', + 'gcd_domains.py', + 'generalized_coxeter_groups.py', + 'graded_algebras.py', + 'graded_algebras_with_basis.py', + 'graded_bialgebras.py', + 'graded_bialgebras_with_basis.py', + 'graded_coalgebras.py', + 'graded_coalgebras_with_basis.py', + 'graded_hopf_algebras.py', + 'graded_hopf_algebras_with_basis.py', + 'graded_lie_algebras.py', + 'graded_lie_algebras_with_basis.py', + 'graded_lie_conformal_algebras.py', + 'graded_modules.py', + 'graded_modules_with_basis.py', + 'graphs.py', + 'group_algebras.py', + 'groupoid.py', + 'groups.py', + 'h_trivial_semigroups.py', + 'hecke_modules.py', + 'highest_weight_crystals.py', + 'homset.py', + 'homsets.py', + 'hopf_algebras.py', + 'hopf_algebras_with_basis.py', + 'infinite_enumerated_sets.py', + 'integral_domains.py', + 'isomorphic_objects.py', + 'j_trivial_semigroups.py', + 'kac_moody_algebras.py', + 'l_trivial_semigroups.py', + 'lambda_bracket_algebras.py', + 'lambda_bracket_algebras_with_basis.py', + 'lattice_posets.py', + 'left_modules.py', + 'lie_algebras.py', + 'lie_algebras_with_basis.py', + 'lie_conformal_algebras.py', + 'lie_conformal_algebras_with_basis.py', + 'lie_groups.py', + 'loop_crystals.py', + 'magmas.py', + 'magmas_and_additive_magmas.py', + 'magmatic_algebras.py', + 'manifolds.py', + 'map.pxd', + 'matrix_algebras.py', + 'metric_spaces.py', + 'modular_abelian_varieties.py', + 'modules.py', + 'modules_with_basis.py', + 'monoid_algebras.py', + 'monoids.py', + 'morphism.pxd', + 'number_fields.py', + 'objects.py', + 'partially_ordered_monoids.py', + 'permutation_groups.py', + 'pointed_sets.py', + 'polyhedra.py', + 'poor_man_map.py', + 'posets.py', + 'primer.py', + 'principal_ideal_domains.py', + 'pushout.py', + 'quantum_group_representations.py', + 'quotient_fields.py', + 'quotients.py', + 'r_trivial_semigroups.py', + 'realizations.py', + 'regular_crystals.py', + 'regular_supercrystals.py', + 'right_modules.py', + 'ring_ideals.py', + 'rings.py', + 'rngs.py', + 'schemes.py', + 'semigroups.py', + 'semirings.py', + 'semisimple_algebras.py', + 'sets_cat.py', + 'sets_with_grading.py', + 'sets_with_partial_maps.py', + 'shephard_groups.py', + 'signed_tensor.py', + 'simplicial_complexes.py', + 'simplicial_sets.py', + 'subobjects.py', + 'subquotients.py', + 'super_algebras.py', + 'super_algebras_with_basis.py', + 'super_hopf_algebras_with_basis.py', + 'super_lie_conformal_algebras.py', + 'super_modules.py', + 'super_modules_with_basis.py', + 'supercommutative_algebras.py', + 'supercrystals.py', + 'tensor.py', + 'topological_spaces.py', + 'triangular_kac_moody_algebras.py', + 'tutorial.py', + 'unique_factorization_domains.py', + 'unital_algebras.py', + 'vector_bundles.py', + 'vector_spaces.py', + 'weyl_groups.py', + 'with_realizations.py', + subdir : 'sage/categories' ) extension_data = { diff --git a/src/sage/coding/codecan/meson.build b/src/sage/coding/codecan/meson.build index cbc24c21194..267b315a6a7 100644 --- a/src/sage/coding/codecan/meson.build +++ b/src/sage/coding/codecan/meson.build @@ -1,7 +1,4 @@ -py.install_sources( - 'all.py', - subdir: 'sage/coding/codecan', -) +py.install_sources('all.py', 'codecan.pxd', subdir : 'sage/coding/codecan') extension_data = { 'autgroup_can_label': files('autgroup_can_label.pyx'), diff --git a/src/sage/coding/meson.build b/src/sage/coding/meson.build index 52e933cbc50..811f783d8b2 100644 --- a/src/sage/coding/meson.build +++ b/src/sage/coding/meson.build @@ -1,39 +1,40 @@ py.install_sources( - 'abstract_code.py', - 'ag_code.py', - 'all.py', - 'bch_code.py', - 'bounds_catalog.py', - 'channel.py', - 'channels_catalog.py', - 'code_bounds.py', - 'code_constructions.py', - 'codes_catalog.py', - 'cyclic_code.py', - 'databases.py', - 'decoder.py', - 'decoders_catalog.py', - 'delsarte_bounds.py', - 'encoder.py', - 'encoders_catalog.py', - 'extended_code.py', - 'gabidulin_code.py', - 'golay_code.py', - 'goppa_code.py', - 'grs_code.py', - 'guava.py', - 'hamming_code.py', - 'information_set_decoder.py', - 'linear_code.py', - 'linear_code_no_metric.py', - 'linear_rank_metric.py', - 'parity_check_code.py', - 'punctured_code.py', - 'reed_muller_code.py', - 'self_dual_codes.py', - 'subfield_subcode.py', - 'two_weight_db.py', - subdir: 'sage/coding', + 'abstract_code.py', + 'ag_code.py', + 'all.py', + 'bch_code.py', + 'binary_code.pxd', + 'bounds_catalog.py', + 'channel.py', + 'channels_catalog.py', + 'code_bounds.py', + 'code_constructions.py', + 'codes_catalog.py', + 'cyclic_code.py', + 'databases.py', + 'decoder.py', + 'decoders_catalog.py', + 'delsarte_bounds.py', + 'encoder.py', + 'encoders_catalog.py', + 'extended_code.py', + 'gabidulin_code.py', + 'golay_code.py', + 'goppa_code.py', + 'grs_code.py', + 'guava.py', + 'hamming_code.py', + 'information_set_decoder.py', + 'linear_code.py', + 'linear_code_no_metric.py', + 'linear_rank_metric.py', + 'parity_check_code.py', + 'punctured_code.py', + 'reed_muller_code.py', + 'self_dual_codes.py', + 'subfield_subcode.py', + 'two_weight_db.py', + subdir : 'sage/coding' ) extension_data = { diff --git a/src/sage/combinat/crystals/meson.build b/src/sage/combinat/crystals/meson.build index 92fad748c28..389ba255d05 100644 --- a/src/sage/combinat/crystals/meson.build +++ b/src/sage/combinat/crystals/meson.build @@ -1,37 +1,37 @@ py.install_sources( - 'affine.py', - 'affine_factorization.py', - 'affinization.py', - 'alcove_path.py', - 'all.py', - 'bkk_crystals.py', - 'catalog.py', - 'catalog_elementary_crystals.py', - 'catalog_infinity_crystals.py', - 'catalog_kirillov_reshetikhin.py', - 'crystals.py', - 'direct_sum.py', - 'elementary_crystals.py', - 'fast_crystals.py', - 'fully_commutative_stable_grothendieck.py', - 'generalized_young_walls.py', - 'highest_weight_crystals.py', - 'induced_structure.py', - 'infinity_crystals.py', - 'kac_modules.py', - 'kirillov_reshetikhin.py', - 'kyoto_path_model.py', - 'littelmann_path.py', - 'monomial_crystals.py', - 'multisegments.py', - 'mv_polytopes.py', - 'pbw_crystal.py', - 'polyhedral_realization.py', - 'star_crystal.py', - 'subcrystal.py', - 'tensor_product.py', - 'virtual_crystal.py', - subdir: 'sage/combinat/crystals', + 'affine.py', + 'affine_factorization.py', + 'affinization.py', + 'alcove_path.py', + 'all.py', + 'bkk_crystals.py', + 'catalog.py', + 'catalog_elementary_crystals.py', + 'catalog_infinity_crystals.py', + 'catalog_kirillov_reshetikhin.py', + 'crystals.py', + 'direct_sum.py', + 'elementary_crystals.py', + 'fast_crystals.py', + 'fully_commutative_stable_grothendieck.py', + 'generalized_young_walls.py', + 'highest_weight_crystals.py', + 'induced_structure.py', + 'infinity_crystals.py', + 'kac_modules.py', + 'kirillov_reshetikhin.py', + 'kyoto_path_model.py', + 'littelmann_path.py', + 'monomial_crystals.py', + 'multisegments.py', + 'mv_polytopes.py', + 'pbw_crystal.py', + 'polyhedral_realization.py', + 'star_crystal.py', + 'subcrystal.py', + 'tensor_product.py', + 'virtual_crystal.py', + subdir : 'sage/combinat/crystals' ) extension_data = { diff --git a/src/sage/combinat/designs/meson.build b/src/sage/combinat/designs/meson.build index a36c92e08e2..d3ebc844d69 100644 --- a/src/sage/combinat/designs/meson.build +++ b/src/sage/combinat/designs/meson.build @@ -1,25 +1,25 @@ py.install_sources( - 'MOLS_handbook_data.py', - 'all.py', - 'bibd.py', - 'block_design.py', - 'covering_array.py', - 'covering_design.py', - 'database.py', - 'design_catalog.py', - 'designs_pyx.pxd', - 'difference_family.py', - 'difference_matrices.py', - 'ext_rep.py', - 'group_divisible_designs.py', - 'incidence_structures.py', - 'latin_squares.py', - 'orthogonal_arrays.py', - 'orthogonal_arrays_build_recursive.py', - 'resolvable_bibd.py', - 'steiner_quadruple_systems.py', - 'twographs.py', - subdir: 'sage/combinat/designs', + 'MOLS_handbook_data.py', + 'all.py', + 'bibd.py', + 'block_design.py', + 'covering_array.py', + 'covering_design.py', + 'database.py', + 'design_catalog.py', + 'designs_pyx.pxd', + 'difference_family.py', + 'difference_matrices.py', + 'ext_rep.py', + 'group_divisible_designs.py', + 'incidence_structures.py', + 'latin_squares.py', + 'orthogonal_arrays.py', + 'orthogonal_arrays_build_recursive.py', + 'resolvable_bibd.py', + 'steiner_quadruple_systems.py', + 'twographs.py', + subdir : 'sage/combinat/designs' ) extension_data = { diff --git a/src/sage/combinat/integer_lists/meson.build b/src/sage/combinat/integer_lists/meson.build index dd60b6049d0..35aba6e8937 100644 --- a/src/sage/combinat/integer_lists/meson.build +++ b/src/sage/combinat/integer_lists/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - '__init__.py', - 'lists.py', - 'nn.py', - subdir: 'sage/combinat/integer_lists', -) +py.install_sources('__init__.py', 'lists.py', 'nn.py', subdir : 'sage/combinat/integer_lists') extension_data = { 'base': files('base.pyx'), diff --git a/src/sage/combinat/matrices/meson.build b/src/sage/combinat/matrices/meson.build index 63398335f03..ab79262150a 100644 --- a/src/sage/combinat/matrices/meson.build +++ b/src/sage/combinat/matrices/meson.build @@ -1,10 +1,4 @@ -py.install_sources( - 'all.py', - 'dlxcpp.py', - 'hadamard_matrix.py', - 'latin.py', - subdir: 'sage/combinat/matrices', -) +py.install_sources('all.py', 'dlxcpp.py', 'hadamard_matrix.py', 'latin.py', subdir : 'sage/combinat/matrices') extension_data_cpp = { 'dancing_links': files('dancing_links.pyx'), diff --git a/src/sage/combinat/meson.build b/src/sage/combinat/meson.build index b6899dc3e3d..4bfd6aab65d 100644 --- a/src/sage/combinat/meson.build +++ b/src/sage/combinat/meson.build @@ -1,129 +1,129 @@ py.install_sources( - 'abstract_tree.py', - 'affine_permutation.py', - 'algebraic_combinatorics.py', - 'all.py', - 'alternating_sign_matrix.py', - 'backtrack.py', - 'baxter_permutations.py', - 'bijectionist.py', - 'binary_recurrence_sequences.py', - 'binary_tree.py', - 'blob_algebra.py', - 'cartesian_product.py', - 'catalog_partitions.py', - 'cluster_complex.py', - 'colored_permutations.py', - 'combinat.py', - 'combination.py', - 'combinatorial_map.py', - 'composition.py', - 'composition_signed.py', - 'composition_tableau.py', - 'constellation.py', - 'core.py', - 'counting.py', - 'cyclic_sieving_phenomenon.py', - 'decorated_permutation.py', - 'derangements.py', - 'descent_algebra.py', - 'diagram.py', - 'diagram_algebras.py', - 'dlx.py', - 'dyck_word.py', - 'e_one_star.py', - 'enumerated_sets.py', - 'family.py', - 'finite_state_machine.py', - 'finite_state_machine_generators.py', - 'fqsym.py', - 'free_dendriform_algebra.py', - 'free_module.py', - 'free_prelie_algebra.py', - 'fully_commutative_elements.py', - 'fully_packed_loop.py', - 'gelfand_tsetlin_patterns.py', - 'graph_path.py', - 'gray_codes.py', - 'grossman_larson_algebras.py', - 'growth.py', - 'hall_polynomial.py', - 'hillman_grassl.py', - 'integer_matrices.py', - 'integer_vector.py', - 'integer_vector_weighted.py', - 'integer_vectors_mod_permgroup.py', - 'interval_posets.py', - 'k_tableau.py', - 'kazhdan_lusztig.py', - 'key_polynomial.py', - 'knutson_tao_puzzles.py', - 'lr_tableau.py', - 'misc.py', - 'multiset_partition_into_sets_ordered.py', - 'necklace.py', - 'non_decreasing_parking_function.py', - 'nu_dyck_word.py', - 'nu_tamari_lattice.py', - 'ordered_tree.py', - 'output.py', - 'parallelogram_polyomino.py', - 'parking_functions.py', - 'partition.py', - 'partition_algebra.py', - 'partition_kleshchev.py', - 'partition_shifting_algebras.py', - 'partition_tuple.py', - 'perfect_matching.py', - 'permutation.py', - 'plane_partition.py', - 'q_analogues.py', - 'quickref.py', - 'ranker.py', - 'recognizable_series.py', - 'regular_sequence.py', - 'restricted_growth.py', - 'ribbon.py', - 'ribbon_shaped_tableau.py', - 'ribbon_tableau.py', - 'rooted_tree.py', - 'rsk.py', - 'schubert_polynomial.py', - 'set_partition.py', - 'set_partition_ordered.py', - 'shard_order.py', - 'shifted_primed_tableau.py', - 'shuffle.py', - 'sidon_sets.py', - 'similarity_class_type.py', - 'sine_gordon.py', - 'six_vertex_model.py', - 'skew_partition.py', - 'skew_tableau.py', - 'sloane_functions.py', - 'specht_module.py', - 'subset.py', - 'subsets_hereditary.py', - 'subsets_pairwise.py', - 'subword.py', - 'subword_complex.py', - 'super_tableau.py', - 'superpartition.py', - 'symmetric_group_algebra.py', - 'symmetric_group_representations.py', - 't_sequences.py', - 'tableau.py', - 'tableau_residues.py', - 'tableau_tuple.py', - 'tamari_lattices.py', - 'tiling.py', - 'tools.py', - 'triangles_FHM.py', - 'tuple.py', - 'tutorial.py', - 'vector_partition.py', - 'yang_baxter_graph.py', - subdir: 'sage/combinat', + 'abstract_tree.py', + 'affine_permutation.py', + 'algebraic_combinatorics.py', + 'all.py', + 'alternating_sign_matrix.py', + 'backtrack.py', + 'baxter_permutations.py', + 'bijectionist.py', + 'binary_recurrence_sequences.py', + 'binary_tree.py', + 'blob_algebra.py', + 'cartesian_product.py', + 'catalog_partitions.py', + 'cluster_complex.py', + 'colored_permutations.py', + 'combinat.py', + 'combination.py', + 'combinatorial_map.py', + 'composition.py', + 'composition_signed.py', + 'composition_tableau.py', + 'constellation.py', + 'core.py', + 'counting.py', + 'cyclic_sieving_phenomenon.py', + 'decorated_permutation.py', + 'derangements.py', + 'descent_algebra.py', + 'diagram.py', + 'diagram_algebras.py', + 'dlx.py', + 'dyck_word.py', + 'e_one_star.py', + 'enumerated_sets.py', + 'family.py', + 'finite_state_machine.py', + 'finite_state_machine_generators.py', + 'fqsym.py', + 'free_dendriform_algebra.py', + 'free_module.py', + 'free_prelie_algebra.py', + 'fully_commutative_elements.py', + 'fully_packed_loop.py', + 'gelfand_tsetlin_patterns.py', + 'graph_path.py', + 'gray_codes.py', + 'grossman_larson_algebras.py', + 'growth.py', + 'hall_polynomial.py', + 'hillman_grassl.py', + 'integer_matrices.py', + 'integer_vector.py', + 'integer_vector_weighted.py', + 'integer_vectors_mod_permgroup.py', + 'interval_posets.py', + 'k_tableau.py', + 'kazhdan_lusztig.py', + 'key_polynomial.py', + 'knutson_tao_puzzles.py', + 'lr_tableau.py', + 'misc.py', + 'multiset_partition_into_sets_ordered.py', + 'necklace.py', + 'non_decreasing_parking_function.py', + 'nu_dyck_word.py', + 'nu_tamari_lattice.py', + 'ordered_tree.py', + 'output.py', + 'parallelogram_polyomino.py', + 'parking_functions.py', + 'partition.py', + 'partition_algebra.py', + 'partition_kleshchev.py', + 'partition_shifting_algebras.py', + 'partition_tuple.py', + 'perfect_matching.py', + 'permutation.py', + 'plane_partition.py', + 'q_analogues.py', + 'quickref.py', + 'ranker.py', + 'recognizable_series.py', + 'regular_sequence.py', + 'restricted_growth.py', + 'ribbon.py', + 'ribbon_shaped_tableau.py', + 'ribbon_tableau.py', + 'rooted_tree.py', + 'rsk.py', + 'schubert_polynomial.py', + 'set_partition.py', + 'set_partition_ordered.py', + 'shard_order.py', + 'shifted_primed_tableau.py', + 'shuffle.py', + 'sidon_sets.py', + 'similarity_class_type.py', + 'sine_gordon.py', + 'six_vertex_model.py', + 'skew_partition.py', + 'skew_tableau.py', + 'sloane_functions.py', + 'specht_module.py', + 'subset.py', + 'subsets_hereditary.py', + 'subsets_pairwise.py', + 'subword.py', + 'subword_complex.py', + 'super_tableau.py', + 'superpartition.py', + 'symmetric_group_algebra.py', + 'symmetric_group_representations.py', + 't_sequences.py', + 'tableau.py', + 'tableau_residues.py', + 'tableau_tuple.py', + 'tamari_lattices.py', + 'tiling.py', + 'tools.py', + 'triangles_FHM.py', + 'tuple.py', + 'tutorial.py', + 'vector_partition.py', + 'yang_baxter_graph.py', + subdir : 'sage/combinat' ) extension_data = { diff --git a/src/sage/combinat/posets/meson.build b/src/sage/combinat/posets/meson.build index 11fd51fbc62..bf383598438 100644 --- a/src/sage/combinat/posets/meson.build +++ b/src/sage/combinat/posets/meson.build @@ -1,18 +1,18 @@ py.install_sources( - 'all.py', - 'cartesian_product.py', - 'd_complete.py', - 'elements.py', - 'forest.py', - 'hasse_diagram.py', - 'incidence_algebras.py', - 'lattices.py', - 'linear_extensions.py', - 'mobile.py', - 'moebius_algebra.py', - 'poset_examples.py', - 'posets.py', - subdir: 'sage/combinat/posets', + 'all.py', + 'cartesian_product.py', + 'd_complete.py', + 'elements.py', + 'forest.py', + 'hasse_diagram.py', + 'incidence_algebras.py', + 'lattices.py', + 'linear_extensions.py', + 'mobile.py', + 'moebius_algebra.py', + 'poset_examples.py', + 'posets.py', + subdir : 'sage/combinat/posets' ) extension_data = { diff --git a/src/sage/combinat/rigged_configurations/meson.build b/src/sage/combinat/rigged_configurations/meson.build index 7d6630b9378..f71215e3eae 100644 --- a/src/sage/combinat/rigged_configurations/meson.build +++ b/src/sage/combinat/rigged_configurations/meson.build @@ -1,27 +1,27 @@ py.install_sources( - 'all.py', - 'bij_abstract_class.py', - 'bij_infinity.py', - 'bij_type_A.py', - 'bij_type_A2_dual.py', - 'bij_type_A2_even.py', - 'bij_type_A2_odd.py', - 'bij_type_B.py', - 'bij_type_C.py', - 'bij_type_D.py', - 'bij_type_D_tri.py', - 'bij_type_D_twisted.py', - 'bij_type_E67.py', - 'bijection.py', - 'kleber_tree.py', - 'kr_tableaux.py', - 'rc_crystal.py', - 'rc_infinity.py', - 'rigged_configuration_element.py', - 'rigged_configurations.py', - 'tensor_product_kr_tableaux.py', - 'tensor_product_kr_tableaux_element.py', - subdir: 'sage/combinat/rigged_configurations', + 'all.py', + 'bij_abstract_class.py', + 'bij_infinity.py', + 'bij_type_A.py', + 'bij_type_A2_dual.py', + 'bij_type_A2_even.py', + 'bij_type_A2_odd.py', + 'bij_type_B.py', + 'bij_type_C.py', + 'bij_type_D.py', + 'bij_type_D_tri.py', + 'bij_type_D_twisted.py', + 'bij_type_E67.py', + 'bijection.py', + 'kleber_tree.py', + 'kr_tableaux.py', + 'rc_crystal.py', + 'rc_infinity.py', + 'rigged_configuration_element.py', + 'rigged_configurations.py', + 'tensor_product_kr_tableaux.py', + 'tensor_product_kr_tableaux_element.py', + subdir : 'sage/combinat/rigged_configurations' ) extension_data = { diff --git a/src/sage/combinat/root_system/meson.build b/src/sage/combinat/root_system/meson.build index 344a26639f7..c5defca25ae 100644 --- a/src/sage/combinat/root_system/meson.build +++ b/src/sage/combinat/root_system/meson.build @@ -1,59 +1,59 @@ py.install_sources( - 'all.py', - 'ambient_space.py', - 'associahedron.py', - 'braid_move_calculator.py', - 'branching_rules.py', - 'cartan_matrix.py', - 'cartan_type.py', - 'coxeter_group.py', - 'coxeter_matrix.py', - 'coxeter_type.py', - 'dynkin_diagram.py', - 'extended_affine_weyl_group.py', - 'fundamental_group.py', - 'hecke_algebra_representation.py', - 'integrable_representations.py', - 'non_symmetric_macdonald_polynomials.py', - 'pieri_factors.py', - 'plot.py', - 'reflection_group_complex.py', - 'reflection_group_real.py', - 'root_lattice_realization_algebras.py', - 'root_lattice_realizations.py', - 'root_space.py', - 'root_system.py', - 'type_A.py', - 'type_A_affine.py', - 'type_A_infinity.py', - 'type_B.py', - 'type_BC_affine.py', - 'type_B_affine.py', - 'type_C.py', - 'type_C_affine.py', - 'type_D.py', - 'type_D_affine.py', - 'type_E.py', - 'type_E_affine.py', - 'type_F.py', - 'type_F_affine.py', - 'type_G.py', - 'type_G_affine.py', - 'type_H.py', - 'type_I.py', - 'type_Q.py', - 'type_affine.py', - 'type_dual.py', - 'type_folded.py', - 'type_marked.py', - 'type_reducible.py', - 'type_relabel.py', - 'type_super_A.py', - 'weight_lattice_realizations.py', - 'weight_space.py', - 'weyl_characters.py', - 'weyl_group.py', - subdir: 'sage/combinat/root_system', + 'all.py', + 'ambient_space.py', + 'associahedron.py', + 'braid_move_calculator.py', + 'branching_rules.py', + 'cartan_matrix.py', + 'cartan_type.py', + 'coxeter_group.py', + 'coxeter_matrix.py', + 'coxeter_type.py', + 'dynkin_diagram.py', + 'extended_affine_weyl_group.py', + 'fundamental_group.py', + 'hecke_algebra_representation.py', + 'integrable_representations.py', + 'non_symmetric_macdonald_polynomials.py', + 'pieri_factors.py', + 'plot.py', + 'reflection_group_complex.py', + 'reflection_group_real.py', + 'root_lattice_realization_algebras.py', + 'root_lattice_realizations.py', + 'root_space.py', + 'root_system.py', + 'type_A.py', + 'type_A_affine.py', + 'type_A_infinity.py', + 'type_B.py', + 'type_BC_affine.py', + 'type_B_affine.py', + 'type_C.py', + 'type_C_affine.py', + 'type_D.py', + 'type_D_affine.py', + 'type_E.py', + 'type_E_affine.py', + 'type_F.py', + 'type_F_affine.py', + 'type_G.py', + 'type_G_affine.py', + 'type_H.py', + 'type_I.py', + 'type_Q.py', + 'type_affine.py', + 'type_dual.py', + 'type_folded.py', + 'type_marked.py', + 'type_reducible.py', + 'type_relabel.py', + 'type_super_A.py', + 'weight_lattice_realizations.py', + 'weight_space.py', + 'weyl_characters.py', + 'weyl_group.py', + subdir : 'sage/combinat/root_system' ) extension_data = { diff --git a/src/sage/combinat/words/meson.build b/src/sage/combinat/words/meson.build index f9e0acd56a0..76a04423785 100644 --- a/src/sage/combinat/words/meson.build +++ b/src/sage/combinat/words/meson.build @@ -1,21 +1,21 @@ py.install_sources( - 'abstract_word.py', - 'all.py', - 'alphabet.py', - 'finite_word.py', - 'infinite_word.py', - 'lyndon_word.py', - 'morphic.py', - 'morphism.py', - 'paths.py', - 'shuffle_product.py', - 'suffix_trees.py', - 'word.py', - 'word_generators.py', - 'word_infinite_datatypes.py', - 'word_options.py', - 'words.py', - subdir: 'sage/combinat/words', + 'abstract_word.py', + 'all.py', + 'alphabet.py', + 'finite_word.py', + 'infinite_word.py', + 'lyndon_word.py', + 'morphic.py', + 'morphism.py', + 'paths.py', + 'shuffle_product.py', + 'suffix_trees.py', + 'word.py', + 'word_generators.py', + 'word_infinite_datatypes.py', + 'word_options.py', + 'words.py', + subdir : 'sage/combinat/words' ) extension_data = { diff --git a/src/sage/cpython/meson.build b/src/sage/cpython/meson.build index b4b83289127..4081613955a 100644 --- a/src/sage/cpython/meson.build +++ b/src/sage/cpython/meson.build @@ -1,22 +1,22 @@ py.install_sources( - '__init__.py', - '_py2_random.py', - 'all.py', - 'cython_metaclass.h', - 'cython_metaclass.pxd', - 'dict_del_by_value.pxd', - 'dict_internal.h', - 'getattr.pxd', - 'pycore_long.h', - 'pycore_long.pxd', - 'python_debug.h', - 'python_debug.pxd', - 'pyx_visit.h', - 'string.pxd', - 'string_impl.h', - 'type.pxd', - 'wrapperdescr.pxd', - subdir: 'sage/cpython', + '__init__.py', + '_py2_random.py', + 'all.py', + 'cython_metaclass.h', + 'cython_metaclass.pxd', + 'dict_del_by_value.pxd', + 'dict_internal.h', + 'getattr.pxd', + 'pycore_long.h', + 'pycore_long.pxd', + 'python_debug.h', + 'python_debug.pxd', + 'pyx_visit.h', + 'string.pxd', + 'string_impl.h', + 'type.pxd', + 'wrapperdescr.pxd', + subdir : 'sage/cpython' ) extension_data = { diff --git a/src/sage/crypto/meson.build b/src/sage/crypto/meson.build index a6a32908e5e..5a40424281b 100644 --- a/src/sage/crypto/meson.build +++ b/src/sage/crypto/meson.build @@ -1,18 +1,18 @@ py.install_sources( - '__init__.py', - 'all.py', - 'cipher.py', - 'classical.py', - 'classical_cipher.py', - 'cryptosystem.py', - 'lattice.py', - 'lfsr.py', - 'lwe.py', - 'sboxes.py', - 'stream.py', - 'stream_cipher.py', - 'util.py', - subdir: 'sage/crypto', + '__init__.py', + 'all.py', + 'cipher.py', + 'classical.py', + 'classical_cipher.py', + 'cryptosystem.py', + 'lattice.py', + 'lfsr.py', + 'lwe.py', + 'sboxes.py', + 'stream.py', + 'stream_cipher.py', + 'util.py', + subdir : 'sage/crypto' ) extension_data = { diff --git a/src/sage/data_structures/meson.build b/src/sage/data_structures/meson.build index 4582d9bcb75..dbbf1476444 100644 --- a/src/sage/data_structures/meson.build +++ b/src/sage/data_structures/meson.build @@ -1,18 +1,18 @@ py.install_sources( - '__init__.py', - 'all.py', - 'binary_matrix.pxd', - 'binary_search.pxd', - 'bitset.pxd', - 'bitset_base.pxd', - 'bitset_intrinsics.h', - 'blas_dict.pxd', - 'bounded_integer_sequences.pxd', - 'list_of_pairs.pxd', - 'mutable_poset.py', - 'sparse_bitset.pxd', - 'stream.py', - subdir: 'sage/data_structures', + '__init__.py', + 'all.py', + 'binary_matrix.pxd', + 'binary_search.pxd', + 'bitset.pxd', + 'bitset_base.pxd', + 'bitset_intrinsics.h', + 'blas_dict.pxd', + 'bounded_integer_sequences.pxd', + 'list_of_pairs.pxd', + 'mutable_poset.py', + 'sparse_bitset.pxd', + 'stream.py', + subdir : 'sage/data_structures' ) extension_data = { diff --git a/src/sage/dynamics/arithmetic_dynamics/meson.build b/src/sage/dynamics/arithmetic_dynamics/meson.build index 45d4d11c73d..1bfb5e38d9a 100644 --- a/src/sage/dynamics/arithmetic_dynamics/meson.build +++ b/src/sage/dynamics/arithmetic_dynamics/meson.build @@ -1,15 +1,15 @@ py.install_sources( - 'affine_ds.py', - 'all.py', - 'berkovich_ds.py', - 'dynamical_semigroup.py', - 'endPN_automorphism_group.py', - 'endPN_minimal_model.py', - 'generic_ds.py', - 'product_projective_ds.py', - 'projective_ds.py', - 'wehlerK3.py', - subdir: 'sage/dynamics/arithmetic_dynamics', + 'affine_ds.py', + 'all.py', + 'berkovich_ds.py', + 'dynamical_semigroup.py', + 'endPN_automorphism_group.py', + 'endPN_minimal_model.py', + 'generic_ds.py', + 'product_projective_ds.py', + 'projective_ds.py', + 'wehlerK3.py', + subdir : 'sage/dynamics/arithmetic_dynamics' ) extension_data = { diff --git a/src/sage/dynamics/complex_dynamics/meson.build b/src/sage/dynamics/complex_dynamics/meson.build index 22426829362..5d69ca71714 100644 --- a/src/sage/dynamics/complex_dynamics/meson.build +++ b/src/sage/dynamics/complex_dynamics/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'mandel_julia.py', - subdir: 'sage/dynamics/complex_dynamics', -) +py.install_sources('all.py', 'mandel_julia.py', subdir : 'sage/dynamics/complex_dynamics') extension_data = { 'mandel_julia_helper': files('mandel_julia_helper.pyx'), diff --git a/src/sage/dynamics/meson.build b/src/sage/dynamics/meson.build index 3d9a73c29a2..8c3f511f3d4 100644 --- a/src/sage/dynamics/meson.build +++ b/src/sage/dynamics/meson.build @@ -1,10 +1,4 @@ -py.install_sources( - 'all.py', - 'finite_dynamical_system.py', - 'finite_dynamical_system_catalog.py', - 'surface_dynamics_deprecation.py', - subdir: 'sage/dynamics', -) +py.install_sources('all.py', 'finite_dynamical_system.py', 'finite_dynamical_system_catalog.py', 'surface_dynamics_deprecation.py', subdir : 'sage/dynamics') subdir('arithmetic_dynamics') install_subdir('cellular_automata', install_dir: sage_install_dir / 'dynamics') diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build index 125ec37304c..22f787061b8 100644 --- a/src/sage/ext/interpreters/meson.build +++ b/src/sage/ext/interpreters/meson.build @@ -1,12 +1,12 @@ py.install_sources( - 'all.py', - 'wrapper_cc.pxd', - 'wrapper_cdf.pxd', - 'wrapper_el.pxd', - 'wrapper_py.pxd', - 'wrapper_rdf.pxd', - 'wrapper_rr.pxd', - subdir: 'sage/ext/interpreters', + 'all.py', + 'wrapper_cc.pxd', + 'wrapper_cdf.pxd', + 'wrapper_el.pxd', + 'wrapper_py.pxd', + 'wrapper_rdf.pxd', + 'wrapper_rr.pxd', + subdir : 'sage/ext/interpreters' ) extension_data = { diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index 4615b24361e..fdc4fe44813 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -1,14 +1,14 @@ py.install_sources( - 'all__sagemath_objects.py', - 'ccobject.h', - 'cplusplus.pxd', - 'fast_callable.pxd', - 'fast_eval.pxd', - 'memory_allocator.pxd', - 'mod_int.h', - 'mod_int.pxd', - 'stdsage.pxd', - subdir: 'sage/ext', + 'all__sagemath_objects.py', + 'ccobject.h', + 'cplusplus.pxd', + 'fast_callable.pxd', + 'fast_eval.pxd', + 'memory_allocator.pxd', + 'mod_int.h', + 'mod_int.pxd', + 'stdsage.pxd', + subdir : 'sage/ext' ) extension_data = { diff --git a/src/sage/functions/meson.build b/src/sage/functions/meson.build index 23e895c0e47..e1f77eb331e 100644 --- a/src/sage/functions/meson.build +++ b/src/sage/functions/meson.build @@ -1,25 +1,25 @@ py.install_sources( - 'airy.py', - 'all.py', - 'bessel.py', - 'error.py', - 'exp_integral.py', - 'gamma.py', - 'generalized.py', - 'hyperbolic.py', - 'hypergeometric.py', - 'jacobi.py', - 'log.py', - 'min_max.py', - 'orthogonal_polys.py', - 'other.py', - 'piecewise.py', - 'special.py', - 'spike_function.py', - 'transcendental.py', - 'trig.py', - 'wigner.py', - subdir: 'sage/functions', + 'airy.py', + 'all.py', + 'bessel.py', + 'error.py', + 'exp_integral.py', + 'gamma.py', + 'generalized.py', + 'hyperbolic.py', + 'hypergeometric.py', + 'jacobi.py', + 'log.py', + 'min_max.py', + 'orthogonal_polys.py', + 'other.py', + 'piecewise.py', + 'special.py', + 'spike_function.py', + 'transcendental.py', + 'trig.py', + 'wigner.py', + subdir : 'sage/functions' ) extension_data = { diff --git a/src/sage/games/meson.build b/src/sage/games/meson.build index bc0092e4bf2..6bc0e802a68 100644 --- a/src/sage/games/meson.build +++ b/src/sage/games/meson.build @@ -1,10 +1,4 @@ -py.install_sources( - 'all.py', - 'hexad.py', - 'quantumino.py', - 'sudoku.py', - subdir: 'sage/games', -) +py.install_sources('all.py', 'hexad.py', 'quantumino.py', 'sudoku.py', subdir : 'sage/games') extension_data = { 'sudoku_backtrack': files('sudoku_backtrack.pyx'), diff --git a/src/sage/geometry/meson.build b/src/sage/geometry/meson.build index 57853c8ae15..c4a14f0d51e 100644 --- a/src/sage/geometry/meson.build +++ b/src/sage/geometry/meson.build @@ -1,24 +1,24 @@ py.install_sources( - 'all.py', - 'cone.py', - 'cone_catalog.py', - 'convex_set.py', - 'fan.py', - 'fan_isomorphism.py', - 'fan_morphism.py', - 'hasse_diagram.py', - 'integral_points.py', - 'lattice_polytope.py', - 'linear_expression.py', - 'newton_polygon.py', - 'polyhedral_complex.py', - 'pseudolines.py', - 'relative_interior.py', - 'ribbon_graph.py', - 'toric_lattice.py', - 'toric_plotter.py', - 'voronoi_diagram.py', - subdir: 'sage/geometry', + 'all.py', + 'cone.py', + 'cone_catalog.py', + 'convex_set.py', + 'fan.py', + 'fan_isomorphism.py', + 'fan_morphism.py', + 'hasse_diagram.py', + 'integral_points.py', + 'lattice_polytope.py', + 'linear_expression.py', + 'newton_polygon.py', + 'polyhedral_complex.py', + 'pseudolines.py', + 'relative_interior.py', + 'ribbon_graph.py', + 'toric_lattice.py', + 'toric_plotter.py', + 'voronoi_diagram.py', + subdir : 'sage/geometry' ) extension_data = { diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build b/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build index fcf98755cb1..700d92bf09e 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build @@ -1,7 +1,4 @@ -py.install_sources( - 'all.py', - subdir: 'sage/geometry/polyhedron/combinatorial_polyhedron', -) +py.install_sources('all.py', subdir : 'sage/geometry/polyhedron/combinatorial_polyhedron') extension_data = { 'base': files('base.pyx'), diff --git a/src/sage/geometry/polyhedron/meson.build b/src/sage/geometry/polyhedron/meson.build index 3234e6b0167..e0715d1ae83 100644 --- a/src/sage/geometry/polyhedron/meson.build +++ b/src/sage/geometry/polyhedron/meson.build @@ -1,42 +1,42 @@ py.install_sources( - 'all.py', - 'backend_cdd.py', - 'backend_cdd_rdf.py', - 'backend_field.py', - 'backend_normaliz.py', - 'backend_number_field.py', - 'backend_polymake.py', - 'backend_ppl.py', - 'base.py', - 'base0.py', - 'base1.py', - 'base2.py', - 'base3.py', - 'base4.py', - 'base5.py', - 'base6.py', - 'base7.py', - 'base_QQ.py', - 'base_RDF.py', - 'base_ZZ.py', - 'base_mutable.py', - 'base_number_field.py', - 'cdd_file_format.py', - 'constructor.py', - 'double_description.py', - 'double_description_inhomogeneous.py', - 'face.py', - 'generating_function.py', - 'lattice_euclidean_group_element.py', - 'library.py', - 'misc.py', - 'palp_database.py', - 'parent.py', - 'plot.py', - 'ppl_lattice_polygon.py', - 'ppl_lattice_polytope.py', - 'representation.py', - subdir: 'sage/geometry/polyhedron', + 'all.py', + 'backend_cdd.py', + 'backend_cdd_rdf.py', + 'backend_field.py', + 'backend_normaliz.py', + 'backend_number_field.py', + 'backend_polymake.py', + 'backend_ppl.py', + 'base.py', + 'base0.py', + 'base1.py', + 'base2.py', + 'base3.py', + 'base4.py', + 'base5.py', + 'base6.py', + 'base7.py', + 'base_QQ.py', + 'base_RDF.py', + 'base_ZZ.py', + 'base_mutable.py', + 'base_number_field.py', + 'cdd_file_format.py', + 'constructor.py', + 'double_description.py', + 'double_description_inhomogeneous.py', + 'face.py', + 'generating_function.py', + 'lattice_euclidean_group_element.py', + 'library.py', + 'misc.py', + 'palp_database.py', + 'parent.py', + 'plot.py', + 'ppl_lattice_polygon.py', + 'ppl_lattice_polytope.py', + 'representation.py', + subdir : 'sage/geometry/polyhedron' ) subdir('combinatorial_polyhedron') diff --git a/src/sage/geometry/triangulation/meson.build b/src/sage/geometry/triangulation/meson.build index 575756c1c61..3f46a95464f 100644 --- a/src/sage/geometry/triangulation/meson.build +++ b/src/sage/geometry/triangulation/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - 'all.py', - 'element.py', - 'point_configuration.py', - subdir: 'sage/geometry/triangulation', -) +py.install_sources('all.py', 'element.py', 'point_configuration.py', subdir : 'sage/geometry/triangulation') extension_data_cpp = { 'base': files('base.pyx', 'functions.cc', 'data.cc', 'triangulations.cc'), diff --git a/src/sage/graphs/base/meson.build b/src/sage/graphs/base/meson.build index 43b5b530fbd..ef431a0f7b6 100644 --- a/src/sage/graphs/base/meson.build +++ b/src/sage/graphs/base/meson.build @@ -1,15 +1,15 @@ py.install_sources( - 'all.py', - 'boost_graph.pxd', - 'c_graph.pxd', - 'dense_graph.pxd', - 'graph_backends.pxd', - 'overview.py', - 'sparse_graph.pxd', - 'static_dense_graph.pxd', - 'static_sparse_backend.pxd', - 'static_sparse_graph.pxd', - subdir: 'sage/graphs/base', + 'all.py', + 'boost_graph.pxd', + 'c_graph.pxd', + 'dense_graph.pxd', + 'graph_backends.pxd', + 'overview.py', + 'sparse_graph.pxd', + 'static_dense_graph.pxd', + 'static_sparse_backend.pxd', + 'static_sparse_graph.pxd', + subdir : 'sage/graphs/base' ) extension_data = { diff --git a/src/sage/graphs/generators/meson.build b/src/sage/graphs/generators/meson.build index 43667d84f80..be0879c9063 100644 --- a/src/sage/graphs/generators/meson.build +++ b/src/sage/graphs/generators/meson.build @@ -1,16 +1,16 @@ py.install_sources( - 'all.py', - 'basic.py', - 'chessboard.py', - 'classical_geometries.py', - 'degree_sequence.py', - 'families.py', - 'intersection.py', - 'platonic_solids.py', - 'random.py', - 'smallgraphs.py', - 'world_map.py', - subdir: 'sage/graphs/generators', + 'all.py', + 'basic.py', + 'chessboard.py', + 'classical_geometries.py', + 'degree_sequence.py', + 'families.py', + 'intersection.py', + 'platonic_solids.py', + 'random.py', + 'smallgraphs.py', + 'world_map.py', + subdir : 'sage/graphs/generators' ) extension_data = { diff --git a/src/sage/graphs/graph_decompositions/meson.build b/src/sage/graphs/graph_decompositions/meson.build index 569049303ad..19b2786578e 100644 --- a/src/sage/graphs/graph_decompositions/meson.build +++ b/src/sage/graphs/graph_decompositions/meson.build @@ -7,14 +7,14 @@ rw = declare_dependency( ) py.install_sources( - 'all.py', - 'all__sagemath_tdlib.py', - 'fast_digraph.pxd', - 'modular_decomposition.py', - 'rankwidth.pxd', - 'tree_decomposition.pxd', - 'vertex_separation.pxd', - subdir: 'sage/graphs/graph_decompositions', + 'all.py', + 'all__sagemath_tdlib.py', + 'fast_digraph.pxd', + 'modular_decomposition.py', + 'rankwidth.pxd', + 'tree_decomposition.pxd', + 'vertex_separation.pxd', + subdir : 'sage/graphs/graph_decompositions' ) extension_data = { diff --git a/src/sage/graphs/meson.build b/src/sage/graphs/meson.build index a564f8f3d09..a992796e777 100644 --- a/src/sage/graphs/meson.build +++ b/src/sage/graphs/meson.build @@ -9,44 +9,44 @@ planarity = declare_dependency( ] ) py.install_sources( - 'all.py', - 'all__sagemath_bliss.py', - 'all__sagemath_mcqd.py', - 'all__sagemath_tdlib.py', - 'bipartite_graph.py', - 'cliquer.pxd', - 'connectivity.pxd', - 'convexity_properties.pxd', - 'digraph.py', - 'digraph_generators.py', - 'distances_all_pairs.pxd', - 'domination.py', - 'dot2tex_utils.py', - 'generic_graph.py', - 'generic_graph_pyx.pxd', - 'graph.py', - 'graph_database.py', - 'graph_editor.py', - 'graph_generators.py', - 'graph_input.py', - 'graph_latex.py', - 'graph_list.py', - 'graph_plot.py', - 'graph_plot_js.py', - 'hypergraph_generators.py', - 'independent_sets.pxd', - 'isgci.py', - 'lovasz_theta.py', - 'mcqd.pxd', - 'orientations.py', - 'partial_cube.py', - 'pq_trees.py', - 'print_graphs.py', - 'schnyder.py', - 'traversals.pxd', - 'trees.pxd', - 'tutte_polynomial.py', - subdir: 'sage/graphs', + 'all.py', + 'all__sagemath_bliss.py', + 'all__sagemath_mcqd.py', + 'all__sagemath_tdlib.py', + 'bipartite_graph.py', + 'cliquer.pxd', + 'connectivity.pxd', + 'convexity_properties.pxd', + 'digraph.py', + 'digraph_generators.py', + 'distances_all_pairs.pxd', + 'domination.py', + 'dot2tex_utils.py', + 'generic_graph.py', + 'generic_graph_pyx.pxd', + 'graph.py', + 'graph_database.py', + 'graph_editor.py', + 'graph_generators.py', + 'graph_input.py', + 'graph_latex.py', + 'graph_list.py', + 'graph_plot.py', + 'graph_plot_js.py', + 'hypergraph_generators.py', + 'independent_sets.pxd', + 'isgci.py', + 'lovasz_theta.py', + 'mcqd.pxd', + 'orientations.py', + 'partial_cube.py', + 'pq_trees.py', + 'print_graphs.py', + 'schnyder.py', + 'traversals.pxd', + 'trees.pxd', + 'tutte_polynomial.py', + subdir : 'sage/graphs' ) extension_data = { diff --git a/src/sage/groups/matrix_gps/meson.build b/src/sage/groups/matrix_gps/meson.build index 51348e1110b..de499c053da 100644 --- a/src/sage/groups/matrix_gps/meson.build +++ b/src/sage/groups/matrix_gps/meson.build @@ -1,28 +1,28 @@ py.install_sources( - 'all.py', - 'binary_dihedral.py', - 'catalog.py', - 'coxeter_group.py', - 'finitely_generated.py', - 'finitely_generated_gap.py', - 'heisenberg.py', - 'homset.py', - 'isometries.py', - 'linear.py', - 'linear_gap.py', - 'matrix_group.py', - 'matrix_group_gap.py', - 'morphism.py', - 'named_group.py', - 'named_group_gap.py', - 'orthogonal.py', - 'orthogonal_gap.py', - 'pickling_overrides.py', - 'symplectic.py', - 'symplectic_gap.py', - 'unitary.py', - 'unitary_gap.py', - subdir: 'sage/groups/matrix_gps', + 'all.py', + 'binary_dihedral.py', + 'catalog.py', + 'coxeter_group.py', + 'finitely_generated.py', + 'finitely_generated_gap.py', + 'heisenberg.py', + 'homset.py', + 'isometries.py', + 'linear.py', + 'linear_gap.py', + 'matrix_group.py', + 'matrix_group_gap.py', + 'morphism.py', + 'named_group.py', + 'named_group_gap.py', + 'orthogonal.py', + 'orthogonal_gap.py', + 'pickling_overrides.py', + 'symplectic.py', + 'symplectic_gap.py', + 'unitary.py', + 'unitary_gap.py', + subdir : 'sage/groups/matrix_gps' ) extension_data = { diff --git a/src/sage/groups/meson.build b/src/sage/groups/meson.build index 495e4c48415..f49474c2860 100644 --- a/src/sage/groups/meson.build +++ b/src/sage/groups/meson.build @@ -1,33 +1,33 @@ py.install_sources( - 'all.py', - 'artin.py', - 'braid.py', - 'cactus_group.py', - 'class_function.py', - 'conjugacy_classes.py', - 'cubic_braid.py', - 'finitely_presented.py', - 'finitely_presented_catalog.py', - 'finitely_presented_named.py', - 'fqf_orthogonal.py', - 'free_group.py', - 'galois_group.py', - 'galois_group_perm.py', - 'generic.py', - 'group.pxd', - 'group_exp.py', - 'group_semidirect_product.py', - 'groups_catalog.py', - 'indexed_free_group.py', - 'kernel_subgroup.py', - 'libgap_group.py', - 'libgap_mixin.py', - 'libgap_morphism.py', - 'libgap_wrapper.pxd', - 'old.pxd', - 'pari_group.py', - 'raag.py', - subdir: 'sage/groups', + 'all.py', + 'artin.py', + 'braid.py', + 'cactus_group.py', + 'class_function.py', + 'conjugacy_classes.py', + 'cubic_braid.py', + 'finitely_presented.py', + 'finitely_presented_catalog.py', + 'finitely_presented_named.py', + 'fqf_orthogonal.py', + 'free_group.py', + 'galois_group.py', + 'galois_group_perm.py', + 'generic.py', + 'group.pxd', + 'group_exp.py', + 'group_semidirect_product.py', + 'groups_catalog.py', + 'indexed_free_group.py', + 'kernel_subgroup.py', + 'libgap_group.py', + 'libgap_mixin.py', + 'libgap_morphism.py', + 'libgap_wrapper.pxd', + 'old.pxd', + 'pari_group.py', + 'raag.py', + subdir : 'sage/groups' ) extension_data = { diff --git a/src/sage/groups/perm_gps/meson.build b/src/sage/groups/perm_gps/meson.build index e964b9ff4dd..eee96dacab0 100644 --- a/src/sage/groups/perm_gps/meson.build +++ b/src/sage/groups/perm_gps/meson.build @@ -1,13 +1,13 @@ py.install_sources( - 'all.py', - 'constructor.py', - 'cubegroup.py', - 'permgroup.py', - 'permgroup_morphism.py', - 'permgroup_named.py', - 'permutation_groups_catalog.py', - 'symgp_conjugacy_class.py', - subdir: 'sage/groups/perm_gps', + 'all.py', + 'constructor.py', + 'cubegroup.py', + 'permgroup.py', + 'permgroup_morphism.py', + 'permgroup_named.py', + 'permutation_groups_catalog.py', + 'symgp_conjugacy_class.py', + subdir : 'sage/groups/perm_gps' ) extension_data = { diff --git a/src/sage/groups/perm_gps/partn_ref/meson.build b/src/sage/groups/perm_gps/partn_ref/meson.build index 3e741020944..347d4b11cb3 100644 --- a/src/sage/groups/perm_gps/partn_ref/meson.build +++ b/src/sage/groups/perm_gps/partn_ref/meson.build @@ -1,7 +1,4 @@ -py.install_sources( - 'all.py', - subdir: 'sage/groups/perm_gps/partn_ref', -) +py.install_sources('all.py', subdir : 'sage/groups/perm_gps/partn_ref') extension_data = { 'automorphism_group_canonical_label': files('automorphism_group_canonical_label.pyx'), diff --git a/src/sage/groups/perm_gps/partn_ref2/meson.build b/src/sage/groups/perm_gps/partn_ref2/meson.build index 76838c53d74..d25038bb14d 100644 --- a/src/sage/groups/perm_gps/partn_ref2/meson.build +++ b/src/sage/groups/perm_gps/partn_ref2/meson.build @@ -1,7 +1,4 @@ -py.install_sources( - 'all.py', - subdir: 'sage/groups/perm_gps/partn_ref2', -) +py.install_sources('all.py', subdir : 'sage/groups/perm_gps/partn_ref2') extension_data = { 'refinement_generic': files('refinement_generic.pyx'), diff --git a/src/sage/groups/semimonomial_transformations/meson.build b/src/sage/groups/semimonomial_transformations/meson.build index c05e3e2d2b5..00b94c7bc38 100644 --- a/src/sage/groups/semimonomial_transformations/meson.build +++ b/src/sage/groups/semimonomial_transformations/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'semimonomial_transformation_group.py', - subdir: 'sage/groups/semimonomial_transformations', -) +py.install_sources('all.py', 'semimonomial_transformation_group.py', subdir : 'sage/groups/semimonomial_transformations') extension_data = { 'semimonomial_transformation': files('semimonomial_transformation.pyx'), diff --git a/src/sage/interacts/meson.build b/src/sage/interacts/meson.build index aa72c33da62..56c1eeb0622 100644 --- a/src/sage/interacts/meson.build +++ b/src/sage/interacts/meson.build @@ -1,12 +1,12 @@ py.install_sources( - 'algebra.py', - 'all.py', - 'calculus.py', - 'fractals.py', - 'geometry.py', - 'library.py', - 'statistics.py', - subdir: 'sage/interacts', + 'algebra.py', + 'all.py', + 'calculus.py', + 'fractals.py', + 'geometry.py', + 'library.py', + 'statistics.py', + subdir : 'sage/interacts' ) extension_data = { diff --git a/src/sage/interfaces/meson.build b/src/sage/interfaces/meson.build index 4c2bd0fe578..f7086657ce6 100644 --- a/src/sage/interfaces/meson.build +++ b/src/sage/interfaces/meson.build @@ -1,64 +1,64 @@ py.install_sources( - 'abc.py', - 'all.py', - 'all__sagemath_polyhedra.py', - 'axiom.py', - 'chomp.py', - 'cleaner.py', - 'ecm.py', - 'expect.py', - 'four_ti_2.py', - 'fricas.py', - 'frobby.py', - 'gap.py', - 'gap3.py', - 'gap_workspace.py', - 'genus2reduction.py', - 'gfan.py', - 'giac.py', - 'gnuplot.py', - 'gp.py', - 'interface.py', - 'jmoldata.py', - 'kash.py', - 'kenzo.py', - 'latte.py', - 'lie.py', - 'lisp.py', - 'macaulay2.py', - 'magma.py', - 'magma_free.py', - 'maple.py', - 'mathematica.py', - 'mathics.py', - 'matlab.py', - 'maxima.py', - 'maxima_abstract.py', - 'maxima_lib.py', - 'mupad.py', - 'mwrank.py', - 'octave.py', - 'phc.py', - 'polymake.py', - 'povray.py', - 'psage.py', - 'qepcad.py', - 'qsieve.py', - 'quit.py', - 'r.py', - 'read_data.py', - 'rubik.py', - 'sage0.py', - 'sage-maxima.lisp', - 'scilab.py', - 'singular.py', - 'sympy.py', - 'sympy_wrapper.py', - 'tab_completion.py', - 'tachyon.py', - 'tests.py', - 'tides.py', - subdir: 'sage/interfaces', + 'abc.py', + 'all.py', + 'all__sagemath_polyhedra.py', + 'axiom.py', + 'chomp.py', + 'cleaner.py', + 'ecm.py', + 'expect.py', + 'four_ti_2.py', + 'fricas.py', + 'frobby.py', + 'gap.py', + 'gap3.py', + 'gap_workspace.py', + 'genus2reduction.py', + 'gfan.py', + 'giac.py', + 'gnuplot.py', + 'gp.py', + 'interface.py', + 'jmoldata.py', + 'kash.py', + 'kenzo.py', + 'latte.py', + 'lie.py', + 'lisp.py', + 'macaulay2.py', + 'magma.py', + 'magma_free.py', + 'maple.py', + 'mathematica.py', + 'mathics.py', + 'matlab.py', + 'maxima.py', + 'maxima_abstract.py', + 'maxima_lib.py', + 'mupad.py', + 'mwrank.py', + 'octave.py', + 'phc.py', + 'polymake.py', + 'povray.py', + 'psage.py', + 'qepcad.py', + 'qsieve.py', + 'quit.py', + 'r.py', + 'read_data.py', + 'rubik.py', + 'sage-maxima.lisp', + 'sage0.py', + 'scilab.py', + 'singular.py', + 'sympy.py', + 'sympy_wrapper.py', + 'tab_completion.py', + 'tachyon.py', + 'tests.py', + 'tides.py', + subdir : 'sage/interfaces' ) extension_data = { diff --git a/src/sage/lfunctions/meson.build b/src/sage/lfunctions/meson.build index 50d701cba55..024507e1043 100644 --- a/src/sage/lfunctions/meson.build +++ b/src/sage/lfunctions/meson.build @@ -1,10 +1,10 @@ py.install_sources( - 'all.py', - 'dokchitser.py', - 'lcalc.py', - 'pari.py', - 'sympow.py', - subdir: 'sage/lfunctions', + 'all.py', + 'dokchitser.py', + 'lcalc.py', + 'pari.py', + 'sympow.py', + subdir : 'sage/lfunctions' ) extension_data = { diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index cd5ec778dd1..d8f90891b1d 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -1,21 +1,21 @@ py.install_sources( - '__init__.py', - 'acb.pxd', - 'acb_calc.pxd', - 'acb_elliptic.pxd', - 'acb_hypgeom.pxd', - 'acb_mat.pxd', - 'acb_modular.pxd', - 'acb_poly.pxd', - 'arb.pxd', - 'arb_fmpz_poly.pxd', - 'arb_hypgeom.pxd', - 'arb_wrap.h', - 'arf.pxd', - 'bernoulli.pxd', - 'mag.pxd', - 'types.pxd', - subdir: 'sage/libs/arb', + '__init__.py', + 'acb.pxd', + 'acb_calc.pxd', + 'acb_elliptic.pxd', + 'acb_hypgeom.pxd', + 'acb_mat.pxd', + 'acb_modular.pxd', + 'acb_poly.pxd', + 'arb.pxd', + 'arb_fmpz_poly.pxd', + 'arb_hypgeom.pxd', + 'arb_wrap.h', + 'arf.pxd', + 'bernoulli.pxd', + 'mag.pxd', + 'types.pxd', + subdir : 'sage/libs/arb' ) extension_data = { diff --git a/src/sage/libs/coxeter3/meson.build b/src/sage/libs/coxeter3/meson.build index ea75996ddb7..1c5505c9aa0 100644 --- a/src/sage/libs/coxeter3/meson.build +++ b/src/sage/libs/coxeter3/meson.build @@ -1,11 +1,11 @@ coxeter3 = cc.find_library('coxeter3', required: false) py.install_sources( - '__init__.py', - 'all__sagemath_coxeter3.py', - 'coxeter.pxd', - 'coxeter_group.py', - 'decl.pxd', - subdir: 'sage/libs/coxeter3', + '__init__.py', + 'all__sagemath_coxeter3.py', + 'coxeter.pxd', + 'coxeter_group.py', + 'decl.pxd', + subdir : 'sage/libs/coxeter3' ) diff --git a/src/sage/libs/eclib/meson.build b/src/sage/libs/eclib/meson.build index 4cdca5b7c42..e7d224188cb 100644 --- a/src/sage/libs/eclib/meson.build +++ b/src/sage/libs/eclib/meson.build @@ -1,12 +1,12 @@ py.install_sources( - '__init__.py', - 'all.py', - 'constructor.py', - 'homspace.pxd', - 'interface.py', - 'mat.pxd', - 'newforms.pxd', - subdir: 'sage/libs/eclib', + '__init__.py', + 'all.py', + 'constructor.py', + 'homspace.pxd', + 'interface.py', + 'mat.pxd', + 'newforms.pxd', + subdir : 'sage/libs/eclib' ) extension_data_cpp = { diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build index 88d8a479603..63efeb48959 100644 --- a/src/sage/libs/flint/meson.build +++ b/src/sage/libs/flint/meson.build @@ -1,34 +1,34 @@ py.install_sources( - '__init__.py', - 'arith.pxd', - 'flint.pxd', - 'flint_ntl_wrap.h', - 'flint_wrap.h', - 'fmpq.pxd', - 'fmpq_mat.pxd', - 'fmpq_poly.pxd', - 'fmpz.pxd', - 'fmpz_factor.pxd', - 'fmpz_mat.pxd', - 'fmpz_mod.pxd', - 'fmpz_mod_poly.pxd', - 'fmpz_poly.pxd', - 'fmpz_poly_mat.pxd', - 'fmpz_poly_q.pxd', - 'fmpz_vec.pxd', - 'fq.pxd', - 'fq_nmod.pxd', - 'nmod_poly.pxd', - 'nmod_vec.pxd', - 'ntl_interface.pxd', - 'padic.pxd', - 'padic_poly.pxd', - 'qadic.pxd', - 'qsieve.pxd', - 'thread_pool.pxd', - 'types.pxd', - 'ulong_extras.pxd', - subdir: 'sage/libs/flint', + '__init__.py', + 'arith.pxd', + 'flint.pxd', + 'flint_ntl_wrap.h', + 'flint_wrap.h', + 'fmpq.pxd', + 'fmpq_mat.pxd', + 'fmpq_poly.pxd', + 'fmpz.pxd', + 'fmpz_factor.pxd', + 'fmpz_mat.pxd', + 'fmpz_mod.pxd', + 'fmpz_mod_poly.pxd', + 'fmpz_poly.pxd', + 'fmpz_poly_mat.pxd', + 'fmpz_poly_q.pxd', + 'fmpz_vec.pxd', + 'fq.pxd', + 'fq_nmod.pxd', + 'nmod_poly.pxd', + 'nmod_vec.pxd', + 'ntl_interface.pxd', + 'padic.pxd', + 'padic_poly.pxd', + 'qadic.pxd', + 'qsieve.pxd', + 'thread_pool.pxd', + 'types.pxd', + 'ulong_extras.pxd', + subdir : 'sage/libs/flint' ) extension_data = { diff --git a/src/sage/libs/gap/meson.build b/src/sage/libs/gap/meson.build index 6256bb82f19..df6ccfee84b 100644 --- a/src/sage/libs/gap/meson.build +++ b/src/sage/libs/gap/meson.build @@ -1,19 +1,19 @@ py.install_sources( - 'all.py', - 'all_documented_functions.py', - 'assigned_names.py', - 'context_managers.py', - 'element.pxd', - 'gap_functions.py', - 'gap_globals.py', - 'gap_includes.pxd', - 'operations.py', - 'sage.gaprc', - 'saved_workspace.py', - 'test.py', - 'test_long.py', - 'util.pxd', - subdir: 'sage/libs/gap', + 'all.py', + 'all_documented_functions.py', + 'assigned_names.py', + 'context_managers.py', + 'element.pxd', + 'gap_functions.py', + 'gap_globals.py', + 'gap_includes.pxd', + 'operations.py', + 'sage.gaprc', + 'saved_workspace.py', + 'test.py', + 'test_long.py', + 'util.pxd', + subdir : 'sage/libs/gap' ) extension_data = { diff --git a/src/sage/libs/giac/meson.build b/src/sage/libs/giac/meson.build index f4003c4a9c7..6e0638ededf 100644 --- a/src/sage/libs/giac/meson.build +++ b/src/sage/libs/giac/meson.build @@ -4,12 +4,7 @@ giac = declare_dependency( ] ) -py.install_sources( - '__init__.py', - 'giac.pxd', - 'misc.h', - subdir: 'sage/libs/giac', -) +py.install_sources('__init__.py', 'giac.pxd', 'misc.h', subdir : 'sage/libs/giac') extension_data_cpp = { 'giac': files('giac.pyx'), diff --git a/src/sage/libs/glpk/meson.build b/src/sage/libs/glpk/meson.build index 080e12bd275..32eaa0bb9a4 100644 --- a/src/sage/libs/glpk/meson.build +++ b/src/sage/libs/glpk/meson.build @@ -1,11 +1,11 @@ py.install_sources( - '__init__.py', - 'constants.pxd', - 'env.pxd', - 'graph.pxd', - 'lp.pxd', - 'types.pxd', - subdir: 'sage/libs/glpk', + '__init__.py', + 'constants.pxd', + 'env.pxd', + 'graph.pxd', + 'lp.pxd', + 'types.pxd', + subdir : 'sage/libs/glpk' ) extension_data = { diff --git a/src/sage/libs/gmp/meson.build b/src/sage/libs/gmp/meson.build index 7eaa2b4f586..7cb927e811a 100644 --- a/src/sage/libs/gmp/meson.build +++ b/src/sage/libs/gmp/meson.build @@ -1,17 +1,17 @@ py.install_sources( - '__init__.py', - 'all.pxd', - 'binop.pxd', - 'misc.pxd', - 'mpf.pxd', - 'mpn.pxd', - 'mpq.pxd', - 'mpz.pxd', - 'pylong.pxd', - 'random.pxd', - 'randomize.pxd', - 'types.pxd', - subdir: 'sage/libs/gmp', + '__init__.py', + 'all.pxd', + 'binop.pxd', + 'misc.pxd', + 'mpf.pxd', + 'mpn.pxd', + 'mpq.pxd', + 'mpz.pxd', + 'pylong.pxd', + 'random.pxd', + 'randomize.pxd', + 'types.pxd', + subdir : 'sage/libs/gmp' ) extension_data = { diff --git a/src/sage/libs/gsl/meson.build b/src/sage/libs/gsl/meson.build index 39d674466f3..42f05e23a6a 100644 --- a/src/sage/libs/gsl/meson.build +++ b/src/sage/libs/gsl/meson.build @@ -1,70 +1,70 @@ py.install_sources( - '__init__.py', - 'airy.pxd', - 'all.pxd', - 'array.pxd', - 'bessel.pxd', - 'blas.pxd', - 'blas_types.pxd', - 'block.pxd', - 'chebyshev.pxd', - 'clausen.pxd', - 'combination.pxd', - 'complex.pxd', - 'coulomb.pxd', - 'coupling.pxd', - 'dawson.pxd', - 'debye.pxd', - 'dilog.pxd', - 'eigen.pxd', - 'elementary.pxd', - 'ellint.pxd', - 'elljac.pxd', - 'erf.pxd', - 'errno.pxd', - 'exp.pxd', - 'expint.pxd', - 'fermi_dirac.pxd', - 'fft.pxd', - 'fit.pxd', - 'gamma.pxd', - 'gegenbauer.pxd', - 'histogram.pxd', - 'hyperg.pxd', - 'integration.pxd', - 'interp.pxd', - 'laguerre.pxd', - 'lambert.pxd', - 'legendre.pxd', - 'linalg.pxd', - 'log.pxd', - 'math.pxd', - 'matrix.pxd', - 'matrix_complex.pxd', - 'min.pxd', - 'monte.pxd', - 'ntuple.pxd', - 'odeiv.pxd', - 'permutation.pxd', - 'poly.pxd', - 'pow_int.pxd', - 'psi.pxd', - 'qrng.pxd', - 'random.pxd', - 'rng.pxd', - 'roots.pxd', - 'sort.pxd', - 'statistics.pxd', - 'sum.pxd', - 'synchrotron.pxd', - 'transport.pxd', - 'trig.pxd', - 'types.pxd', - 'vector.pxd', - 'vector_complex.pxd', - 'wavelet.pxd', - 'zeta.pxd', - subdir: 'sage/libs/gsl', + '__init__.py', + 'airy.pxd', + 'all.pxd', + 'array.pxd', + 'bessel.pxd', + 'blas.pxd', + 'blas_types.pxd', + 'block.pxd', + 'chebyshev.pxd', + 'clausen.pxd', + 'combination.pxd', + 'complex.pxd', + 'coulomb.pxd', + 'coupling.pxd', + 'dawson.pxd', + 'debye.pxd', + 'dilog.pxd', + 'eigen.pxd', + 'elementary.pxd', + 'ellint.pxd', + 'elljac.pxd', + 'erf.pxd', + 'errno.pxd', + 'exp.pxd', + 'expint.pxd', + 'fermi_dirac.pxd', + 'fft.pxd', + 'fit.pxd', + 'gamma.pxd', + 'gegenbauer.pxd', + 'histogram.pxd', + 'hyperg.pxd', + 'integration.pxd', + 'interp.pxd', + 'laguerre.pxd', + 'lambert.pxd', + 'legendre.pxd', + 'linalg.pxd', + 'log.pxd', + 'math.pxd', + 'matrix.pxd', + 'matrix_complex.pxd', + 'min.pxd', + 'monte.pxd', + 'ntuple.pxd', + 'odeiv.pxd', + 'permutation.pxd', + 'poly.pxd', + 'pow_int.pxd', + 'psi.pxd', + 'qrng.pxd', + 'random.pxd', + 'rng.pxd', + 'roots.pxd', + 'sort.pxd', + 'statistics.pxd', + 'sum.pxd', + 'synchrotron.pxd', + 'transport.pxd', + 'trig.pxd', + 'types.pxd', + 'vector.pxd', + 'vector_complex.pxd', + 'wavelet.pxd', + 'zeta.pxd', + subdir : 'sage/libs/gsl' ) extension_data = { diff --git a/src/sage/libs/lcalc/meson.build b/src/sage/libs/lcalc/meson.build index e70ed610108..ee7287fe08e 100644 --- a/src/sage/libs/lcalc/meson.build +++ b/src/sage/libs/lcalc/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - '__init__.py', - 'lcalc_Lfunction.pxd', - 'lcalc_sage.h', - subdir: 'sage/libs/lcalc', -) +py.install_sources('__init__.py', 'lcalc_Lfunction.pxd', 'lcalc_sage.h', subdir : 'sage/libs/lcalc') extension_data_cpp = { 'lcalc_Lfunction': files('lcalc_Lfunction.pyx'), diff --git a/src/sage/libs/linbox/meson.build b/src/sage/libs/linbox/meson.build index 48b092ed5d8..9f26f94d40e 100644 --- a/src/sage/libs/linbox/meson.build +++ b/src/sage/libs/linbox/meson.build @@ -1,11 +1,11 @@ py.install_sources( - '__init__.py', - 'conversion.pxd', - 'fflas.pxd', - 'givaro.pxd', - 'linbox.pxd', - 'linbox_flint_interface.pxd', - subdir: 'sage/libs/linbox', + '__init__.py', + 'conversion.pxd', + 'fflas.pxd', + 'givaro.pxd', + 'linbox.pxd', + 'linbox_flint_interface.pxd', + subdir : 'sage/libs/linbox' ) extension_data_cpp = { diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index a19f4b023fa..924f8fa4f11 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -7,19 +7,19 @@ sirocco = declare_dependency( ecl = cc.find_library('ecl') py.install_sources( - 'all.py', - 'all__sagemath_coxeter3.py', - 'all__sagemath_meataxe.py', - 'all__sagemath_objects.py', - 'all__sagemath_sirocco.py', - 'ecl.pxd', - 'eclsig.h', - 'gmpxx.pxd', - 'iml.pxd', - 'm4ri.pxd', - 'm4rie.pxd', - 'meataxe.pxd', - subdir: 'sage/libs', + 'all.py', + 'all__sagemath_coxeter3.py', + 'all__sagemath_meataxe.py', + 'all__sagemath_objects.py', + 'all__sagemath_sirocco.py', + 'ecl.pxd', + 'eclsig.h', + 'gmpxx.pxd', + 'iml.pxd', + 'm4ri.pxd', + 'm4rie.pxd', + 'meataxe.pxd', + subdir : 'sage/libs' ) extension_data = { diff --git a/src/sage/libs/mpmath/meson.build b/src/sage/libs/mpmath/meson.build index 7bd5c737668..394a4da4357 100644 --- a/src/sage/libs/mpmath/meson.build +++ b/src/sage/libs/mpmath/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - '__init__.py', - 'all.py', - 'utils.pxd', - subdir: 'sage/libs/mpmath', -) +py.install_sources('__init__.py', 'all.py', 'utils.pxd', subdir : 'sage/libs/mpmath') extension_data = { 'ext_impl': files('ext_impl.pyx'), diff --git a/src/sage/libs/ntl/meson.build b/src/sage/libs/ntl/meson.build index cf4b30ad55a..cd75a03cd19 100644 --- a/src/sage/libs/ntl/meson.build +++ b/src/sage/libs/ntl/meson.build @@ -1,49 +1,49 @@ py.install_sources( - 'GF2.pxd', - 'GF2E.pxd', - 'GF2EX.pxd', - 'GF2X.pxd', - 'ZZ.pxd', - 'ZZX.pxd', - 'ZZ_p.pxd', - 'ZZ_pE.pxd', - 'ZZ_pEX.pxd', - 'ZZ_pX.pxd', - '__init__.py', - 'all.py', - 'conversion.pxd', - 'convert.pxd', - 'lzz_p.pxd', - 'lzz_pX.pxd', - 'mat_GF2.pxd', - 'mat_GF2E.pxd', - 'mat_ZZ.pxd', - 'ntl_GF2.pxd', - 'ntl_GF2E.pxd', - 'ntl_GF2EContext.pxd', - 'ntl_GF2EX.pxd', - 'ntl_GF2X.pxd', - 'ntl_ZZ.pxd', - 'ntl_ZZX.pxd', - 'ntl_ZZ_p.pxd', - 'ntl_ZZ_pContext.pxd', - 'ntl_ZZ_pE.pxd', - 'ntl_ZZ_pEContext.pxd', - 'ntl_ZZ_pEX.pxd', - 'ntl_ZZ_pX.pxd', - 'ntl_lzz_p.pxd', - 'ntl_lzz_pContext.pxd', - 'ntl_lzz_pX.pxd', - 'ntl_mat_GF2.pxd', - 'ntl_mat_GF2E.pxd', - 'ntl_mat_ZZ.pxd', - 'ntl_tools.pxd', - 'ntlwrap.h', - 'ntlwrap_impl.h', - 'types.pxd', - 'vec_GF2.pxd', - 'vec_GF2E.pxd', - subdir: 'sage/libs/ntl', + 'GF2.pxd', + 'GF2E.pxd', + 'GF2EX.pxd', + 'GF2X.pxd', + 'ZZ.pxd', + 'ZZX.pxd', + 'ZZ_p.pxd', + 'ZZ_pE.pxd', + 'ZZ_pEX.pxd', + 'ZZ_pX.pxd', + '__init__.py', + 'all.py', + 'conversion.pxd', + 'convert.pxd', + 'lzz_p.pxd', + 'lzz_pX.pxd', + 'mat_GF2.pxd', + 'mat_GF2E.pxd', + 'mat_ZZ.pxd', + 'ntl_GF2.pxd', + 'ntl_GF2E.pxd', + 'ntl_GF2EContext.pxd', + 'ntl_GF2EX.pxd', + 'ntl_GF2X.pxd', + 'ntl_ZZ.pxd', + 'ntl_ZZX.pxd', + 'ntl_ZZ_p.pxd', + 'ntl_ZZ_pContext.pxd', + 'ntl_ZZ_pE.pxd', + 'ntl_ZZ_pEContext.pxd', + 'ntl_ZZ_pEX.pxd', + 'ntl_ZZ_pX.pxd', + 'ntl_lzz_p.pxd', + 'ntl_lzz_pContext.pxd', + 'ntl_lzz_pX.pxd', + 'ntl_mat_GF2.pxd', + 'ntl_mat_GF2E.pxd', + 'ntl_mat_ZZ.pxd', + 'ntl_tools.pxd', + 'ntlwrap.h', + 'ntlwrap_impl.h', + 'types.pxd', + 'vec_GF2.pxd', + 'vec_GF2E.pxd', + subdir : 'sage/libs/ntl' ) extension_data_cpp = { diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build index da41b9a3507..8e3236af9bd 100644 --- a/src/sage/libs/pari/meson.build +++ b/src/sage/libs/pari/meson.build @@ -1,15 +1,15 @@ py.install_sources( - '__init__.py', - 'all.py', - 'convert_flint.pxd', - 'convert_gmp.pxd', - 'convert_sage.pxd', - 'convert_sage_complex_double.pxd', - 'convert_sage_real_double.pxd', - 'convert_sage_real_mpfr.pxd', - 'misc.pxd', - 'tests.py', - subdir: 'sage/libs/pari', + '__init__.py', + 'all.py', + 'convert_flint.pxd', + 'convert_gmp.pxd', + 'convert_sage.pxd', + 'convert_sage_complex_double.pxd', + 'convert_sage_real_double.pxd', + 'convert_sage_real_mpfr.pxd', + 'misc.pxd', + 'tests.py', + subdir : 'sage/libs/pari' ) extension_data = { diff --git a/src/sage/libs/singular/meson.build b/src/sage/libs/singular/meson.build index 1a7037adaa5..cb0d0709354 100644 --- a/src/sage/libs/singular/meson.build +++ b/src/sage/libs/singular/meson.build @@ -1,14 +1,14 @@ py.install_sources( - '__init__.py', - 'decl.pxd', - 'function.pxd', - 'function_factory.py', - 'groebner_strategy.pxd', - 'polynomial.pxd', - 'ring.pxd', - 'singular.pxd', - 'standard_options.py', - subdir: 'sage/libs/singular', + '__init__.py', + 'decl.pxd', + 'function.pxd', + 'function_factory.py', + 'groebner_strategy.pxd', + 'polynomial.pxd', + 'ring.pxd', + 'singular.pxd', + 'standard_options.py', + subdir : 'sage/libs/singular' ) extension_data_cpp = { diff --git a/src/sage/libs/symmetrica/meson.build b/src/sage/libs/symmetrica/meson.build index 8b2d10570ac..36fa3b99f30 100644 --- a/src/sage/libs/symmetrica/meson.build +++ b/src/sage/libs/symmetrica/meson.build @@ -5,11 +5,7 @@ symmetrica = declare_dependency( ] ) -py.install_sources( - '__init__.py', - 'all.py', - subdir: 'sage/libs/symmetrica', -) +py.install_sources('__init__.py', 'all.py', subdir : 'sage/libs/symmetrica') extension_data = { 'symmetrica': files('symmetrica.pyx'), diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index 8b67f6b1bfc..a9255459faa 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -12,22 +12,22 @@ iml = declare_dependency( py.install_sources( - '__init__.py', - 'all.py', - 'all__sagemath_meataxe.py', - 'benchmark.py', - 'berlekamp_massey.py', - 'compute_J_ideal.py', - 'docs.py', - 'matrix_integer_dense_hnf.py', - 'matrix_integer_dense_saturation.py', - 'matrix_misc.py', - 'matrix_space.py', - 'operation_table.py', - 'special.py', - 'symplectic_basis.py', - 'tests.py', - subdir: 'sage/matrix', + '__init__.py', + 'all.py', + 'all__sagemath_meataxe.py', + 'benchmark.py', + 'berlekamp_massey.py', + 'compute_J_ideal.py', + 'docs.py', + 'matrix_integer_dense_hnf.py', + 'matrix_integer_dense_saturation.py', + 'matrix_misc.py', + 'matrix_space.py', + 'operation_table.py', + 'special.py', + 'symplectic_basis.py', + 'tests.py', + subdir : 'sage/matrix' ) extension_data = { diff --git a/src/sage/matroids/meson.build b/src/sage/matroids/meson.build index 917758578b5..b8e706a9414 100644 --- a/src/sage/matroids/meson.build +++ b/src/sage/matroids/meson.build @@ -1,19 +1,19 @@ py.install_sources( - 'advanced.py', - 'all.py', - 'catalog.py', - 'constructor.py', - 'database_collections.py', - 'database_matroids.py', - 'dual_matroid.py', - 'graphic_matroid.py', - 'matroids_catalog.py', - 'matroids_plot_helpers.py', - 'minor_matroid.py', - 'named_matroids.py', - 'rank_matroid.py', - 'utilities.py', - subdir: 'sage/matroids', + 'advanced.py', + 'all.py', + 'catalog.py', + 'constructor.py', + 'database_collections.py', + 'database_matroids.py', + 'dual_matroid.py', + 'graphic_matroid.py', + 'matroids_catalog.py', + 'matroids_plot_helpers.py', + 'minor_matroid.py', + 'named_matroids.py', + 'rank_matroid.py', + 'utilities.py', + subdir : 'sage/matroids' ) extension_data = { diff --git a/src/sage/meson.build b/src/sage/meson.build index 43fc0332b92..d505ccfecdf 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -73,22 +73,22 @@ foreach package : no_processing endforeach py.install_sources( - '__init__.py', - 'all.py', - 'all__sagemath_bliss.py', - 'all__sagemath_categories.py', - 'all__sagemath_coxeter3.py', - 'all__sagemath_environment.py', - 'all__sagemath_mcqd.py', - 'all__sagemath_meataxe.py', - 'all__sagemath_objects.py', - 'all__sagemath_repl.py', - 'all__sagemath_sirocco.py', - 'all__sagemath_tdlib.py', - 'all_cmdline.py', - 'env.py', - 'version.py', - subdir: 'sage', + '__init__.py', + 'all.py', + 'all__sagemath_bliss.py', + 'all__sagemath_categories.py', + 'all__sagemath_coxeter3.py', + 'all__sagemath_environment.py', + 'all__sagemath_mcqd.py', + 'all__sagemath_meataxe.py', + 'all__sagemath_objects.py', + 'all__sagemath_repl.py', + 'all__sagemath_sirocco.py', + 'all__sagemath_tdlib.py', + 'all_cmdline.py', + 'env.py', + 'version.py', + subdir : 'sage' ) subdir('cpython') diff --git a/src/sage/misc/meson.build b/src/sage/misc/meson.build index 27e76f59025..eccd8be3347 100644 --- a/src/sage/misc/meson.build +++ b/src/sage/misc/meson.build @@ -1,93 +1,93 @@ py.install_sources( - '__init__.py', - 'abstract_method.py', - 'all.py', - 'all__sagemath_environment.py', - 'all__sagemath_objects.py', - 'all__sagemath_repl.py', - 'allocator.pxd', - 'banner.py', - 'benchmark.py', - 'binary_tree.pxd', - 'bindable_class.py', - 'c3_controlled.pxd', - 'cachefunc.pxd', - 'call.py', - 'classcall_metaclass.pxd', - 'classgraph.py', - 'compat.py', - 'converting_dict.py', - 'copying.py', - 'cython.py', - 'decorators.py', - 'defaults.py', - 'dev_tools.py', - 'dist.py', - 'edit_module.py', - 'element_with_label.py', - 'explain_pickle.py', - 'fast_methods.pxd', - 'flatten.py', - 'func_persist.py', - 'function_mangling.pxd', - 'functional.py', - 'gperftools.py', - 'html.py', - 'inherit_comparison.pxd', - 'inline_fortran.py', - 'latex.py', - 'latex_macros.py', - 'latex_standalone.py', - 'lazy_format.py', - 'lazy_import_cache.py', - 'lazy_list.pxd', - 'lazy_string.pxd', - 'map_threaded.py', - 'mathml.py', - 'messaging.py', - 'method_decorator.py', - 'misc.py', - 'misc_c.pxd', - 'mrange.py', - 'multireplace.py', - 'namespace_package.py', - 'nested_class.pxd', - 'object_multiplexer.py', - 'package.py', - 'package_dir.py', - 'pager.py', - 'prandom.py', - 'profiler.py', - 'proof.py', - 'python.py', - 'random_testing.py', - 'randstate.pxd', - 'remote_file.py', - 'replace_dot_all.py', - 'repr.py', - 'rest_index_of_methods.py', - 'sage_eval.py', - 'sage_input.py', - 'sage_timeit.py', - 'sage_unittest.py', - 'sagedoc.py', - 'sagedoc_conf.py', - 'sageinspect.py', - 'search.pxd', - 'sh.py', - 'sphinxify.py', - 'superseded.py', - 'table.py', - 'temporary_file.py', - 'test_class_pickling.py', - 'test_nested_class.py', - 'timing.py', - 'trace.py', - 'unknown.py', - 'verbose.py', - 'viewer.py', - 'weak_dict.pxd', - subdir: 'sage/misc', + '__init__.py', + 'abstract_method.py', + 'all.py', + 'all__sagemath_environment.py', + 'all__sagemath_objects.py', + 'all__sagemath_repl.py', + 'allocator.pxd', + 'banner.py', + 'benchmark.py', + 'binary_tree.pxd', + 'bindable_class.py', + 'c3_controlled.pxd', + 'cachefunc.pxd', + 'call.py', + 'classcall_metaclass.pxd', + 'classgraph.py', + 'compat.py', + 'converting_dict.py', + 'copying.py', + 'cython.py', + 'decorators.py', + 'defaults.py', + 'dev_tools.py', + 'dist.py', + 'edit_module.py', + 'element_with_label.py', + 'explain_pickle.py', + 'fast_methods.pxd', + 'flatten.py', + 'func_persist.py', + 'function_mangling.pxd', + 'functional.py', + 'gperftools.py', + 'html.py', + 'inherit_comparison.pxd', + 'inline_fortran.py', + 'latex.py', + 'latex_macros.py', + 'latex_standalone.py', + 'lazy_format.py', + 'lazy_import_cache.py', + 'lazy_list.pxd', + 'lazy_string.pxd', + 'map_threaded.py', + 'mathml.py', + 'messaging.py', + 'method_decorator.py', + 'misc.py', + 'misc_c.pxd', + 'mrange.py', + 'multireplace.py', + 'namespace_package.py', + 'nested_class.pxd', + 'object_multiplexer.py', + 'package.py', + 'package_dir.py', + 'pager.py', + 'prandom.py', + 'profiler.py', + 'proof.py', + 'python.py', + 'random_testing.py', + 'randstate.pxd', + 'remote_file.py', + 'replace_dot_all.py', + 'repr.py', + 'rest_index_of_methods.py', + 'sage_eval.py', + 'sage_input.py', + 'sage_timeit.py', + 'sage_unittest.py', + 'sagedoc.py', + 'sagedoc_conf.py', + 'sageinspect.py', + 'search.pxd', + 'sh.py', + 'sphinxify.py', + 'superseded.py', + 'table.py', + 'temporary_file.py', + 'test_class_pickling.py', + 'test_nested_class.py', + 'timing.py', + 'trace.py', + 'unknown.py', + 'verbose.py', + 'viewer.py', + 'weak_dict.pxd', + subdir : 'sage/misc' ) extension_data = { diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index e642bf49b0d..da0d531e418 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -1,15 +1,15 @@ py.install_sources( - 'all.py', - 'arithgroup_generic.py', - 'arithgroup_perm.py', - 'congroup_gamma.py', - 'congroup_gamma0.py', - 'congroup_gamma1.py', - 'congroup_gammaH.py', - 'congroup_generic.py', - 'congroup_sl2z.py', - 'tests.py', - subdir: 'sage/modular/arithgroup', + 'all.py', + 'arithgroup_generic.py', + 'arithgroup_perm.py', + 'congroup_gamma.py', + 'congroup_gamma0.py', + 'congroup_gamma1.py', + 'congroup_gammaH.py', + 'congroup_generic.py', + 'congroup_sl2z.py', + 'tests.py', + subdir : 'sage/modular/arithgroup' ) extension_data = { diff --git a/src/sage/modular/meson.build b/src/sage/modular/meson.build index fca36f6d674..fb4dce49d66 100644 --- a/src/sage/modular/meson.build +++ b/src/sage/modular/meson.build @@ -1,17 +1,17 @@ py.install_sources( - 'all.py', - 'buzzard.py', - 'congroup.py', - 'congroup_element.py', - 'cusps.py', - 'cusps_nf.py', - 'dims.py', - 'dirichlet.py', - 'etaproducts.py', - 'hypergeometric_motive.py', - 'multiple_zeta.py', - 'multiple_zeta_F_algebra.py', - subdir: 'sage/modular', + 'all.py', + 'buzzard.py', + 'congroup.py', + 'congroup_element.py', + 'cusps.py', + 'cusps_nf.py', + 'dims.py', + 'dirichlet.py', + 'etaproducts.py', + 'hypergeometric_motive.py', + 'multiple_zeta.py', + 'multiple_zeta_F_algebra.py', + subdir : 'sage/modular' ) extension_data = { diff --git a/src/sage/modular/modform/meson.build b/src/sage/modular/modform/meson.build index e80b0324357..d154837ba69 100644 --- a/src/sage/modular/modform/meson.build +++ b/src/sage/modular/modform/meson.build @@ -1,32 +1,32 @@ py.install_sources( - 'all.py', - 'ambient.py', - 'ambient_R.py', - 'ambient_eps.py', - 'ambient_g0.py', - 'ambient_g1.py', - 'constructor.py', - 'cuspidal_submodule.py', - 'defaults.py', - 'eis_series.py', - 'eisenstein_submodule.py', - 'element.py', - 'find_generators.py', - 'half_integral.py', - 'hecke_operator_on_qexp.py', - 'j_invariant.py', - 'l_series_gross_zagier.py', - 'notes.py', - 'numerical.py', - 'periods.py', - 'ring.py', - 'space.py', - 'submodule.py', - 'tests.py', - 'theta.py', - 'vm_basis.py', - 'weight1.py', - subdir: 'sage/modular/modform', + 'all.py', + 'ambient.py', + 'ambient_R.py', + 'ambient_eps.py', + 'ambient_g0.py', + 'ambient_g1.py', + 'constructor.py', + 'cuspidal_submodule.py', + 'defaults.py', + 'eis_series.py', + 'eisenstein_submodule.py', + 'element.py', + 'find_generators.py', + 'half_integral.py', + 'hecke_operator_on_qexp.py', + 'j_invariant.py', + 'l_series_gross_zagier.py', + 'notes.py', + 'numerical.py', + 'periods.py', + 'ring.py', + 'space.py', + 'submodule.py', + 'tests.py', + 'theta.py', + 'vm_basis.py', + 'weight1.py', + subdir : 'sage/modular/modform' ) extension_data = { diff --git a/src/sage/modular/modsym/meson.build b/src/sage/modular/modsym/meson.build index e3c62628de4..c2164d0f014 100644 --- a/src/sage/modular/modsym/meson.build +++ b/src/sage/modular/modsym/meson.build @@ -1,20 +1,20 @@ py.install_sources( - 'all.py', - 'ambient.py', - 'boundary.py', - 'element.py', - 'g1list.py', - 'ghlist.py', - 'hecke_operator.py', - 'manin_symbol_list.py', - 'modsym.py', - 'modular_symbols.py', - 'p1list_nf.py', - 'relation_matrix.py', - 'space.py', - 'subspace.py', - 'tests.py', - subdir: 'sage/modular/modsym', + 'all.py', + 'ambient.py', + 'boundary.py', + 'element.py', + 'g1list.py', + 'ghlist.py', + 'hecke_operator.py', + 'manin_symbol_list.py', + 'modsym.py', + 'modular_symbols.py', + 'p1list_nf.py', + 'relation_matrix.py', + 'space.py', + 'subspace.py', + 'tests.py', + subdir : 'sage/modular/modsym' ) extension_data = { diff --git a/src/sage/modular/pollack_stevens/meson.build b/src/sage/modular/pollack_stevens/meson.build index b2e360ee861..0ae6515ad80 100644 --- a/src/sage/modular/pollack_stevens/meson.build +++ b/src/sage/modular/pollack_stevens/meson.build @@ -1,13 +1,13 @@ py.install_sources( - 'all.py', - 'distributions.py', - 'fund_domain.py', - 'manin_map.py', - 'modsym.py', - 'padic_lseries.py', - 'sigma0.py', - 'space.py', - subdir: 'sage/modular/pollack_stevens', + 'all.py', + 'distributions.py', + 'fund_domain.py', + 'manin_map.py', + 'modsym.py', + 'padic_lseries.py', + 'sigma0.py', + 'space.py', + subdir : 'sage/modular/pollack_stevens' ) extension_data = { diff --git a/src/sage/modules/meson.build b/src/sage/modules/meson.build index 6fcfc0f7ae4..73926e095d3 100644 --- a/src/sage/modules/meson.build +++ b/src/sage/modules/meson.build @@ -1,30 +1,30 @@ py.install_sources( - 'all.py', - 'complex_double_vector.py', - 'diamond_cutting.py', - 'filtered_vector_space.py', - 'free_module.py', - 'free_module_homspace.py', - 'free_module_integer.py', - 'free_module_morphism.py', - 'free_quadratic_module.py', - 'free_quadratic_module_integer_symmetric.py', - 'matrix_morphism.py', - 'misc.py', - 'module_functors.py', - 'multi_filtered_vector_space.py', - 'quotient_module.py', - 'real_double_vector.py', - 'submodule.py', - 'tensor_operations.py', - 'torsion_quadratic_module.py', - 'tutorial_free_modules.py', - 'vector_callable_symbolic_dense.py', - 'vector_space_homspace.py', - 'vector_space_morphism.py', - 'vector_symbolic_dense.py', - 'vector_symbolic_sparse.py', - subdir: 'sage/modules', + 'all.py', + 'complex_double_vector.py', + 'diamond_cutting.py', + 'filtered_vector_space.py', + 'free_module.py', + 'free_module_homspace.py', + 'free_module_integer.py', + 'free_module_morphism.py', + 'free_quadratic_module.py', + 'free_quadratic_module_integer_symmetric.py', + 'matrix_morphism.py', + 'misc.py', + 'module_functors.py', + 'multi_filtered_vector_space.py', + 'quotient_module.py', + 'real_double_vector.py', + 'submodule.py', + 'tensor_operations.py', + 'torsion_quadratic_module.py', + 'tutorial_free_modules.py', + 'vector_callable_symbolic_dense.py', + 'vector_space_homspace.py', + 'vector_space_morphism.py', + 'vector_symbolic_dense.py', + 'vector_symbolic_sparse.py', + subdir : 'sage/modules' ) extension_data = { diff --git a/src/sage/modules/with_basis/meson.build b/src/sage/modules/with_basis/meson.build index 55554a0aa4e..f1a4d6f1595 100644 --- a/src/sage/modules/with_basis/meson.build +++ b/src/sage/modules/with_basis/meson.build @@ -1,11 +1,11 @@ py.install_sources( - 'all.py', - 'cell_module.py', - 'invariant.py', - 'morphism.py', - 'representation.py', - 'subquotient.py', - subdir: 'sage/modules/with_basis', + 'all.py', + 'cell_module.py', + 'invariant.py', + 'morphism.py', + 'representation.py', + 'subquotient.py', + subdir : 'sage/modules/with_basis' ) extension_data = { diff --git a/src/sage/monoids/meson.build b/src/sage/monoids/meson.build index 6ded8192939..9a91c3c5501 100644 --- a/src/sage/monoids/meson.build +++ b/src/sage/monoids/meson.build @@ -1,17 +1,17 @@ py.install_sources( - 'all.py', - 'automatic_semigroup.py', - 'free_abelian_monoid.py', - 'free_monoid.py', - 'free_monoid_element.py', - 'hecke_monoid.py', - 'indexed_free_monoid.py', - 'monoid.py', - 'string_monoid.py', - 'string_monoid_element.py', - 'string_ops.py', - 'trace_monoid.py', - subdir: 'sage/monoids', + 'all.py', + 'automatic_semigroup.py', + 'free_abelian_monoid.py', + 'free_monoid.py', + 'free_monoid_element.py', + 'hecke_monoid.py', + 'indexed_free_monoid.py', + 'monoid.py', + 'string_monoid.py', + 'string_monoid_element.py', + 'string_ops.py', + 'trace_monoid.py', + subdir : 'sage/monoids' ) extension_data = { diff --git a/src/sage/numerical/backends/meson.build b/src/sage/numerical/backends/meson.build index 2b33de4a94e..6d82562abde 100644 --- a/src/sage/numerical/backends/meson.build +++ b/src/sage/numerical/backends/meson.build @@ -1,16 +1,16 @@ py.install_sources( - 'all.py', - 'all__sagemath_polyhedra.py', - 'cvxopt_backend_test.py', - 'cvxpy_backend_test.py', - 'generic_backend_test.py', - 'glpk_backend_test.py', - 'glpk_exact_backend_test.py', - 'interactivelp_backend_test.py', - 'logging_backend.py', - 'ppl_backend_test.py', - 'scip_backend_test.py', - subdir: 'sage/numerical/backends', + 'all.py', + 'all__sagemath_polyhedra.py', + 'cvxopt_backend_test.py', + 'cvxpy_backend_test.py', + 'generic_backend_test.py', + 'glpk_backend_test.py', + 'glpk_exact_backend_test.py', + 'interactivelp_backend_test.py', + 'logging_backend.py', + 'ppl_backend_test.py', + 'scip_backend_test.py', + subdir : 'sage/numerical/backends' ) extension_data = { diff --git a/src/sage/numerical/meson.build b/src/sage/numerical/meson.build index bb004a460c7..e78b0aa8ee6 100644 --- a/src/sage/numerical/meson.build +++ b/src/sage/numerical/meson.build @@ -1,12 +1,12 @@ py.install_sources( - 'all.py', - 'all__sagemath_polyhedra.py', - 'interactive_simplex_method.py', - 'knapsack.py', - 'linear_tensor.py', - 'linear_tensor_constraints.py', - 'optimize.py', - subdir: 'sage/numerical', + 'all.py', + 'all__sagemath_polyhedra.py', + 'interactive_simplex_method.py', + 'knapsack.py', + 'linear_tensor.py', + 'linear_tensor_constraints.py', + 'optimize.py', + subdir : 'sage/numerical' ) extension_data = { diff --git a/src/sage/plot/meson.build b/src/sage/plot/meson.build index a47688cf61f..38bc0d2deb8 100644 --- a/src/sage/plot/meson.build +++ b/src/sage/plot/meson.build @@ -1,35 +1,35 @@ py.install_sources( - 'all.py', - 'animate.py', - 'arc.py', - 'arrow.py', - 'bar_chart.py', - 'bezier_path.py', - 'circle.py', - 'colors.py', - 'contour_plot.py', - 'density_plot.py', - 'disk.py', - 'ellipse.py', - 'graphics.py', - 'histogram.py', - 'hyperbolic_arc.py', - 'hyperbolic_polygon.py', - 'hyperbolic_regular_polygon.py', - 'line.py', - 'matrix_plot.py', - 'misc.py', - 'multigraphics.py', - 'plot.py', - 'plot_field.py', - 'point.py', - 'polygon.py', - 'primitive.py', - 'scatter_plot.py', - 'step.py', - 'streamline_plot.py', - 'text.py', - subdir: 'sage/plot', + 'all.py', + 'animate.py', + 'arc.py', + 'arrow.py', + 'bar_chart.py', + 'bezier_path.py', + 'circle.py', + 'colors.py', + 'contour_plot.py', + 'density_plot.py', + 'disk.py', + 'ellipse.py', + 'graphics.py', + 'histogram.py', + 'hyperbolic_arc.py', + 'hyperbolic_polygon.py', + 'hyperbolic_regular_polygon.py', + 'line.py', + 'matrix_plot.py', + 'misc.py', + 'multigraphics.py', + 'plot.py', + 'plot_field.py', + 'point.py', + 'polygon.py', + 'primitive.py', + 'scatter_plot.py', + 'step.py', + 'streamline_plot.py', + 'text.py', + subdir : 'sage/plot' ) extension_data = { diff --git a/src/sage/plot/plot3d/meson.build b/src/sage/plot/plot3d/meson.build index b6b12e0ba6b..1f67c0de600 100644 --- a/src/sage/plot/plot3d/meson.build +++ b/src/sage/plot/plot3d/meson.build @@ -1,18 +1,18 @@ py.install_sources( - 'all.py', - 'implicit_plot3d.py', - 'introduction.py', - 'list_plot3d.py', - 'parametric_plot3d.py', - 'platonic.py', - 'plot3d.py', - 'plot_field3d.py', - 'revolution_plot3d.py', - 'shapes2.py', - 'tachyon.py', - 'texture.py', - 'tri_plot.py', - subdir: 'sage/plot/plot3d', + 'all.py', + 'implicit_plot3d.py', + 'introduction.py', + 'list_plot3d.py', + 'parametric_plot3d.py', + 'platonic.py', + 'plot3d.py', + 'plot_field3d.py', + 'revolution_plot3d.py', + 'shapes2.py', + 'tachyon.py', + 'texture.py', + 'tri_plot.py', + subdir : 'sage/plot/plot3d' ) extension_data = { diff --git a/src/sage/probability/meson.build b/src/sage/probability/meson.build index 92ac98eb026..f7cd120c89f 100644 --- a/src/sage/probability/meson.build +++ b/src/sage/probability/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'random_variable.py', - subdir: 'sage/probability', -) +py.install_sources('all.py', 'random_variable.py', subdir : 'sage/probability') extension_data = { 'probability_distribution': files('probability_distribution.pyx'), diff --git a/src/sage/quadratic_forms/meson.build b/src/sage/quadratic_forms/meson.build index 46581073301..34491d3c7ef 100644 --- a/src/sage/quadratic_forms/meson.build +++ b/src/sage/quadratic_forms/meson.build @@ -1,34 +1,34 @@ py.install_sources( - 'all.py', - 'binary_qf.py', - 'bqf_class_group.py', - 'constructions.py', - 'extras.py', - 'qfsolve.py', - 'quadratic_form.py', - 'quadratic_form__automorphisms.py', - 'quadratic_form__count_local_2.py', - 'quadratic_form__equivalence_testing.py', - 'quadratic_form__genus.py', - 'quadratic_form__local_density_congruence.py', - 'quadratic_form__local_density_interfaces.py', - 'quadratic_form__local_field_invariants.py', - 'quadratic_form__local_normal_form.py', - 'quadratic_form__local_representation_conditions.py', - 'quadratic_form__mass.py', - 'quadratic_form__mass__Conway_Sloane_masses.py', - 'quadratic_form__mass__Siegel_densities.py', - 'quadratic_form__neighbors.py', - 'quadratic_form__reduction_theory.py', - 'quadratic_form__siegel_product.py', - 'quadratic_form__split_local_covering.py', - 'quadratic_form__ternary_Tornaria.py', - 'quadratic_form__theta.py', - 'quadratic_form__variable_substitutions.py', - 'random_quadraticform.py', - 'special_values.py', - 'ternary_qf.py', - subdir: 'sage/quadratic_forms', + 'all.py', + 'binary_qf.py', + 'bqf_class_group.py', + 'constructions.py', + 'extras.py', + 'qfsolve.py', + 'quadratic_form.py', + 'quadratic_form__automorphisms.py', + 'quadratic_form__count_local_2.py', + 'quadratic_form__equivalence_testing.py', + 'quadratic_form__genus.py', + 'quadratic_form__local_density_congruence.py', + 'quadratic_form__local_density_interfaces.py', + 'quadratic_form__local_field_invariants.py', + 'quadratic_form__local_normal_form.py', + 'quadratic_form__local_representation_conditions.py', + 'quadratic_form__mass.py', + 'quadratic_form__mass__Conway_Sloane_masses.py', + 'quadratic_form__mass__Siegel_densities.py', + 'quadratic_form__neighbors.py', + 'quadratic_form__reduction_theory.py', + 'quadratic_form__siegel_product.py', + 'quadratic_form__split_local_covering.py', + 'quadratic_form__ternary_Tornaria.py', + 'quadratic_form__theta.py', + 'quadratic_form__variable_substitutions.py', + 'random_quadraticform.py', + 'special_values.py', + 'ternary_qf.py', + subdir : 'sage/quadratic_forms' ) extension_data = { diff --git a/src/sage/quivers/meson.build b/src/sage/quivers/meson.build index 35a7459ed1e..656f59c87dc 100644 --- a/src/sage/quivers/meson.build +++ b/src/sage/quivers/meson.build @@ -1,11 +1,12 @@ py.install_sources( - 'algebra.py', - 'all.py', - 'homspace.py', - 'morphism.py', - 'path_semigroup.py', - 'representation.py', - subdir: 'sage/quivers', + 'algebra.py', + 'all.py', + 'ar_quiver.py', + 'homspace.py', + 'morphism.py', + 'path_semigroup.py', + 'representation.py', + subdir : 'sage/quivers' ) extension_data = { diff --git a/src/sage/rings/convert/meson.build b/src/sage/rings/convert/meson.build index 65d9d870063..1d25da30b04 100644 --- a/src/sage/rings/convert/meson.build +++ b/src/sage/rings/convert/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'mpfi.pxd', - subdir: 'sage/rings/convert', -) +py.install_sources('all.py', 'mpfi.pxd', subdir : 'sage/rings/convert') extension_data = { 'mpfi': files('mpfi.pyx'), diff --git a/src/sage/rings/finite_rings/meson.build b/src/sage/rings/finite_rings/meson.build index c1935bab281..1f6ec21b1ee 100644 --- a/src/sage/rings/finite_rings/meson.build +++ b/src/sage/rings/finite_rings/meson.build @@ -1,28 +1,28 @@ py.install_sources( - 'all.py', - 'conway_polynomials.py', - 'element_base.pxd', - 'element_givaro.pxd', - 'element_ntl_gf2e.pxd', - 'element_pari_ffelt.pxd', - 'finite_field_base.pxd', - 'finite_field_constructor.py', - 'finite_field_givaro.py', - 'finite_field_ntl_gf2e.py', - 'finite_field_pari_ffelt.py', - 'finite_field_prime_modn.py', - 'galois_group.py', - 'hom_finite_field.pxd', - 'hom_finite_field_givaro.pxd', - 'hom_prime_finite_field.pxd', - 'homset.py', - 'integer_mod.pxd', - 'integer_mod_limits.h', - 'integer_mod_ring.py', - 'maps_finite_field.py', - 'residue_field.pxd', - 'stdint.pxd', - subdir: 'sage/rings/finite_rings', + 'all.py', + 'conway_polynomials.py', + 'element_base.pxd', + 'element_givaro.pxd', + 'element_ntl_gf2e.pxd', + 'element_pari_ffelt.pxd', + 'finite_field_base.pxd', + 'finite_field_constructor.py', + 'finite_field_givaro.py', + 'finite_field_ntl_gf2e.py', + 'finite_field_pari_ffelt.py', + 'finite_field_prime_modn.py', + 'galois_group.py', + 'hom_finite_field.pxd', + 'hom_finite_field_givaro.pxd', + 'hom_prime_finite_field.pxd', + 'homset.py', + 'integer_mod.pxd', + 'integer_mod_limits.h', + 'integer_mod_ring.py', + 'maps_finite_field.py', + 'residue_field.pxd', + 'stdint.pxd', + subdir : 'sage/rings/finite_rings' ) extension_data = { diff --git a/src/sage/rings/function_field/meson.build b/src/sage/rings/function_field/meson.build index 501d28f8015..0a805390fcd 100644 --- a/src/sage/rings/function_field/meson.build +++ b/src/sage/rings/function_field/meson.build @@ -1,30 +1,30 @@ py.install_sources( - 'all.py', - 'constructor.py', - 'derivations.py', - 'derivations_polymod.py', - 'derivations_rational.py', - 'differential.py', - 'divisor.py', - 'element.pxd', - 'extensions.py', - 'function_field.py', - 'function_field_polymod.py', - 'function_field_rational.py', - 'ideal.py', - 'ideal_polymod.py', - 'ideal_rational.py', - 'maps.py', - 'order.py', - 'order_basis.py', - 'order_polymod.py', - 'order_rational.py', - 'place.py', - 'place_polymod.py', - 'place_rational.py', - 'valuation.py', - 'valuation_ring.py', - subdir: 'sage/rings/function_field', + 'all.py', + 'constructor.py', + 'derivations.py', + 'derivations_polymod.py', + 'derivations_rational.py', + 'differential.py', + 'divisor.py', + 'element.pxd', + 'extensions.py', + 'function_field.py', + 'function_field_polymod.py', + 'function_field_rational.py', + 'ideal.py', + 'ideal_polymod.py', + 'ideal_rational.py', + 'maps.py', + 'order.py', + 'order_basis.py', + 'order_polymod.py', + 'order_rational.py', + 'place.py', + 'place_polymod.py', + 'place_rational.py', + 'valuation.py', + 'valuation_ring.py', + subdir : 'sage/rings/function_field' ) extension_data = { diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 3559d7b0471..88f97458fbd 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -5,87 +5,87 @@ pthread = declare_dependency( ) py.install_sources( - '__init__.py', - 'abc.pxd', - 'algebraic_closure_finite_field.py', - 'all.py', - 'all__sagemath_categories.py', - 'all__sagemath_objects.py', - 'big_oh.py', - 'cc.py', - 'cfinite_sequence.py', - 'cif.py', - 'commutative_algebra.py', - 'complex_arb.pxd', - 'complex_conversion.pxd', - 'complex_double.pxd', - 'complex_interval.pxd', - 'complex_interval_field.py', - 'complex_mpc.pxd', - 'complex_mpfr.pxd', - 'continued_fraction.py', - 'continued_fraction_gosper.py', - 'derivation.py', - 'fast_arith.pxd', - 'fraction_field.py', - 'fraction_field_FpT.pxd', - 'generic.py', - 'homset.py', - 'ideal.py', - 'ideal_monoid.py', - 'imaginary_unit.py', - 'infinity.py', - 'integer.pxd', - 'integer.pyx', - 'integer_fake.h', - 'integer_fake.pxd', - 'integer_ring.pxd', - 'integer_ring.pyx', - 'laurent_series_ring.py', - 'laurent_series_ring_element.pxd', - 'lazy_series.py', - 'lazy_series_ring.py', - 'localization.py', - 'monomials.py', - 'morphism.pxd', - 'multi_power_series_ring.py', - 'multi_power_series_ring_element.py', - 'numbers_abc.py', - 'pari_ring.py', - 'power_series_mpoly.pxd', - 'power_series_pari.pxd', - 'power_series_poly.pxd', - 'power_series_ring.py', - 'power_series_ring_element.pxd', - 'puiseux_series_ring.py', - 'puiseux_series_ring_element.pxd', - 'qqbar.py', - 'qqbar_decorators.py', - 'quotient_ring.py', - 'quotient_ring_element.py', - 'rational.pxd', - 'rational.pyx', - 'rational_field.py', - 'real_arb.pxd', - 'real_double.pxd', - 'real_double_element_gsl.pxd', - 'real_field.py', - 'real_lazy.pxd', - 'real_mpfi.pxd', - 'real_mpfr.pxd', - 'ring.pxd', - 'ring_extension.pxd', - 'ring_extension_conversion.pxd', - 'ring_extension_element.pxd', - 'ring_extension_homset.py', - 'ring_extension_morphism.pxd', - 'sum_of_squares.pxd', - 'tate_algebra.py', - 'tate_algebra_element.pxd', - 'tate_algebra_ideal.pxd', - 'tests.py', - 'universal_cyclotomic_field.py', - subdir: 'sage/rings', + '__init__.py', + 'abc.pxd', + 'algebraic_closure_finite_field.py', + 'all.py', + 'all__sagemath_categories.py', + 'all__sagemath_objects.py', + 'big_oh.py', + 'cc.py', + 'cfinite_sequence.py', + 'cif.py', + 'commutative_algebra.py', + 'complex_arb.pxd', + 'complex_conversion.pxd', + 'complex_double.pxd', + 'complex_interval.pxd', + 'complex_interval_field.py', + 'complex_mpc.pxd', + 'complex_mpfr.pxd', + 'continued_fraction.py', + 'continued_fraction_gosper.py', + 'derivation.py', + 'fast_arith.pxd', + 'fraction_field.py', + 'fraction_field_FpT.pxd', + 'generic.py', + 'homset.py', + 'ideal.py', + 'ideal_monoid.py', + 'imaginary_unit.py', + 'infinity.py', + 'integer.pxd', + 'integer.pyx', + 'integer_fake.h', + 'integer_fake.pxd', + 'integer_ring.pxd', + 'integer_ring.pyx', + 'laurent_series_ring.py', + 'laurent_series_ring_element.pxd', + 'lazy_series.py', + 'lazy_series_ring.py', + 'localization.py', + 'monomials.py', + 'morphism.pxd', + 'multi_power_series_ring.py', + 'multi_power_series_ring_element.py', + 'numbers_abc.py', + 'pari_ring.py', + 'power_series_mpoly.pxd', + 'power_series_pari.pxd', + 'power_series_poly.pxd', + 'power_series_ring.py', + 'power_series_ring_element.pxd', + 'puiseux_series_ring.py', + 'puiseux_series_ring_element.pxd', + 'qqbar.py', + 'qqbar_decorators.py', + 'quotient_ring.py', + 'quotient_ring_element.py', + 'rational.pxd', + 'rational.pyx', + 'rational_field.py', + 'real_arb.pxd', + 'real_double.pxd', + 'real_double_element_gsl.pxd', + 'real_field.py', + 'real_lazy.pxd', + 'real_mpfi.pxd', + 'real_mpfr.pxd', + 'ring.pxd', + 'ring_extension.pxd', + 'ring_extension_conversion.pxd', + 'ring_extension_element.pxd', + 'ring_extension_homset.py', + 'ring_extension_morphism.pxd', + 'sum_of_squares.pxd', + 'tate_algebra.py', + 'tate_algebra_element.pxd', + 'tate_algebra_ideal.pxd', + 'tests.py', + 'universal_cyclotomic_field.py', + subdir : 'sage/rings' ) extension_data = { diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index 35ba8a30451..c80ad347dd3 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -1,31 +1,31 @@ py.install_sources( - 'S_unit_solver.py', - 'all.py', - 'bdd_height.py', - 'class_group.py', - 'galois_group.py', - 'homset.py', - 'maps.py', - 'morphism.py', - 'number_field.py', - 'number_field_base.pxd', - 'number_field_element.pxd', - 'number_field_element_base.pxd', - 'number_field_element_quadratic.pxd', - 'number_field_ideal.py', - 'number_field_ideal_rel.py', - 'number_field_rel.py', - 'order.py', - 'order_ideal.py', - 'selmer_group.py', - 'small_primes_of_degree_one.py', - 'splitting_field.py', - 'structure.py', - 'totallyreal_data.pxd', - 'totallyreal_phc.py', - 'totallyreal_rel.py', - 'unit_group.py', - subdir: 'sage/rings/number_field', + 'S_unit_solver.py', + 'all.py', + 'bdd_height.py', + 'class_group.py', + 'galois_group.py', + 'homset.py', + 'maps.py', + 'morphism.py', + 'number_field.py', + 'number_field_base.pxd', + 'number_field_element.pxd', + 'number_field_element_base.pxd', + 'number_field_element_quadratic.pxd', + 'number_field_ideal.py', + 'number_field_ideal_rel.py', + 'number_field_rel.py', + 'order.py', + 'order_ideal.py', + 'selmer_group.py', + 'small_primes_of_degree_one.py', + 'splitting_field.py', + 'structure.py', + 'totallyreal_data.pxd', + 'totallyreal_phc.py', + 'totallyreal_rel.py', + 'unit_group.py', + subdir : 'sage/rings/number_field' ) extension_data = { diff --git a/src/sage/rings/padics/meson.build b/src/sage/rings/padics/meson.build index b59328f5271..d381b35d529 100644 --- a/src/sage/rings/padics/meson.build +++ b/src/sage/rings/padics/meson.build @@ -1,52 +1,52 @@ py.install_sources( - 'all.py', - 'common_conversion.pxd', - 'eisenstein_extension_generic.py', - 'factory.py', - 'generic_nodes.py', - 'lattice_precision.py', - 'local_generic.py', - 'local_generic_element.pxd', - 'misc.py', - 'morphism.pxd', - 'padic_ZZ_pX_CA_element.pxd', - 'padic_ZZ_pX_CR_element.pxd', - 'padic_ZZ_pX_FM_element.pxd', - 'padic_ZZ_pX_element.pxd', - 'padic_base_generic.py', - 'padic_base_leaves.py', - 'padic_capped_absolute_element.pxd', - 'padic_capped_relative_element.pxd', - 'padic_ext_element.pxd', - 'padic_extension_generic.py', - 'padic_extension_leaves.py', - 'padic_fixed_mod_element.pxd', - 'padic_floating_point_element.pxd', - 'padic_generic.py', - 'padic_generic_element.pxd', - 'padic_lattice_element.py', - 'padic_printing.pxd', - 'padic_relaxed_element.pxd', - 'padic_relaxed_errors.pxd', - 'padic_valuation.py', - 'pow_computer.pxd', - 'pow_computer_ext.pxd', - 'pow_computer_flint.pxd', - 'pow_computer_relative.pxd', - 'precision_error.py', - 'qadic_flint_CA.pxd', - 'qadic_flint_CR.pxd', - 'qadic_flint_FM.pxd', - 'qadic_flint_FP.pxd', - 'relative_extension_leaves.py', - 'relative_ramified_CA.pxd', - 'relative_ramified_CR.pxd', - 'relative_ramified_FM.pxd', - 'relative_ramified_FP.pxd', - 'tests.py', - 'tutorial.py', - 'unramified_extension_generic.py', - subdir: 'sage/rings/padics', + 'all.py', + 'common_conversion.pxd', + 'eisenstein_extension_generic.py', + 'factory.py', + 'generic_nodes.py', + 'lattice_precision.py', + 'local_generic.py', + 'local_generic_element.pxd', + 'misc.py', + 'morphism.pxd', + 'padic_ZZ_pX_CA_element.pxd', + 'padic_ZZ_pX_CR_element.pxd', + 'padic_ZZ_pX_FM_element.pxd', + 'padic_ZZ_pX_element.pxd', + 'padic_base_generic.py', + 'padic_base_leaves.py', + 'padic_capped_absolute_element.pxd', + 'padic_capped_relative_element.pxd', + 'padic_ext_element.pxd', + 'padic_extension_generic.py', + 'padic_extension_leaves.py', + 'padic_fixed_mod_element.pxd', + 'padic_floating_point_element.pxd', + 'padic_generic.py', + 'padic_generic_element.pxd', + 'padic_lattice_element.py', + 'padic_printing.pxd', + 'padic_relaxed_element.pxd', + 'padic_relaxed_errors.pxd', + 'padic_valuation.py', + 'pow_computer.pxd', + 'pow_computer_ext.pxd', + 'pow_computer_flint.pxd', + 'pow_computer_relative.pxd', + 'precision_error.py', + 'qadic_flint_CA.pxd', + 'qadic_flint_CR.pxd', + 'qadic_flint_FM.pxd', + 'qadic_flint_FP.pxd', + 'relative_extension_leaves.py', + 'relative_ramified_CA.pxd', + 'relative_ramified_CR.pxd', + 'relative_ramified_FM.pxd', + 'relative_ramified_FP.pxd', + 'tests.py', + 'tutorial.py', + 'unramified_extension_generic.py', + subdir : 'sage/rings/padics' ) extension_data = { diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index dbc0189b826..7b33a03d125 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -1,69 +1,69 @@ py.install_sources( - 'all.py', - 'binary_form_reduce.py', - 'commutative_polynomial.pxd', - 'complex_roots.py', - 'convolution.py', - 'evaluation.pxd', - 'evaluation_flint.pxd', - 'evaluation_ntl.pxd', - 'flatten.py', - 'groebner_fan.py', - 'ideal.py', - 'infinite_polynomial_element.py', - 'infinite_polynomial_ring.py', - 'integer_valued_polynomials.py', - 'laurent_polynomial.pxd', - 'laurent_polynomial_ideal.py', - 'laurent_polynomial_mpair.pxd', - 'laurent_polynomial_ring.py', - 'laurent_polynomial_ring_base.py', - 'msolve.py', - 'multi_polynomial.pxd', - 'multi_polynomial_element.py', - 'multi_polynomial_ideal.py', - 'multi_polynomial_ideal_libsingular.pxd', - 'multi_polynomial_libsingular.pxd', - 'multi_polynomial_ring.py', - 'multi_polynomial_ring_base.pxd', - 'multi_polynomial_sequence.py', - 'omega.py', - 'ore_function_element.py', - 'ore_function_field.py', - 'ore_polynomial_element.pxd', - 'ore_polynomial_ring.py', - 'plural.pxd', - 'polydict.pxd', - 'polynomial_compiled.pxd', - 'polynomial_complex_arb.pxd', - 'polynomial_element.pxd', - 'polynomial_element_generic.py', - 'polynomial_fateman.py', - 'polynomial_gf2x.pxd', - 'polynomial_integer_dense_flint.pxd', - 'polynomial_integer_dense_ntl.pxd', - 'polynomial_modn_dense_ntl.pxd', - 'polynomial_quotient_ring.py', - 'polynomial_quotient_ring_element.py', - 'polynomial_rational_flint.pxd', - 'polynomial_ring.py', - 'polynomial_ring_constructor.py', - 'polynomial_ring_homomorphism.pxd', - 'polynomial_singular_interface.py', - 'polynomial_zmod_flint.pxd', - 'polynomial_zz_pex.pxd', - 'real_roots.pxd', - 'skew_polynomial_element.pxd', - 'skew_polynomial_finite_field.pxd', - 'skew_polynomial_finite_order.pxd', - 'skew_polynomial_ring.py', - 'symmetric_ideal.py', - 'symmetric_reduction.pxd', - 'term_order.py', - 'toy_buchberger.py', - 'toy_d_basis.py', - 'toy_variety.py', - subdir: 'sage/rings/polynomial', + 'all.py', + 'binary_form_reduce.py', + 'commutative_polynomial.pxd', + 'complex_roots.py', + 'convolution.py', + 'evaluation.pxd', + 'evaluation_flint.pxd', + 'evaluation_ntl.pxd', + 'flatten.py', + 'groebner_fan.py', + 'ideal.py', + 'infinite_polynomial_element.py', + 'infinite_polynomial_ring.py', + 'integer_valued_polynomials.py', + 'laurent_polynomial.pxd', + 'laurent_polynomial_ideal.py', + 'laurent_polynomial_mpair.pxd', + 'laurent_polynomial_ring.py', + 'laurent_polynomial_ring_base.py', + 'msolve.py', + 'multi_polynomial.pxd', + 'multi_polynomial_element.py', + 'multi_polynomial_ideal.py', + 'multi_polynomial_ideal_libsingular.pxd', + 'multi_polynomial_libsingular.pxd', + 'multi_polynomial_ring.py', + 'multi_polynomial_ring_base.pxd', + 'multi_polynomial_sequence.py', + 'omega.py', + 'ore_function_element.py', + 'ore_function_field.py', + 'ore_polynomial_element.pxd', + 'ore_polynomial_ring.py', + 'plural.pxd', + 'polydict.pxd', + 'polynomial_compiled.pxd', + 'polynomial_complex_arb.pxd', + 'polynomial_element.pxd', + 'polynomial_element_generic.py', + 'polynomial_fateman.py', + 'polynomial_gf2x.pxd', + 'polynomial_integer_dense_flint.pxd', + 'polynomial_integer_dense_ntl.pxd', + 'polynomial_modn_dense_ntl.pxd', + 'polynomial_quotient_ring.py', + 'polynomial_quotient_ring_element.py', + 'polynomial_rational_flint.pxd', + 'polynomial_ring.py', + 'polynomial_ring_constructor.py', + 'polynomial_ring_homomorphism.pxd', + 'polynomial_singular_interface.py', + 'polynomial_zmod_flint.pxd', + 'polynomial_zz_pex.pxd', + 'real_roots.pxd', + 'skew_polynomial_element.pxd', + 'skew_polynomial_finite_field.pxd', + 'skew_polynomial_finite_order.pxd', + 'skew_polynomial_ring.py', + 'symmetric_ideal.py', + 'symmetric_reduction.pxd', + 'term_order.py', + 'toy_buchberger.py', + 'toy_d_basis.py', + 'toy_variety.py', + subdir : 'sage/rings/polynomial' ) extension_data = { diff --git a/src/sage/rings/polynomial/pbori/meson.build b/src/sage/rings/polynomial/pbori/meson.build index ed61f857d0f..dd562bfbb72 100644 --- a/src/sage/rings/polynomial/pbori/meson.build +++ b/src/sage/rings/polynomial/pbori/meson.build @@ -7,27 +7,27 @@ brial = declare_dependency( brial_groebner = cc.find_library('brial_groebner') py.install_sources( - 'PyPolyBoRi.py', - '__init__.py', - 'blocks.py', - 'cnf.py', - 'easy_polynomials.py', - 'fglm.py', - 'frontend.py', - 'gbcore.py', - 'gbrefs.py', - 'heuristics.py', - 'interpolate.py', - 'interred.py', - 'll.py', - 'nf.py', - 'parallel.py', - 'pbori.pxd', - 'randompoly.py', - 'rank.py', - 'specialsets.py', - 'statistics.py', - subdir: 'sage/rings/polynomial/pbori', + 'PyPolyBoRi.py', + '__init__.py', + 'blocks.py', + 'cnf.py', + 'easy_polynomials.py', + 'fglm.py', + 'frontend.py', + 'gbcore.py', + 'gbrefs.py', + 'heuristics.py', + 'interpolate.py', + 'interred.py', + 'll.py', + 'nf.py', + 'parallel.py', + 'pbori.pxd', + 'randompoly.py', + 'rank.py', + 'specialsets.py', + 'statistics.py', + subdir : 'sage/rings/polynomial/pbori' ) extension_data_cpp = { diff --git a/src/sage/rings/polynomial/weil/meson.build b/src/sage/rings/polynomial/weil/meson.build index 5db5abe197e..289aa681bc8 100644 --- a/src/sage/rings/polynomial/weil/meson.build +++ b/src/sage/rings/polynomial/weil/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'power_sums.h', - subdir: 'sage/rings/polynomial/weil', -) +py.install_sources('all.py', 'power_sums.h', subdir : 'sage/rings/polynomial/weil') extension_data = { 'weil_polynomials': files('weil_polynomials.pyx'), diff --git a/src/sage/rings/semirings/meson.build b/src/sage/rings/semirings/meson.build index 564c23df0e5..2aced319c9b 100644 --- a/src/sage/rings/semirings/meson.build +++ b/src/sage/rings/semirings/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'non_negative_integer_semiring.py', - subdir: 'sage/rings/semirings', -) +py.install_sources('all.py', 'non_negative_integer_semiring.py', subdir : 'sage/rings/semirings') extension_data = { 'tropical_semiring': files('tropical_semiring.pyx'), diff --git a/src/sage/sat/meson.build b/src/sage/sat/meson.build index 33cdb49894b..4452288133f 100644 --- a/src/sage/sat/meson.build +++ b/src/sage/sat/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'boolean_polynomials.py', - subdir: 'sage/sat', -) +py.install_sources('all.py', 'boolean_polynomials.py', subdir : 'sage/sat') install_subdir('converters', install_dir: sage_install_dir / 'sat') subdir('solvers') diff --git a/src/sage/sat/solvers/meson.build b/src/sage/sat/solvers/meson.build index 8815ab02d49..cadccba7e34 100644 --- a/src/sage/sat/solvers/meson.build +++ b/src/sage/sat/solvers/meson.build @@ -1,10 +1,10 @@ py.install_sources( - '__init__.py', - 'cryptominisat.py', - 'dimacs.py', - 'picosat.py', - 'sat_lp.py', - subdir: 'sage/sat/solvers', + '__init__.py', + 'cryptominisat.py', + 'dimacs.py', + 'picosat.py', + 'sat_lp.py', + subdir : 'sage/sat/solvers' ) extension_data = { diff --git a/src/sage/schemes/elliptic_curves/meson.build b/src/sage/schemes/elliptic_curves/meson.build index d6120830312..44de6cba489 100644 --- a/src/sage/schemes/elliptic_curves/meson.build +++ b/src/sage/schemes/elliptic_curves/meson.build @@ -1,55 +1,55 @@ py.install_sources( - 'BSD.py', - 'Qcurves.py', - 'all.py', - 'cardinality.py', - 'cm.py', - 'constructor.py', - 'ec_database.py', - 'ell_curve_isogeny.py', - 'ell_egros.py', - 'ell_field.py', - 'ell_finite_field.py', - 'ell_generic.py', - 'ell_local_data.py', - 'ell_modular_symbols.py', - 'ell_number_field.py', - 'ell_padic_field.py', - 'ell_point.py', - 'ell_rational_field.py', - 'ell_tate_curve.py', - 'ell_torsion.py', - 'ell_wp.py', - 'formal_group.py', - 'gal_reps.py', - 'gal_reps_number_field.py', - 'gp_simon.py', - 'heegner.py', - 'height.py', - 'hom.py', - 'hom_composite.py', - 'hom_frobenius.py', - 'hom_scalar.py', - 'hom_sum.py', - 'hom_velusqrt.py', - 'homset.py', - 'isogeny_class.py', - 'isogeny_small_degree.py', - 'jacobian.py', - 'kodaira_symbol.py', - 'kraus.py', - 'lseries_ell.py', - 'mod5family.py', - 'mod_poly.py', - 'modular_parametrization.py', - 'padic_lseries.py', - 'padics.py', - 'period_lattice.py', - 'saturation.py', - 'sha_tate.py', - 'weierstrass_morphism.py', - 'weierstrass_transform.py', - subdir: 'sage/schemes/elliptic_curves', + 'BSD.py', + 'Qcurves.py', + 'all.py', + 'cardinality.py', + 'cm.py', + 'constructor.py', + 'ec_database.py', + 'ell_curve_isogeny.py', + 'ell_egros.py', + 'ell_field.py', + 'ell_finite_field.py', + 'ell_generic.py', + 'ell_local_data.py', + 'ell_modular_symbols.py', + 'ell_number_field.py', + 'ell_padic_field.py', + 'ell_point.py', + 'ell_rational_field.py', + 'ell_tate_curve.py', + 'ell_torsion.py', + 'ell_wp.py', + 'formal_group.py', + 'gal_reps.py', + 'gal_reps_number_field.py', + 'gp_simon.py', + 'heegner.py', + 'height.py', + 'hom.py', + 'hom_composite.py', + 'hom_frobenius.py', + 'hom_scalar.py', + 'hom_sum.py', + 'hom_velusqrt.py', + 'homset.py', + 'isogeny_class.py', + 'isogeny_small_degree.py', + 'jacobian.py', + 'kodaira_symbol.py', + 'kraus.py', + 'lseries_ell.py', + 'mod5family.py', + 'mod_poly.py', + 'modular_parametrization.py', + 'padic_lseries.py', + 'padics.py', + 'period_lattice.py', + 'saturation.py', + 'sha_tate.py', + 'weierstrass_morphism.py', + 'weierstrass_transform.py', + subdir : 'sage/schemes/elliptic_curves' ) extension_data = { diff --git a/src/sage/schemes/hyperelliptic_curves/meson.build b/src/sage/schemes/hyperelliptic_curves/meson.build index 35cdc5c72a8..4e8d22b388b 100644 --- a/src/sage/schemes/hyperelliptic_curves/meson.build +++ b/src/sage/schemes/hyperelliptic_curves/meson.build @@ -1,22 +1,22 @@ inc_hypellfrob = include_directories('hypellfrob') py.install_sources( - 'all.py', - 'constructor.py', - 'hyperelliptic_finite_field.py', - 'hyperelliptic_g2.py', - 'hyperelliptic_generic.py', - 'hyperelliptic_padic_field.py', - 'hyperelliptic_rational_field.py', - 'invariants.py', - 'jacobian_endomorphism_utils.py', - 'jacobian_g2.py', - 'jacobian_generic.py', - 'jacobian_homset.py', - 'jacobian_morphism.py', - 'kummer_surface.py', - 'mestre.py', - 'monsky_washnitzer.py', - subdir: 'sage/schemes/hyperelliptic_curves', + 'all.py', + 'constructor.py', + 'hyperelliptic_finite_field.py', + 'hyperelliptic_g2.py', + 'hyperelliptic_generic.py', + 'hyperelliptic_padic_field.py', + 'hyperelliptic_rational_field.py', + 'invariants.py', + 'jacobian_endomorphism_utils.py', + 'jacobian_g2.py', + 'jacobian_generic.py', + 'jacobian_homset.py', + 'jacobian_morphism.py', + 'kummer_surface.py', + 'mestre.py', + 'monsky_washnitzer.py', + subdir : 'sage/schemes/hyperelliptic_curves' ) extension_data_cpp = { diff --git a/src/sage/schemes/meson.build b/src/sage/schemes/meson.build index 6ef40ff5257..32825f600ed 100644 --- a/src/sage/schemes/meson.build +++ b/src/sage/schemes/meson.build @@ -1,8 +1,4 @@ -py.install_sources( - 'all.py', - 'overview.py', - subdir: 'sage/schemes', -) +py.install_sources('all.py', 'overview.py', subdir : 'sage/schemes') install_subdir('affine', install_dir: sage_install_dir / 'schemes') install_subdir('berkovich', install_dir: sage_install_dir / 'schemes') diff --git a/src/sage/schemes/toric/meson.build b/src/sage/schemes/toric/meson.build index 36e4b8fd991..edd53dc00a2 100644 --- a/src/sage/schemes/toric/meson.build +++ b/src/sage/schemes/toric/meson.build @@ -1,19 +1,19 @@ py.install_sources( - 'all.py', - 'chow_group.py', - 'divisor.py', - 'fano_variety.py', - 'homset.py', - 'ideal.py', - 'library.py', - 'morphism.py', - 'points.py', - 'toric_subscheme.py', - 'variety.py', - 'weierstrass.py', - 'weierstrass_covering.py', - 'weierstrass_higher.py', - subdir: 'sage/schemes/toric', + 'all.py', + 'chow_group.py', + 'divisor.py', + 'fano_variety.py', + 'homset.py', + 'ideal.py', + 'library.py', + 'morphism.py', + 'points.py', + 'toric_subscheme.py', + 'variety.py', + 'weierstrass.py', + 'weierstrass_covering.py', + 'weierstrass_higher.py', + subdir : 'sage/schemes/toric' ) extension_data = { diff --git a/src/sage/sets/meson.build b/src/sage/sets/meson.build index 21a5d244f32..5473a4f2dae 100644 --- a/src/sage/sets/meson.build +++ b/src/sage/sets/meson.build @@ -1,26 +1,26 @@ py.install_sources( - 'all.py', - 'all__sagemath_objects.py', - 'cartesian_product.py', - 'condition_set.py', - 'disjoint_set.pxd', - 'disjoint_union_enumerated_sets.py', - 'family.pxd', - 'finite_enumerated_set.py', - 'finite_set_map_cy.pxd', - 'finite_set_maps.py', - 'image_set.py', - 'integer_range.py', - 'non_negative_integers.py', - 'positive_integers.py', - 'primes.py', - 'pythonclass.pxd', - 'real_set.py', - 'recursively_enumerated_set.pxd', - 'set.py', - 'set_from_iterator.py', - 'totally_ordered_finite_set.py', - subdir: 'sage/sets', + 'all.py', + 'all__sagemath_objects.py', + 'cartesian_product.py', + 'condition_set.py', + 'disjoint_set.pxd', + 'disjoint_union_enumerated_sets.py', + 'family.pxd', + 'finite_enumerated_set.py', + 'finite_set_map_cy.pxd', + 'finite_set_maps.py', + 'image_set.py', + 'integer_range.py', + 'non_negative_integers.py', + 'positive_integers.py', + 'primes.py', + 'pythonclass.pxd', + 'real_set.py', + 'recursively_enumerated_set.pxd', + 'set.py', + 'set_from_iterator.py', + 'totally_ordered_finite_set.py', + subdir : 'sage/sets' ) extension_data = { diff --git a/src/sage/stats/distributions/meson.build b/src/sage/stats/distributions/meson.build index b5b8a74e3bb..ee946bae683 100644 --- a/src/sage/stats/distributions/meson.build +++ b/src/sage/stats/distributions/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - 'all.py', - 'discrete_gaussian_lattice.py', - 'discrete_gaussian_polynomial.py', - subdir: 'sage/stats/distributions', -) +py.install_sources('all.py', 'discrete_gaussian_lattice.py', 'discrete_gaussian_polynomial.py', subdir : 'sage/stats/distributions') extension_data = { 'discrete_gaussian_integer': files('discrete_gaussian_integer.pyx', 'dgs_gauss_mp.c', 'dgs_gauss_dp.c', 'dgs_bern.c'), diff --git a/src/sage/stats/hmm/meson.build b/src/sage/stats/hmm/meson.build index d9aefe474aa..f75f868ebbf 100644 --- a/src/sage/stats/hmm/meson.build +++ b/src/sage/stats/hmm/meson.build @@ -1,7 +1,4 @@ -py.install_sources( - 'all.py', - subdir: 'sage/stats/hmm', -) +py.install_sources('all.py', subdir : 'sage/stats/hmm') extension_data = { 'chmm': files('chmm.pyx'), diff --git a/src/sage/stats/meson.build b/src/sage/stats/meson.build index 341048d7f5e..6c1749f2a52 100644 --- a/src/sage/stats/meson.build +++ b/src/sage/stats/meson.build @@ -1,9 +1,4 @@ -py.install_sources( - 'all.py', - 'basic_stats.py', - 'r.py', - subdir: 'sage/stats', -) +py.install_sources('all.py', 'basic_stats.py', 'r.py', subdir : 'sage/stats') extension_data = { 'intlist': files('intlist.pyx'), diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index a1500cbbb8b..84a585b48fd 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -1,40 +1,40 @@ py.install_sources( - '__init__.py', - 'all.py', - 'category_object.pxd', - 'coerce.pxd', - 'coerce_actions.pxd', - 'coerce_dict.pxd', - 'coerce_exceptions.py', - 'coerce_maps.pxd', - 'debug_options.pxd', - 'dynamic_class.py', - 'element.pxd', - 'element_wrapper.pxd', - 'factorization.py', - 'factorization_integer.py', - 'formal_sum.py', - 'gens_py.py', - 'global_options.py', - 'indexed_generators.py', - 'list_clone.pxd', - 'list_clone_timings.py', - 'mutability.pxd', - 'nonexact.py', - 'parent.pxd', - 'parent_base.pxd', - 'parent_gens.pxd', - 'parent_old.pxd', - 'richcmp.pxd', - 'sage_object.pxd', - 'sage_object_test.py', - 'sequence.py', - 'set_factories.py', - 'set_factories_example.py', - 'support_view.py', - 'test_factory.py', - 'unique_representation.py', - subdir: 'sage/structure', + '__init__.py', + 'all.py', + 'category_object.pxd', + 'coerce.pxd', + 'coerce_actions.pxd', + 'coerce_dict.pxd', + 'coerce_exceptions.py', + 'coerce_maps.pxd', + 'debug_options.pxd', + 'dynamic_class.py', + 'element.pxd', + 'element_wrapper.pxd', + 'factorization.py', + 'factorization_integer.py', + 'formal_sum.py', + 'gens_py.py', + 'global_options.py', + 'indexed_generators.py', + 'list_clone.pxd', + 'list_clone_timings.py', + 'mutability.pxd', + 'nonexact.py', + 'parent.pxd', + 'parent_base.pxd', + 'parent_gens.pxd', + 'parent_old.pxd', + 'richcmp.pxd', + 'sage_object.pxd', + 'sage_object_test.py', + 'sequence.py', + 'set_factories.py', + 'set_factories_example.py', + 'support_view.py', + 'test_factory.py', + 'unique_representation.py', + subdir : 'sage/structure' ) extension_data = { diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index 2acc0fdf825..c188569acd0 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -2,31 +2,31 @@ inc_ginac = include_directories('ginac') inc_pynac = include_directories('.') py.install_sources( - '__init__.py', - 'all.py', - 'assumptions.py', - 'benchmark.py', - 'callable.py', - 'complexity_measures.py', - 'constants.py', - 'expression.pxd', - 'expression_conversion_algebraic.py', - 'expression_conversion_sympy.py', - 'expression_conversions.py', - 'function.pxd', - 'function_factory.py', - 'maxima_wrapper.py', - 'operators.py', - 'pynac_wrap.h', - 'random_tests.py', - 'relation.py', - 'ring.pxd', - 'subring.py', - 'symbols.py', - 'symengine.py', - 'tests.py', - 'units.py', - subdir: 'sage/symbolic', + '__init__.py', + 'all.py', + 'assumptions.py', + 'benchmark.py', + 'callable.py', + 'complexity_measures.py', + 'constants.py', + 'expression.pxd', + 'expression_conversion_algebraic.py', + 'expression_conversion_sympy.py', + 'expression_conversions.py', + 'function.pxd', + 'function_factory.py', + 'maxima_wrapper.py', + 'operators.py', + 'pynac_wrap.h', + 'random_tests.py', + 'relation.py', + 'ring.pxd', + 'subring.py', + 'symbols.py', + 'symengine.py', + 'tests.py', + 'units.py', + subdir : 'sage/symbolic' ) extension_data = { diff --git a/src/sage/tests/meson.build b/src/sage/tests/meson.build index 0ec4233334a..2892f5bb0fa 100644 --- a/src/sage/tests/meson.build +++ b/src/sage/tests/meson.build @@ -1,26 +1,26 @@ py.install_sources( - '__init__.py', - 'all.py', - 'article_heuberger_krenn_kropf_fsm-in-sage.py', - 'arxiv_0812_2725.py', - 'benchmark.py', - 'book_schilling_zabrocki_kschur_primer.py', - 'book_stein_ent.py', - 'book_stein_modform.py', - 'cmdline.py', - 'combinatorial_hopf_algebras.py', - 'finite_poset.py', - 'functools_partial_src.py', - 'gosper-sum.py', - 'lazy_imports.py', - 'modular_group_cohomology.py', - 'numpy.py', - 'parigp.py', - 'startup.py', - 'symbolic-series.py', - 'sympy.py', - 'test_deprecation.py', - subdir: 'sage/tests', + '__init__.py', + 'all.py', + 'article_heuberger_krenn_kropf_fsm-in-sage.py', + 'arxiv_0812_2725.py', + 'benchmark.py', + 'book_schilling_zabrocki_kschur_primer.py', + 'book_stein_ent.py', + 'book_stein_modform.py', + 'cmdline.py', + 'combinatorial_hopf_algebras.py', + 'finite_poset.py', + 'functools_partial_src.py', + 'gosper-sum.py', + 'lazy_imports.py', + 'modular_group_cohomology.py', + 'numpy.py', + 'parigp.py', + 'startup.py', + 'symbolic-series.py', + 'sympy.py', + 'test_deprecation.py', + subdir : 'sage/tests' ) extension_data = { From e866cbcf2f16c02d5c8a3d85d349fedfac5ac006 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 19 Feb 2024 04:39:52 +0000 Subject: [PATCH 131/161] update cython files --- .../finite_dimensional_algebras/meson.build | 2 +- src/sage/algebras/fusion_rings/meson.build | 2 +- src/sage/algebras/lie_algebras/meson.build | 2 +- src/sage/algebras/meson.build | 6 +- src/sage/arith/meson.build | 12 +-- src/sage/calculus/meson.build | 12 +-- src/sage/calculus/transforms/meson.build | 4 +- src/sage/categories/examples/meson.build | 2 +- src/sage/categories/meson.build | 14 ++-- src/sage/coding/codecan/meson.build | 4 +- src/sage/coding/meson.build | 6 +- src/sage/combinat/crystals/meson.build | 8 +- src/sage/combinat/designs/meson.build | 10 +-- src/sage/combinat/integer_lists/meson.build | 4 +- src/sage/combinat/meson.build | 22 +++--- src/sage/combinat/posets/meson.build | 6 +- .../rigged_configurations/meson.build | 2 +- src/sage/combinat/root_system/meson.build | 6 +- src/sage/combinat/words/meson.build | 4 +- src/sage/cpython/meson.build | 18 ++--- src/sage/crypto/meson.build | 4 +- src/sage/data_structures/meson.build | 12 +-- .../dynamics/arithmetic_dynamics/meson.build | 2 +- .../dynamics/complex_dynamics/meson.build | 2 +- src/sage/ext/interpreters/meson.build | 12 +-- src/sage/ext/meson.build | 8 +- src/sage/functions/meson.build | 2 +- src/sage/games/meson.build | 2 +- src/sage/geometry/meson.build | 12 +-- .../combinatorial_polyhedron/meson.build | 14 ++-- src/sage/graphs/base/meson.build | 10 +-- src/sage/graphs/generators/meson.build | 2 +- .../graphs/graph_decompositions/meson.build | 14 ++-- src/sage/graphs/meson.build | 44 +++++------ src/sage/groups/matrix_gps/meson.build | 4 +- src/sage/groups/meson.build | 6 +- src/sage/groups/perm_gps/meson.build | 2 +- .../groups/perm_gps/partn_ref/meson.build | 20 ++--- .../groups/perm_gps/partn_ref2/meson.build | 2 +- .../semimonomial_transformations/meson.build | 2 +- src/sage/interacts/meson.build | 2 +- src/sage/interfaces/meson.build | 4 +- src/sage/lfunctions/meson.build | 2 +- src/sage/libs/arb/meson.build | 4 +- src/sage/libs/flint/meson.build | 22 +++--- src/sage/libs/gap/meson.build | 6 +- src/sage/libs/glpk/meson.build | 2 +- src/sage/libs/gmp/meson.build | 2 +- src/sage/libs/gsl/meson.build | 2 +- src/sage/libs/meson.build | 7 +- src/sage/libs/mpmath/meson.build | 8 +- src/sage/libs/pari/meson.build | 16 ++-- src/sage/libs/symmetrica/meson.build | 2 +- src/sage/matrix/meson.build | 64 ++++++++-------- src/sage/matroids/meson.build | 21 +++--- src/sage/misc/meson.build | 64 ++++++++-------- src/sage/modular/arithgroup/meson.build | 4 +- src/sage/modular/meson.build | 2 +- src/sage/modular/modform/meson.build | 4 +- src/sage/modular/modsym/meson.build | 10 +-- src/sage/modular/pollack_stevens/meson.build | 2 +- src/sage/modules/meson.build | 28 +++---- src/sage/modules/with_basis/meson.build | 2 +- src/sage/monoids/meson.build | 2 +- src/sage/numerical/backends/meson.build | 22 +++--- src/sage/numerical/meson.build | 10 +-- src/sage/plot/meson.build | 2 +- src/sage/plot/plot3d/meson.build | 12 +-- src/sage/probability/meson.build | 2 +- src/sage/quadratic_forms/meson.build | 6 +- src/sage/quivers/meson.build | 4 +- src/sage/rings/convert/meson.build | 2 +- src/sage/rings/finite_rings/meson.build | 20 ++--- src/sage/rings/function_field/meson.build | 8 +- src/sage/rings/meson.build | 74 +++++++++---------- src/sage/rings/number_field/meson.build | 10 +-- src/sage/rings/padics/meson.build | 36 ++++----- src/sage/rings/polynomial/meson.build | 44 +++++------ src/sage/rings/polynomial/weil/meson.build | 2 +- src/sage/rings/semirings/meson.build | 2 +- src/sage/sat/solvers/meson.build | 2 +- src/sage/schemes/elliptic_curves/meson.build | 6 +- src/sage/schemes/toric/meson.build | 2 +- src/sage/sets/meson.build | 10 +-- src/sage/stats/distributions/meson.build | 2 +- src/sage/stats/hmm/meson.build | 8 +- src/sage/stats/meson.build | 4 +- src/sage/structure/meson.build | 38 +++++----- src/sage/symbolic/meson.build | 4 +- src/sage/tests/meson.build | 2 +- 90 files changed, 469 insertions(+), 469 deletions(-) diff --git a/src/sage/algebras/finite_dimensional_algebras/meson.build b/src/sage/algebras/finite_dimensional_algebras/meson.build index d821da5c6a4..336dfcd0ba2 100644 --- a/src/sage/algebras/finite_dimensional_algebras/meson.build +++ b/src/sage/algebras/finite_dimensional_algebras/meson.build @@ -8,7 +8,7 @@ py.install_sources( ) extension_data = { - 'finite_dimensional_algebra_element': files('finite_dimensional_algebra_element.pyx'), + 'finite_dimensional_algebra_element' : files('finite_dimensional_algebra_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/algebras/fusion_rings/meson.build b/src/sage/algebras/fusion_rings/meson.build index 63267a57e4f..4d5ed2d77e5 100644 --- a/src/sage/algebras/fusion_rings/meson.build +++ b/src/sage/algebras/fusion_rings/meson.build @@ -11,7 +11,7 @@ py.install_sources( ) extension_data = { - 'fast_parallel_fusion_ring_braid_repn': files('fast_parallel_fusion_ring_braid_repn.pyx'), + 'fast_parallel_fusion_ring_braid_repn' : files('fast_parallel_fusion_ring_braid_repn.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/algebras/lie_algebras/meson.build b/src/sage/algebras/lie_algebras/meson.build index 3396b638a15..fd46f3acc9a 100644 --- a/src/sage/algebras/lie_algebras/meson.build +++ b/src/sage/algebras/lie_algebras/meson.build @@ -25,7 +25,7 @@ py.install_sources( ) extension_data = { - 'lie_algebra_element': files('lie_algebra_element.pyx'), + 'lie_algebra_element' : files('lie_algebra_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/algebras/meson.build b/src/sage/algebras/meson.build index 99e5902e935..b385fb3c3bc 100644 --- a/src/sage/algebras/meson.build +++ b/src/sage/algebras/meson.build @@ -44,9 +44,9 @@ py.install_sources( ) extension_data = { - 'clifford_algebra_element': files('clifford_algebra_element.pyx'), - 'exterior_algebra_groebner': files('exterior_algebra_groebner.pyx'), - 'octonion_algebra': files('octonion_algebra.pyx'), + 'clifford_algebra_element' : files('clifford_algebra_element.pyx'), + 'exterior_algebra_groebner' : files('exterior_algebra_groebner.pyx'), + 'octonion_algebra' : files('octonion_algebra.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/arith/meson.build b/src/sage/arith/meson.build index bc13ece46cc..27367db6a77 100644 --- a/src/sage/arith/meson.build +++ b/src/sage/arith/meson.build @@ -13,12 +13,12 @@ py.install_sources( ) extension_data = { - 'functions': files('functions.pyx'), - 'multi_modular': files('multi_modular.pyx'), - 'numerical_approx': files('numerical_approx.pyx'), - 'power': files('power.pyx'), - 'rational_reconstruction': files('rational_reconstruction.pyx'), - 'srange': files('srange.pyx'), + 'functions' : files('functions.pyx'), + 'multi_modular' : files('multi_modular.pyx'), + 'numerical_approx' : files('numerical_approx.pyx'), + 'power' : files('power.pyx'), + 'rational_reconstruction' : files('rational_reconstruction.pyx'), + 'srange' : files('srange.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/calculus/meson.build b/src/sage/calculus/meson.build index c7bfa57d390..54b02a8b899 100644 --- a/src/sage/calculus/meson.build +++ b/src/sage/calculus/meson.build @@ -14,12 +14,12 @@ py.install_sources( ) extension_data = { - 'integration': files('integration.pyx'), - 'interpolation': files('interpolation.pyx'), - 'interpolators': files('interpolators.pyx'), - 'ode': files('ode.pyx'), - 'riemann': files('riemann.pyx'), - 'var': files('var.pyx'), + 'integration' : files('integration.pyx'), + 'interpolation' : files('interpolation.pyx'), + 'interpolators' : files('interpolators.pyx'), + 'ode' : files('ode.pyx'), + 'riemann' : files('riemann.pyx'), + 'var' : files('var.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/calculus/transforms/meson.build b/src/sage/calculus/transforms/meson.build index c495788eb1f..7b335345733 100644 --- a/src/sage/calculus/transforms/meson.build +++ b/src/sage/calculus/transforms/meson.build @@ -1,8 +1,8 @@ py.install_sources('all.py', 'dft.py', 'dwt.pxd', 'fft.pxd', subdir : 'sage/calculus/transforms') extension_data = { - 'dwt': files('dwt.pyx'), - 'fft': files('fft.pyx'), + 'dwt' : files('dwt.pyx'), + 'fft' : files('fft.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/categories/examples/meson.build b/src/sage/categories/examples/meson.build index fb4389af196..2aab0d6d37b 100644 --- a/src/sage/categories/examples/meson.build +++ b/src/sage/categories/examples/meson.build @@ -35,7 +35,7 @@ py.install_sources( ) extension_data = { - 'semigroups_cython': files('semigroups_cython.pyx'), + 'semigroups_cython' : files('semigroups_cython.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/categories/meson.build b/src/sage/categories/meson.build index 7ce68f4b5be..aa022386e35 100644 --- a/src/sage/categories/meson.build +++ b/src/sage/categories/meson.build @@ -201,13 +201,13 @@ py.install_sources( ) extension_data = { - 'action': files('action.pyx'), - 'category_cy_helper': files('category_cy_helper.pyx'), - 'category_singleton': files('category_singleton.pyx'), - 'coercion_methods': files('coercion_methods.pyx'), - 'functor': files('functor.pyx'), - 'map': files('map.pyx'), - 'morphism': files('morphism.pyx'), + 'action' : files('action.pyx'), + 'category_cy_helper' : files('category_cy_helper.pyx'), + 'category_singleton' : files('category_singleton.pyx'), + 'coercion_methods' : files('coercion_methods.pyx'), + 'functor' : files('functor.pyx'), + 'map' : files('map.pyx'), + 'morphism' : files('morphism.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/coding/codecan/meson.build b/src/sage/coding/codecan/meson.build index 267b315a6a7..fb9a14fa9bc 100644 --- a/src/sage/coding/codecan/meson.build +++ b/src/sage/coding/codecan/meson.build @@ -1,8 +1,8 @@ py.install_sources('all.py', 'codecan.pxd', subdir : 'sage/coding/codecan') extension_data = { - 'autgroup_can_label': files('autgroup_can_label.pyx'), - 'codecan': files('codecan.pyx'), + 'autgroup_can_label' : files('autgroup_can_label.pyx'), + 'codecan' : files('codecan.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/coding/meson.build b/src/sage/coding/meson.build index 811f783d8b2..1a219ccec07 100644 --- a/src/sage/coding/meson.build +++ b/src/sage/coding/meson.build @@ -38,9 +38,9 @@ py.install_sources( ) extension_data = { - 'ag_code_decoders': files('ag_code_decoders.pyx'), - 'binary_code': files('binary_code.pyx'), - 'kasami_codes': files('kasami_codes.pyx'), + 'ag_code_decoders' : files('ag_code_decoders.pyx'), + 'binary_code' : files('binary_code.pyx'), + 'kasami_codes' : files('kasami_codes.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/crystals/meson.build b/src/sage/combinat/crystals/meson.build index 389ba255d05..9f57d67b1a8 100644 --- a/src/sage/combinat/crystals/meson.build +++ b/src/sage/combinat/crystals/meson.build @@ -35,10 +35,10 @@ py.install_sources( ) extension_data = { - 'letters': files('letters.pyx'), - 'pbw_datum': files('pbw_datum.pyx'), - 'spins': files('spins.pyx'), - 'tensor_product_element': files('tensor_product_element.pyx'), + 'letters' : files('letters.pyx'), + 'pbw_datum' : files('pbw_datum.pyx'), + 'spins' : files('spins.pyx'), + 'tensor_product_element' : files('tensor_product_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/designs/meson.build b/src/sage/combinat/designs/meson.build index d3ebc844d69..a12d7bca407 100644 --- a/src/sage/combinat/designs/meson.build +++ b/src/sage/combinat/designs/meson.build @@ -23,11 +23,11 @@ py.install_sources( ) extension_data = { - 'designs_pyx': files('designs_pyx.pyx'), - 'evenly_distributed_sets': files('evenly_distributed_sets.pyx'), - 'gen_quadrangles_with_spread': files('gen_quadrangles_with_spread.pyx'), - 'orthogonal_arrays_find_recursive': files('orthogonal_arrays_find_recursive.pyx'), - 'subhypergraph_search': files('subhypergraph_search.pyx'), + 'designs_pyx' : files('designs_pyx.pyx'), + 'evenly_distributed_sets' : files('evenly_distributed_sets.pyx'), + 'gen_quadrangles_with_spread' : files('gen_quadrangles_with_spread.pyx'), + 'orthogonal_arrays_find_recursive' : files('orthogonal_arrays_find_recursive.pyx'), + 'subhypergraph_search' : files('subhypergraph_search.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/integer_lists/meson.build b/src/sage/combinat/integer_lists/meson.build index 35aba6e8937..0ab41fd33e5 100644 --- a/src/sage/combinat/integer_lists/meson.build +++ b/src/sage/combinat/integer_lists/meson.build @@ -1,8 +1,8 @@ py.install_sources('__init__.py', 'lists.py', 'nn.py', subdir : 'sage/combinat/integer_lists') extension_data = { - 'base': files('base.pyx'), - 'invlex': files('invlex.pyx'), + 'base' : files('base.pyx'), + 'invlex' : files('invlex.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/meson.build b/src/sage/combinat/meson.build index 4bfd6aab65d..24a7adcd9ef 100644 --- a/src/sage/combinat/meson.build +++ b/src/sage/combinat/meson.build @@ -127,17 +127,17 @@ py.install_sources( ) extension_data = { - 'combinat_cython': files('combinat_cython.pyx'), - 'debruijn_sequence': files('debruijn_sequence.pyx'), - 'degree_sequences': files('degree_sequences.pyx'), - 'enumeration_mod_permgroup': files('enumeration_mod_permgroup.pyx'), - 'expnums': files('expnums.pyx'), - 'fast_vector_partitions': files('fast_vector_partitions.pyx'), - 'partitions': files('partitions.pyx'), - 'permutation_cython': files('permutation_cython.pyx'), - 'q_bernoulli': files('q_bernoulli.pyx'), - 'set_partition_iterator': files('set_partition_iterator.pyx'), - 'subword_complex_c': files('subword_complex_c.pyx'), + 'combinat_cython' : files('combinat_cython.pyx'), + 'debruijn_sequence' : files('debruijn_sequence.pyx'), + 'degree_sequences' : files('degree_sequences.pyx'), + 'enumeration_mod_permgroup' : files('enumeration_mod_permgroup.pyx'), + 'expnums' : files('expnums.pyx'), + 'fast_vector_partitions' : files('fast_vector_partitions.pyx'), + 'partitions' : files('partitions.pyx'), + 'permutation_cython' : files('permutation_cython.pyx'), + 'q_bernoulli' : files('q_bernoulli.pyx'), + 'set_partition_iterator' : files('set_partition_iterator.pyx'), + 'subword_complex_c' : files('subword_complex_c.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/posets/meson.build b/src/sage/combinat/posets/meson.build index bf383598438..bc85ead8819 100644 --- a/src/sage/combinat/posets/meson.build +++ b/src/sage/combinat/posets/meson.build @@ -16,9 +16,9 @@ py.install_sources( ) extension_data = { - 'hasse_cython': files('hasse_cython.pyx'), - 'hasse_cython_flint': files('hasse_cython_flint.pyx'), - 'linear_extension_iterator': files('linear_extension_iterator.pyx'), + 'hasse_cython' : files('hasse_cython.pyx'), + 'hasse_cython_flint' : files('hasse_cython_flint.pyx'), + 'linear_extension_iterator' : files('linear_extension_iterator.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/rigged_configurations/meson.build b/src/sage/combinat/rigged_configurations/meson.build index f71215e3eae..29fb46bf731 100644 --- a/src/sage/combinat/rigged_configurations/meson.build +++ b/src/sage/combinat/rigged_configurations/meson.build @@ -25,7 +25,7 @@ py.install_sources( ) extension_data = { - 'rigged_partition': files('rigged_partition.pyx'), + 'rigged_partition' : files('rigged_partition.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/root_system/meson.build b/src/sage/combinat/root_system/meson.build index c5defca25ae..298c955be71 100644 --- a/src/sage/combinat/root_system/meson.build +++ b/src/sage/combinat/root_system/meson.build @@ -57,9 +57,9 @@ py.install_sources( ) extension_data = { - 'braid_orbit': files('braid_orbit.pyx'), - 'reflection_group_c': files('reflection_group_c.pyx'), - 'reflection_group_element': files('reflection_group_element.pyx'), + 'braid_orbit' : files('braid_orbit.pyx'), + 'reflection_group_c' : files('reflection_group_c.pyx'), + 'reflection_group_element' : files('reflection_group_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/combinat/words/meson.build b/src/sage/combinat/words/meson.build index 76a04423785..a396134f586 100644 --- a/src/sage/combinat/words/meson.build +++ b/src/sage/combinat/words/meson.build @@ -19,8 +19,8 @@ py.install_sources( ) extension_data = { - 'word_char': files('word_char.pyx'), - 'word_datatypes': files('word_datatypes.pyx'), + 'word_char' : files('word_char.pyx'), + 'word_datatypes' : files('word_datatypes.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/cpython/meson.build b/src/sage/cpython/meson.build index 4081613955a..88628fdbc35 100644 --- a/src/sage/cpython/meson.build +++ b/src/sage/cpython/meson.build @@ -20,15 +20,15 @@ py.install_sources( ) extension_data = { - 'atexit': files('atexit.pyx'), - 'builtin_types': files('builtin_types.pyx'), - 'cython_metaclass': files('cython_metaclass.pyx'), - 'debug': files('debug.pyx'), - 'dict_del_by_value': files('dict_del_by_value.pyx'), - 'getattr': files('getattr.pyx'), - 'string': files('string.pyx'), - 'type': files('type.pyx'), - 'wrapperdescr': files('wrapperdescr.pyx'), + 'atexit' : files('atexit.pyx'), + 'builtin_types' : files('builtin_types.pyx'), + 'cython_metaclass' : files('cython_metaclass.pyx'), + 'debug' : files('debug.pyx'), + 'dict_del_by_value' : files('dict_del_by_value.pyx'), + 'getattr' : files('getattr.pyx'), + 'string' : files('string.pyx'), + 'type' : files('type.pyx'), + 'wrapperdescr' : files('wrapperdescr.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/crypto/meson.build b/src/sage/crypto/meson.build index 5a40424281b..c9c178b6811 100644 --- a/src/sage/crypto/meson.build +++ b/src/sage/crypto/meson.build @@ -16,8 +16,8 @@ py.install_sources( ) extension_data = { - 'boolean_function': files('boolean_function.pyx'), - 'sbox': files('sbox.pyx'), + 'boolean_function' : files('boolean_function.pyx'), + 'sbox' : files('sbox.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/data_structures/meson.build b/src/sage/data_structures/meson.build index dbbf1476444..71cbfcc76cd 100644 --- a/src/sage/data_structures/meson.build +++ b/src/sage/data_structures/meson.build @@ -16,12 +16,12 @@ py.install_sources( ) extension_data = { - 'binary_search': files('binary_search.pyx'), - 'bitset': files('bitset.pyx'), - 'bitset_base': files('bitset_base.pyx'), - 'blas_dict': files('blas_dict.pyx'), - 'bounded_integer_sequences': files('bounded_integer_sequences.pyx'), - 'list_of_pairs': files('list_of_pairs.pyx'), + 'binary_search' : files('binary_search.pyx'), + 'bitset' : files('bitset.pyx'), + 'bitset_base' : files('bitset_base.pyx'), + 'blas_dict' : files('blas_dict.pyx'), + 'bounded_integer_sequences' : files('bounded_integer_sequences.pyx'), + 'list_of_pairs' : files('list_of_pairs.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/dynamics/arithmetic_dynamics/meson.build b/src/sage/dynamics/arithmetic_dynamics/meson.build index 1bfb5e38d9a..7a893df2186 100644 --- a/src/sage/dynamics/arithmetic_dynamics/meson.build +++ b/src/sage/dynamics/arithmetic_dynamics/meson.build @@ -13,7 +13,7 @@ py.install_sources( ) extension_data = { - 'projective_ds_helper': files('projective_ds_helper.pyx'), + 'projective_ds_helper' : files('projective_ds_helper.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/dynamics/complex_dynamics/meson.build b/src/sage/dynamics/complex_dynamics/meson.build index 5d69ca71714..426d18c2224 100644 --- a/src/sage/dynamics/complex_dynamics/meson.build +++ b/src/sage/dynamics/complex_dynamics/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'mandel_julia.py', subdir : 'sage/dynamics/complex_dynamics') extension_data = { - 'mandel_julia_helper': files('mandel_julia_helper.pyx'), + 'mandel_julia_helper' : files('mandel_julia_helper.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build index 22f787061b8..3dc6a9e3064 100644 --- a/src/sage/ext/interpreters/meson.build +++ b/src/sage/ext/interpreters/meson.build @@ -10,12 +10,12 @@ py.install_sources( ) extension_data = { - 'wrapper_cc': files('wrapper_cc.pyx'), - 'wrapper_cdf': files('wrapper_cdf.pyx'), - 'wrapper_el': files('wrapper_el.pyx'), - 'wrapper_py': files('wrapper_py.pyx'), - 'wrapper_rdf': files('wrapper_rdf.pyx'), - 'wrapper_rr': files('wrapper_rr.pyx'), + 'wrapper_cc' : files('wrapper_cc.pyx'), + 'wrapper_cdf' : files('wrapper_cdf.pyx'), + 'wrapper_el' : files('wrapper_el.pyx'), + 'wrapper_py' : files('wrapper_py.pyx'), + 'wrapper_rdf' : files('wrapper_rdf.pyx'), + 'wrapper_rr' : files('wrapper_rr.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index fdc4fe44813..fdeecdc9318 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -12,10 +12,10 @@ py.install_sources( ) extension_data = { - 'fast_callable': files('fast_callable.pyx'), - 'fast_eval': files('fast_eval.pyx'), - 'memory': files('memory.pyx'), - 'memory_allocator': files('memory_allocator.pyx'), + 'fast_callable' : files('fast_callable.pyx'), + 'fast_eval' : files('fast_eval.pyx'), + 'memory' : files('memory.pyx'), + 'memory_allocator' : files('memory_allocator.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/functions/meson.build b/src/sage/functions/meson.build index e1f77eb331e..c82cbadc680 100644 --- a/src/sage/functions/meson.build +++ b/src/sage/functions/meson.build @@ -23,7 +23,7 @@ py.install_sources( ) extension_data = { - 'prime_pi': files('prime_pi.pyx'), + 'prime_pi' : files('prime_pi.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/games/meson.build b/src/sage/games/meson.build index 6bc0e802a68..bc7d2deeef4 100644 --- a/src/sage/games/meson.build +++ b/src/sage/games/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'hexad.py', 'quantumino.py', 'sudoku.py', subdir : 'sage/games') extension_data = { - 'sudoku_backtrack': files('sudoku_backtrack.pyx'), + 'sudoku_backtrack' : files('sudoku_backtrack.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/geometry/meson.build b/src/sage/geometry/meson.build index c4a14f0d51e..224117d14d2 100644 --- a/src/sage/geometry/meson.build +++ b/src/sage/geometry/meson.build @@ -22,12 +22,12 @@ py.install_sources( ) extension_data = { - 'abc': files('abc.pyx'), - 'integral_points_generic_dense': files('integral_points_generic_dense.pyx'), - 'integral_points_integer_dense': files('integral_points_integer_dense.pyx'), - 'palp_normal_form': files('palp_normal_form.pyx'), - 'point_collection': files('point_collection.pyx'), - 'toric_lattice_element': files('toric_lattice_element.pyx'), + 'abc' : files('abc.pyx'), + 'integral_points_generic_dense' : files('integral_points_generic_dense.pyx'), + 'integral_points_integer_dense' : files('integral_points_integer_dense.pyx'), + 'palp_normal_form' : files('palp_normal_form.pyx'), + 'point_collection' : files('point_collection.pyx'), + 'toric_lattice_element' : files('toric_lattice_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build b/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build index 700d92bf09e..34c548ffcbd 100644 --- a/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build +++ b/src/sage/geometry/polyhedron/combinatorial_polyhedron/meson.build @@ -1,13 +1,13 @@ py.install_sources('all.py', subdir : 'sage/geometry/polyhedron/combinatorial_polyhedron') extension_data = { - 'base': files('base.pyx'), - 'combinatorial_face': files('combinatorial_face.pyx'), - 'conversions': files('conversions.pyx'), - 'face_iterator': files('face_iterator.pyx'), - 'face_list_data_structure': files('face_list_data_structure.pyx'), - 'list_of_faces': files('list_of_faces.pyx'), - 'polyhedron_face_lattice': files('polyhedron_face_lattice.pyx'), + 'base' : files('base.pyx'), + 'combinatorial_face' : files('combinatorial_face.pyx'), + 'conversions' : files('conversions.pyx'), + 'face_iterator' : files('face_iterator.pyx'), + 'face_list_data_structure' : files('face_list_data_structure.pyx'), + 'list_of_faces' : files('list_of_faces.pyx'), + 'polyhedron_face_lattice' : files('polyhedron_face_lattice.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/graphs/base/meson.build b/src/sage/graphs/base/meson.build index ef431a0f7b6..d665f801b86 100644 --- a/src/sage/graphs/base/meson.build +++ b/src/sage/graphs/base/meson.build @@ -13,11 +13,11 @@ py.install_sources( ) extension_data = { - 'dense_graph': files('dense_graph.pyx'), - 'graph_backends': files('graph_backends.pyx'), - 'sparse_graph': files('sparse_graph.pyx'), - 'static_dense_graph': files('static_dense_graph.pyx'), - 'static_sparse_backend': files('static_sparse_backend.pyx'), + 'dense_graph' : files('dense_graph.pyx'), + 'graph_backends' : files('graph_backends.pyx'), + 'sparse_graph' : files('sparse_graph.pyx'), + 'static_dense_graph' : files('static_dense_graph.pyx'), + 'static_sparse_backend' : files('static_sparse_backend.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/graphs/generators/meson.build b/src/sage/graphs/generators/meson.build index be0879c9063..a52efc9c474 100644 --- a/src/sage/graphs/generators/meson.build +++ b/src/sage/graphs/generators/meson.build @@ -14,7 +14,7 @@ py.install_sources( ) extension_data = { - 'distance_regular': files('distance_regular.pyx'), + 'distance_regular' : files('distance_regular.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/graphs/graph_decompositions/meson.build b/src/sage/graphs/graph_decompositions/meson.build index 19b2786578e..2687e439ed1 100644 --- a/src/sage/graphs/graph_decompositions/meson.build +++ b/src/sage/graphs/graph_decompositions/meson.build @@ -18,13 +18,13 @@ py.install_sources( ) extension_data = { - 'bandwidth': files('bandwidth.pyx'), - 'cutwidth': files('cutwidth.pyx'), - 'fast_digraph': files('fast_digraph.pyx'), - 'graph_products': files('graph_products.pyx'), - 'rankwidth': files('rankwidth.pyx'), - 'tree_decomposition': files('tree_decomposition.pyx'), - 'vertex_separation': files('vertex_separation.pyx'), + 'bandwidth' : files('bandwidth.pyx'), + 'cutwidth' : files('cutwidth.pyx'), + 'fast_digraph' : files('fast_digraph.pyx'), + 'graph_products' : files('graph_products.pyx'), + 'rankwidth' : files('rankwidth.pyx'), + 'tree_decomposition' : files('tree_decomposition.pyx'), + 'vertex_separation' : files('vertex_separation.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/graphs/meson.build b/src/sage/graphs/meson.build index a992796e777..4eeff52a511 100644 --- a/src/sage/graphs/meson.build +++ b/src/sage/graphs/meson.build @@ -50,28 +50,28 @@ py.install_sources( ) extension_data = { - 'asteroidal_triples': files('asteroidal_triples.pyx'), - 'centrality': files('centrality.pyx'), - 'chrompoly': files('chrompoly.pyx'), - 'cliquer': files('cliquer.pyx'), - 'comparability': files('comparability.pyx'), - 'connectivity': files('connectivity.pyx'), - 'convexity_properties': files('convexity_properties.pyx'), - 'distances_all_pairs': files('distances_all_pairs.pyx'), - 'generic_graph_pyx': files('generic_graph_pyx.pyx'), - 'genus': files('genus.pyx'), - 'graph_generators_pyx': files('graph_generators_pyx.pyx'), - 'hyperbolicity': files('hyperbolicity.pyx'), - 'independent_sets': files('independent_sets.pyx'), - 'isoperimetric_inequalities': files('isoperimetric_inequalities.pyx'), - 'line_graph': files('line_graph.pyx'), - 'matchpoly': files('matchpoly.pyx'), - 'planarity': files('planarity.pyx'), - 'spanning_tree': files('spanning_tree.pyx'), - 'strongly_regular_db': files('strongly_regular_db.pyx'), - 'trees': files('trees.pyx'), - 'views': files('views.pyx'), - 'weakly_chordal': files('weakly_chordal.pyx'), + 'asteroidal_triples' : files('asteroidal_triples.pyx'), + 'centrality' : files('centrality.pyx'), + 'chrompoly' : files('chrompoly.pyx'), + 'cliquer' : files('cliquer.pyx'), + 'comparability' : files('comparability.pyx'), + 'connectivity' : files('connectivity.pyx'), + 'convexity_properties' : files('convexity_properties.pyx'), + 'distances_all_pairs' : files('distances_all_pairs.pyx'), + 'generic_graph_pyx' : files('generic_graph_pyx.pyx'), + 'genus' : files('genus.pyx'), + 'graph_generators_pyx' : files('graph_generators_pyx.pyx'), + 'hyperbolicity' : files('hyperbolicity.pyx'), + 'independent_sets' : files('independent_sets.pyx'), + 'isoperimetric_inequalities' : files('isoperimetric_inequalities.pyx'), + 'line_graph' : files('line_graph.pyx'), + 'matchpoly' : files('matchpoly.pyx'), + 'planarity' : files('planarity.pyx'), + 'spanning_tree' : files('spanning_tree.pyx'), + 'strongly_regular_db' : files('strongly_regular_db.pyx'), + 'trees' : files('trees.pyx'), + 'views' : files('views.pyx'), + 'weakly_chordal' : files('weakly_chordal.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/groups/matrix_gps/meson.build b/src/sage/groups/matrix_gps/meson.build index de499c053da..c8497f50a19 100644 --- a/src/sage/groups/matrix_gps/meson.build +++ b/src/sage/groups/matrix_gps/meson.build @@ -26,8 +26,8 @@ py.install_sources( ) extension_data = { - 'group_element': files('group_element.pyx'), - 'group_element_gap': files('group_element_gap.pyx'), + 'group_element' : files('group_element.pyx'), + 'group_element_gap' : files('group_element_gap.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/groups/meson.build b/src/sage/groups/meson.build index f49474c2860..0584d878813 100644 --- a/src/sage/groups/meson.build +++ b/src/sage/groups/meson.build @@ -31,9 +31,9 @@ py.install_sources( ) extension_data = { - 'group': files('group.pyx'), - 'libgap_wrapper': files('libgap_wrapper.pyx'), - 'old': files('old.pyx'), + 'group' : files('group.pyx'), + 'libgap_wrapper' : files('libgap_wrapper.pyx'), + 'old' : files('old.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/groups/perm_gps/meson.build b/src/sage/groups/perm_gps/meson.build index eee96dacab0..2c6fca471a9 100644 --- a/src/sage/groups/perm_gps/meson.build +++ b/src/sage/groups/perm_gps/meson.build @@ -11,7 +11,7 @@ py.install_sources( ) extension_data = { - 'permgroup_element': files('permgroup_element.pyx'), + 'permgroup_element' : files('permgroup_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/groups/perm_gps/partn_ref/meson.build b/src/sage/groups/perm_gps/partn_ref/meson.build index 347d4b11cb3..dc4bc64825e 100644 --- a/src/sage/groups/perm_gps/partn_ref/meson.build +++ b/src/sage/groups/perm_gps/partn_ref/meson.build @@ -1,16 +1,16 @@ py.install_sources('all.py', subdir : 'sage/groups/perm_gps/partn_ref') extension_data = { - 'automorphism_group_canonical_label': files('automorphism_group_canonical_label.pyx'), - 'canonical_augmentation': files('canonical_augmentation.pyx'), - 'data_structures': files('data_structures.pyx'), - 'double_coset': files('double_coset.pyx'), - 'refinement_binary': files('refinement_binary.pyx'), - 'refinement_graphs': files('refinement_graphs.pyx'), - 'refinement_lists': files('refinement_lists.pyx'), - 'refinement_matrices': files('refinement_matrices.pyx'), - 'refinement_python': files('refinement_python.pyx'), - 'refinement_sets': files('refinement_sets.pyx'), + 'automorphism_group_canonical_label' : files('automorphism_group_canonical_label.pyx'), + 'canonical_augmentation' : files('canonical_augmentation.pyx'), + 'data_structures' : files('data_structures.pyx'), + 'double_coset' : files('double_coset.pyx'), + 'refinement_binary' : files('refinement_binary.pyx'), + 'refinement_graphs' : files('refinement_graphs.pyx'), + 'refinement_lists' : files('refinement_lists.pyx'), + 'refinement_matrices' : files('refinement_matrices.pyx'), + 'refinement_python' : files('refinement_python.pyx'), + 'refinement_sets' : files('refinement_sets.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/groups/perm_gps/partn_ref2/meson.build b/src/sage/groups/perm_gps/partn_ref2/meson.build index d25038bb14d..6f066ad2f4a 100644 --- a/src/sage/groups/perm_gps/partn_ref2/meson.build +++ b/src/sage/groups/perm_gps/partn_ref2/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', subdir : 'sage/groups/perm_gps/partn_ref2') extension_data = { - 'refinement_generic': files('refinement_generic.pyx'), + 'refinement_generic' : files('refinement_generic.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/groups/semimonomial_transformations/meson.build b/src/sage/groups/semimonomial_transformations/meson.build index 00b94c7bc38..88b4e6d20c2 100644 --- a/src/sage/groups/semimonomial_transformations/meson.build +++ b/src/sage/groups/semimonomial_transformations/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'semimonomial_transformation_group.py', subdir : 'sage/groups/semimonomial_transformations') extension_data = { - 'semimonomial_transformation': files('semimonomial_transformation.pyx'), + 'semimonomial_transformation' : files('semimonomial_transformation.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/interacts/meson.build b/src/sage/interacts/meson.build index 56c1eeb0622..5cefd7dedf8 100644 --- a/src/sage/interacts/meson.build +++ b/src/sage/interacts/meson.build @@ -10,7 +10,7 @@ py.install_sources( ) extension_data = { - 'library_cython': files('library_cython.pyx'), + 'library_cython' : files('library_cython.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/interfaces/meson.build b/src/sage/interfaces/meson.build index f7086657ce6..79d1f3844c8 100644 --- a/src/sage/interfaces/meson.build +++ b/src/sage/interfaces/meson.build @@ -62,8 +62,8 @@ py.install_sources( ) extension_data = { - 'process': files('process.pyx'), - 'sagespawn': files('sagespawn.pyx'), + 'process' : files('process.pyx'), + 'sagespawn' : files('sagespawn.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/lfunctions/meson.build b/src/sage/lfunctions/meson.build index 024507e1043..5252b506e14 100644 --- a/src/sage/lfunctions/meson.build +++ b/src/sage/lfunctions/meson.build @@ -8,7 +8,7 @@ py.install_sources( ) extension_data = { - 'zero_sums': files('zero_sums.pyx'), + 'zero_sums' : files('zero_sums.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index d8f90891b1d..36da5a1cc6c 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -19,8 +19,8 @@ py.install_sources( ) extension_data = { - 'arb_version': files('arb_version.pyx'), - 'arith': files('arith.pyx'), + 'arb_version' : files('arb_version.pyx'), + 'arith' : files('arith.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/flint/meson.build b/src/sage/libs/flint/meson.build index 63efeb48959..f94394218ed 100644 --- a/src/sage/libs/flint/meson.build +++ b/src/sage/libs/flint/meson.build @@ -32,17 +32,17 @@ py.install_sources( ) extension_data = { - 'arith': files('arith.pyx'), - 'arith_sage': files('arith_sage.pyx'), - 'flint_sage': files('flint_sage.pyx'), - 'fmpq_poly_sage': files('fmpq_poly_sage.pyx'), - 'fmpz_factor_sage': files('fmpz_factor_sage.pyx'), - 'fmpz_poly': files('fmpz_poly.pyx'), - 'fmpz_poly_sage': files('fmpz_poly_sage.pyx'), - 'qsieve': files('qsieve.pyx'), - 'qsieve_sage': files('qsieve_sage.pyx'), - 'ulong_extras': files('ulong_extras.pyx'), - 'ulong_extras_sage': files('ulong_extras_sage.pyx'), + 'arith' : files('arith.pyx'), + 'arith_sage' : files('arith_sage.pyx'), + 'flint_sage' : files('flint_sage.pyx'), + 'fmpq_poly_sage' : files('fmpq_poly_sage.pyx'), + 'fmpz_factor_sage' : files('fmpz_factor_sage.pyx'), + 'fmpz_poly' : files('fmpz_poly.pyx'), + 'fmpz_poly_sage' : files('fmpz_poly_sage.pyx'), + 'qsieve' : files('qsieve.pyx'), + 'qsieve_sage' : files('qsieve_sage.pyx'), + 'ulong_extras' : files('ulong_extras.pyx'), + 'ulong_extras_sage' : files('ulong_extras_sage.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/gap/meson.build b/src/sage/libs/gap/meson.build index df6ccfee84b..e992c11a8a1 100644 --- a/src/sage/libs/gap/meson.build +++ b/src/sage/libs/gap/meson.build @@ -17,9 +17,9 @@ py.install_sources( ) extension_data = { - 'element': files('element.pyx'), - 'libgap': files('libgap.pyx'), - 'util': files('util.pyx'), + 'element' : files('element.pyx'), + 'libgap' : files('libgap.pyx'), + 'util' : files('util.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/glpk/meson.build b/src/sage/libs/glpk/meson.build index 32eaa0bb9a4..d3c321906ef 100644 --- a/src/sage/libs/glpk/meson.build +++ b/src/sage/libs/glpk/meson.build @@ -9,7 +9,7 @@ py.install_sources( ) extension_data = { - 'error': files('error.pyx'), + 'error' : files('error.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/gmp/meson.build b/src/sage/libs/gmp/meson.build index 7cb927e811a..08809fa27a4 100644 --- a/src/sage/libs/gmp/meson.build +++ b/src/sage/libs/gmp/meson.build @@ -15,7 +15,7 @@ py.install_sources( ) extension_data = { - 'pylong': files('pylong.pyx'), + 'pylong' : files('pylong.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/gsl/meson.build b/src/sage/libs/gsl/meson.build index 42f05e23a6a..104f7d8058c 100644 --- a/src/sage/libs/gsl/meson.build +++ b/src/sage/libs/gsl/meson.build @@ -68,7 +68,7 @@ py.install_sources( ) extension_data = { - 'array': files('array.pyx'), + 'array' : files('array.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index 924f8fa4f11..55f6e6caef5 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -23,10 +23,9 @@ py.install_sources( ) extension_data = { - 'ecl': files('ecl.pyx'), - 'homfly': files('homfly.pyx'), - 'libecm': files('libecm.pyx'), - #'meataxe': files('meataxe.pyx'), # not yet on conda - need meataxe + 'ecl' : files('ecl.pyx'), + 'homfly' : files('homfly.pyx'), + 'libecm' : files('libecm.pyx') } dependencies = [py_dep, braiding, cysignals, ecl, ecm, gc, gmp, homfly, mtx, sirocco] diff --git a/src/sage/libs/mpmath/meson.build b/src/sage/libs/mpmath/meson.build index 394a4da4357..c656d5be110 100644 --- a/src/sage/libs/mpmath/meson.build +++ b/src/sage/libs/mpmath/meson.build @@ -1,10 +1,10 @@ py.install_sources('__init__.py', 'all.py', 'utils.pxd', subdir : 'sage/libs/mpmath') extension_data = { - 'ext_impl': files('ext_impl.pyx'), - 'ext_libmp': files('ext_libmp.pyx'), - 'ext_main': files('ext_main.pyx'), - 'utils': files('utils.pyx'), + 'ext_impl' : files('ext_impl.pyx'), + 'ext_libmp' : files('ext_libmp.pyx'), + 'ext_main' : files('ext_main.pyx'), + 'utils' : files('utils.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/pari/meson.build b/src/sage/libs/pari/meson.build index 8e3236af9bd..1dee2a1795c 100644 --- a/src/sage/libs/pari/meson.build +++ b/src/sage/libs/pari/meson.build @@ -13,14 +13,14 @@ py.install_sources( ) extension_data = { - 'convert_flint': files('convert_flint.pyx'), - 'convert_gmp': files('convert_gmp.pyx'), - 'convert_sage': files('convert_sage.pyx'), - 'convert_sage_complex_double': files('convert_sage_complex_double.pyx'), - 'convert_sage_matrix': files('convert_sage_matrix.pyx'), - 'convert_sage_real_double': files('convert_sage_real_double.pyx'), - 'convert_sage_real_mpfr': files('convert_sage_real_mpfr.pyx'), - 'misc': files('misc.pyx'), + 'convert_flint' : files('convert_flint.pyx'), + 'convert_gmp' : files('convert_gmp.pyx'), + 'convert_sage' : files('convert_sage.pyx'), + 'convert_sage_complex_double' : files('convert_sage_complex_double.pyx'), + 'convert_sage_matrix' : files('convert_sage_matrix.pyx'), + 'convert_sage_real_double' : files('convert_sage_real_double.pyx'), + 'convert_sage_real_mpfr' : files('convert_sage_real_mpfr.pyx'), + 'misc' : files('misc.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/libs/symmetrica/meson.build b/src/sage/libs/symmetrica/meson.build index 36fa3b99f30..7ad39e95ad2 100644 --- a/src/sage/libs/symmetrica/meson.build +++ b/src/sage/libs/symmetrica/meson.build @@ -8,7 +8,7 @@ symmetrica = declare_dependency( py.install_sources('__init__.py', 'all.py', subdir : 'sage/libs/symmetrica') extension_data = { - 'symmetrica': files('symmetrica.pyx'), + 'symmetrica' : files('symmetrica.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index a9255459faa..a6e1e0c902e 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -31,38 +31,38 @@ py.install_sources( ) extension_data = { - 'action': files('action.pyx'), - 'args': files('args.pyx'), - 'change_ring': files('change_ring.pyx'), - 'constructor': files('constructor.pyx'), - 'echelon_matrix': files('echelon_matrix.pyx'), - 'matrix0': files('matrix0.pyx'), - 'matrix1': files('matrix1.pyx'), - 'matrix2': files('matrix2.pyx'), - 'matrix_cdv': files('matrix_cdv.pyx'), - 'matrix_complex_ball_dense': files('matrix_complex_ball_dense.pyx'), - 'matrix_complex_double_dense': files('matrix_complex_double_dense.pyx'), - 'matrix_dense': files('matrix_dense.pyx'), - 'matrix_double_dense': files('matrix_double_dense.pyx'), - 'matrix_double_sparse': files('matrix_double_sparse.pyx'), - 'matrix_gap': files('matrix_gap.pyx'), - 'matrix_generic_dense': files('matrix_generic_dense.pyx'), - 'matrix_generic_sparse': files('matrix_generic_sparse.pyx'), - # 'matrix_gfpn_dense': files('matrix_gfpn_dense.pyx'), # not yet on conda - 'matrix_laurent_mpolynomial_dense': files('matrix_laurent_mpolynomial_dense.pyx'), - 'matrix_numpy_dense': files('matrix_numpy_dense.pyx'), - 'matrix_numpy_integer_dense': files('matrix_numpy_integer_dense.pyx'), - 'matrix_polynomial_dense': files('matrix_polynomial_dense.pyx'), - 'matrix_rational_sparse': files('matrix_rational_sparse.pyx'), - 'matrix_real_double_dense': files('matrix_real_double_dense.pyx'), - 'matrix_sparse': files('matrix_sparse.pyx'), - 'matrix_symbolic_dense': files('matrix_symbolic_dense.pyx'), - 'matrix_symbolic_sparse': files('matrix_symbolic_sparse.pyx'), - 'matrix_window': files('matrix_window.pyx'), - 'misc': files('misc.pyx'), - 'misc_flint': files('misc_flint.pyx'), - 'misc_mpfr': files('misc_mpfr.pyx'), - 'strassen': files('strassen.pyx'), + 'action' : files('action.pyx'), + 'args' : files('args.pyx'), + 'change_ring' : files('change_ring.pyx'), + 'constructor' : files('constructor.pyx'), + 'echelon_matrix' : files('echelon_matrix.pyx'), + 'matrix0' : files('matrix0.pyx'), + 'matrix1' : files('matrix1.pyx'), + 'matrix2' : files('matrix2.pyx'), + 'matrix_cdv' : files('matrix_cdv.pyx'), + 'matrix_complex_ball_dense' : files('matrix_complex_ball_dense.pyx'), + 'matrix_complex_double_dense' : files('matrix_complex_double_dense.pyx'), + 'matrix_dense' : files('matrix_dense.pyx'), + 'matrix_double_dense' : files('matrix_double_dense.pyx'), + 'matrix_double_sparse' : files('matrix_double_sparse.pyx'), + 'matrix_gap' : files('matrix_gap.pyx'), + 'matrix_generic_dense' : files('matrix_generic_dense.pyx'), + 'matrix_generic_sparse' : files('matrix_generic_sparse.pyx'), + 'matrix_gfpn_dense' : files('matrix_gfpn_dense.pyx'), + 'matrix_laurent_mpolynomial_dense' : files('matrix_laurent_mpolynomial_dense.pyx'), + 'matrix_numpy_dense' : files('matrix_numpy_dense.pyx'), + 'matrix_numpy_integer_dense' : files('matrix_numpy_integer_dense.pyx'), + 'matrix_polynomial_dense' : files('matrix_polynomial_dense.pyx'), + 'matrix_rational_sparse' : files('matrix_rational_sparse.pyx'), + 'matrix_real_double_dense' : files('matrix_real_double_dense.pyx'), + 'matrix_sparse' : files('matrix_sparse.pyx'), + 'matrix_symbolic_dense' : files('matrix_symbolic_dense.pyx'), + 'matrix_symbolic_sparse' : files('matrix_symbolic_sparse.pyx'), + 'matrix_window' : files('matrix_window.pyx'), + 'misc' : files('misc.pyx'), + 'misc_flint' : files('misc_flint.pyx'), + 'misc_mpfr' : files('misc_mpfr.pyx'), + 'strassen' : files('strassen.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/matroids/meson.build b/src/sage/matroids/meson.build index b8e706a9414..6c0976521ee 100644 --- a/src/sage/matroids/meson.build +++ b/src/sage/matroids/meson.build @@ -17,16 +17,17 @@ py.install_sources( ) extension_data = { - 'basis_exchange_matroid': files('basis_exchange_matroid.pyx'), - 'basis_matroid': files('basis_matroid.pyx'), - 'circuit_closures_matroid': files('circuit_closures_matroid.pyx'), - 'extension': files('extension.pyx'), - 'lean_matrix': files('lean_matrix.pyx'), - 'linear_matroid': files('linear_matroid.pyx'), - 'matroid': files('matroid.pyx'), - 'set_system': files('set_system.pyx'), - 'union_matroid': files('union_matroid.pyx'), - 'unpickling': files('unpickling.pyx'), + 'basis_exchange_matroid' : files('basis_exchange_matroid.pyx'), + 'basis_matroid' : files('basis_matroid.pyx'), + 'circuit_closures_matroid' : files('circuit_closures_matroid.pyx'), + 'circuits_matroid' : files('circuits_matroid.pyx'), + 'extension' : files('extension.pyx'), + 'lean_matrix' : files('lean_matrix.pyx'), + 'linear_matroid' : files('linear_matroid.pyx'), + 'matroid' : files('matroid.pyx'), + 'set_system' : files('set_system.pyx'), + 'union_matroid' : files('union_matroid.pyx'), + 'unpickling' : files('unpickling.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/misc/meson.build b/src/sage/misc/meson.build index eccd8be3347..677195baf45 100644 --- a/src/sage/misc/meson.build +++ b/src/sage/misc/meson.build @@ -91,38 +91,38 @@ py.install_sources( ) extension_data = { - 'allocator': files('allocator.pyx'), - 'binary_tree': files('binary_tree.pyx'), - 'c3': files('c3.pyx'), - 'c3_controlled': files('c3_controlled.pyx'), - 'cachefunc': files('cachefunc.pyx'), - 'callable_dict': files('callable_dict.pyx'), - 'citation': files('citation.pyx'), - 'classcall_metaclass': files('classcall_metaclass.pyx'), - 'constant_function': files('constant_function.pyx'), - 'derivative': files('derivative.pyx'), - 'fast_methods': files('fast_methods.pyx'), - 'fpickle': files('fpickle.pyx'), - 'function_mangling': files('function_mangling.pyx'), - 'inherit_comparison': files('inherit_comparison.pyx'), - 'instancedoc': files('instancedoc.pyx'), - 'lazy_attribute': files('lazy_attribute.pyx'), - 'lazy_import': files('lazy_import.pyx'), - 'lazy_list': files('lazy_list.pyx'), - 'lazy_string': files('lazy_string.pyx'), - 'misc_c': files('misc_c.pyx'), - 'nested_class': files('nested_class.pyx'), - 'parser': files('parser.pyx'), - 'persist': files('persist.pyx'), - 'pickle_old': files('pickle_old.pyx'), - 'randstate': files('randstate.pyx'), - 'reset': files('reset.pyx'), - 'sage_ostools': files('sage_ostools.pyx'), - 'sage_timeit_class': files('sage_timeit_class.pyx'), - 'search': files('search.pyx'), - 'session': files('session.pyx'), - 'stopgap': files('stopgap.pyx'), - 'weak_dict': files('weak_dict.pyx'), + 'allocator' : files('allocator.pyx'), + 'binary_tree' : files('binary_tree.pyx'), + 'c3' : files('c3.pyx'), + 'c3_controlled' : files('c3_controlled.pyx'), + 'cachefunc' : files('cachefunc.pyx'), + 'callable_dict' : files('callable_dict.pyx'), + 'citation' : files('citation.pyx'), + 'classcall_metaclass' : files('classcall_metaclass.pyx'), + 'constant_function' : files('constant_function.pyx'), + 'derivative' : files('derivative.pyx'), + 'fast_methods' : files('fast_methods.pyx'), + 'fpickle' : files('fpickle.pyx'), + 'function_mangling' : files('function_mangling.pyx'), + 'inherit_comparison' : files('inherit_comparison.pyx'), + 'instancedoc' : files('instancedoc.pyx'), + 'lazy_attribute' : files('lazy_attribute.pyx'), + 'lazy_import' : files('lazy_import.pyx'), + 'lazy_list' : files('lazy_list.pyx'), + 'lazy_string' : files('lazy_string.pyx'), + 'misc_c' : files('misc_c.pyx'), + 'nested_class' : files('nested_class.pyx'), + 'parser' : files('parser.pyx'), + 'persist' : files('persist.pyx'), + 'pickle_old' : files('pickle_old.pyx'), + 'randstate' : files('randstate.pyx'), + 'reset' : files('reset.pyx'), + 'sage_ostools' : files('sage_ostools.pyx'), + 'sage_timeit_class' : files('sage_timeit_class.pyx'), + 'search' : files('search.pyx'), + 'session' : files('session.pyx'), + 'stopgap' : files('stopgap.pyx'), + 'weak_dict' : files('weak_dict.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/modular/arithgroup/meson.build b/src/sage/modular/arithgroup/meson.build index da0d531e418..3fa07c1c87a 100644 --- a/src/sage/modular/arithgroup/meson.build +++ b/src/sage/modular/arithgroup/meson.build @@ -13,8 +13,8 @@ py.install_sources( ) extension_data = { - 'arithgroup_element': files('arithgroup_element.pyx'), - 'congroup': files('congroup.pyx'), + 'arithgroup_element' : files('arithgroup_element.pyx'), + 'congroup' : files('congroup.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/modular/meson.build b/src/sage/modular/meson.build index fb4dce49d66..6c6de88d2a6 100644 --- a/src/sage/modular/meson.build +++ b/src/sage/modular/meson.build @@ -15,7 +15,7 @@ py.install_sources( ) extension_data = { - 'hypergeometric_misc': files('hypergeometric_misc.pyx'), + 'hypergeometric_misc' : files('hypergeometric_misc.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/modular/modform/meson.build b/src/sage/modular/modform/meson.build index d154837ba69..1d9db87c35e 100644 --- a/src/sage/modular/modform/meson.build +++ b/src/sage/modular/modform/meson.build @@ -30,8 +30,8 @@ py.install_sources( ) extension_data = { - 'eis_series_cython': files('eis_series_cython.pyx'), - 'l_series_gross_zagier_coeffs': files('l_series_gross_zagier_coeffs.pyx'), + 'eis_series_cython' : files('eis_series_cython.pyx'), + 'l_series_gross_zagier_coeffs' : files('l_series_gross_zagier_coeffs.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/modular/modsym/meson.build b/src/sage/modular/modsym/meson.build index c2164d0f014..82a2c9ef85d 100644 --- a/src/sage/modular/modsym/meson.build +++ b/src/sage/modular/modsym/meson.build @@ -18,11 +18,11 @@ py.install_sources( ) extension_data = { - 'apply': files('apply.pyx'), - 'heilbronn': files('heilbronn.pyx'), - 'manin_symbol': files('manin_symbol.pyx'), - 'p1list': files('p1list.pyx'), - 'relation_matrix_pyx': files('relation_matrix_pyx.pyx'), + 'apply' : files('apply.pyx'), + 'heilbronn' : files('heilbronn.pyx'), + 'manin_symbol' : files('manin_symbol.pyx'), + 'p1list' : files('p1list.pyx'), + 'relation_matrix_pyx' : files('relation_matrix_pyx.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/modular/pollack_stevens/meson.build b/src/sage/modular/pollack_stevens/meson.build index 0ae6515ad80..24e6ec29a15 100644 --- a/src/sage/modular/pollack_stevens/meson.build +++ b/src/sage/modular/pollack_stevens/meson.build @@ -11,7 +11,7 @@ py.install_sources( ) extension_data = { - 'dist': files('dist.pyx'), + 'dist' : files('dist.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/modules/meson.build b/src/sage/modules/meson.build index 73926e095d3..251887c7a21 100644 --- a/src/sage/modules/meson.build +++ b/src/sage/modules/meson.build @@ -28,20 +28,20 @@ py.install_sources( ) extension_data = { - 'finite_submodule_iter': files('finite_submodule_iter.pyx'), - 'free_module_element': files('free_module_element.pyx'), - 'module': files('module.pyx'), - 'vector_complex_double_dense': files('vector_complex_double_dense.pyx'), - 'vector_double_dense': files('vector_double_dense.pyx'), - 'vector_integer_dense': files('vector_integer_dense.pyx'), - 'vector_integer_sparse': files('vector_integer_sparse.pyx'), - 'vector_modn_dense': files('vector_modn_dense.pyx'), - 'vector_modn_sparse': files('vector_modn_sparse.pyx'), - 'vector_numpy_dense': files('vector_numpy_dense.pyx'), - 'vector_numpy_integer_dense': files('vector_numpy_integer_dense.pyx'), - 'vector_rational_dense': files('vector_rational_dense.pyx'), - 'vector_rational_sparse': files('vector_rational_sparse.pyx'), - 'vector_real_double_dense': files('vector_real_double_dense.pyx'), + 'finite_submodule_iter' : files('finite_submodule_iter.pyx'), + 'free_module_element' : files('free_module_element.pyx'), + 'module' : files('module.pyx'), + 'vector_complex_double_dense' : files('vector_complex_double_dense.pyx'), + 'vector_double_dense' : files('vector_double_dense.pyx'), + 'vector_integer_dense' : files('vector_integer_dense.pyx'), + 'vector_integer_sparse' : files('vector_integer_sparse.pyx'), + 'vector_modn_dense' : files('vector_modn_dense.pyx'), + 'vector_modn_sparse' : files('vector_modn_sparse.pyx'), + 'vector_numpy_dense' : files('vector_numpy_dense.pyx'), + 'vector_numpy_integer_dense' : files('vector_numpy_integer_dense.pyx'), + 'vector_rational_dense' : files('vector_rational_dense.pyx'), + 'vector_rational_sparse' : files('vector_rational_sparse.pyx'), + 'vector_real_double_dense' : files('vector_real_double_dense.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/modules/with_basis/meson.build b/src/sage/modules/with_basis/meson.build index f1a4d6f1595..606344d9d93 100644 --- a/src/sage/modules/with_basis/meson.build +++ b/src/sage/modules/with_basis/meson.build @@ -9,7 +9,7 @@ py.install_sources( ) extension_data = { - 'indexed_element': files('indexed_element.pyx'), + 'indexed_element' : files('indexed_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/monoids/meson.build b/src/sage/monoids/meson.build index 9a91c3c5501..cbd5de9d9e6 100644 --- a/src/sage/monoids/meson.build +++ b/src/sage/monoids/meson.build @@ -15,7 +15,7 @@ py.install_sources( ) extension_data = { - 'free_abelian_monoid_element': files('free_abelian_monoid_element.pyx'), + 'free_abelian_monoid_element' : files('free_abelian_monoid_element.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/numerical/backends/meson.build b/src/sage/numerical/backends/meson.build index 6d82562abde..a82045d1787 100644 --- a/src/sage/numerical/backends/meson.build +++ b/src/sage/numerical/backends/meson.build @@ -14,17 +14,17 @@ py.install_sources( ) extension_data = { - 'cvxopt_backend': files('cvxopt_backend.pyx'), - 'cvxopt_sdp_backend': files('cvxopt_sdp_backend.pyx'), - 'cvxpy_backend': files('cvxpy_backend.pyx'), - 'generic_backend': files('generic_backend.pyx'), - 'generic_sdp_backend': files('generic_sdp_backend.pyx'), - 'glpk_backend': files('glpk_backend.pyx'), - 'glpk_exact_backend': files('glpk_exact_backend.pyx'), - 'glpk_graph_backend': files('glpk_graph_backend.pyx'), - 'interactivelp_backend': files('interactivelp_backend.pyx'), - 'matrix_sdp_backend': files('matrix_sdp_backend.pyx'), - 'ppl_backend': files('ppl_backend.pyx'), + 'cvxopt_backend' : files('cvxopt_backend.pyx'), + 'cvxopt_sdp_backend' : files('cvxopt_sdp_backend.pyx'), + 'cvxpy_backend' : files('cvxpy_backend.pyx'), + 'generic_backend' : files('generic_backend.pyx'), + 'generic_sdp_backend' : files('generic_sdp_backend.pyx'), + 'glpk_backend' : files('glpk_backend.pyx'), + 'glpk_exact_backend' : files('glpk_exact_backend.pyx'), + 'glpk_graph_backend' : files('glpk_graph_backend.pyx'), + 'interactivelp_backend' : files('interactivelp_backend.pyx'), + 'matrix_sdp_backend' : files('matrix_sdp_backend.pyx'), + 'ppl_backend' : files('ppl_backend.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/numerical/meson.build b/src/sage/numerical/meson.build index e78b0aa8ee6..65e2ea5560c 100644 --- a/src/sage/numerical/meson.build +++ b/src/sage/numerical/meson.build @@ -10,11 +10,11 @@ py.install_sources( ) extension_data = { - 'gauss_legendre': files('gauss_legendre.pyx'), - 'linear_functions': files('linear_functions.pyx'), - 'linear_tensor_element': files('linear_tensor_element.pyx'), - 'mip': files('mip.pyx'), - 'sdp': files('sdp.pyx'), + 'gauss_legendre' : files('gauss_legendre.pyx'), + 'linear_functions' : files('linear_functions.pyx'), + 'linear_tensor_element' : files('linear_tensor_element.pyx'), + 'mip' : files('mip.pyx'), + 'sdp' : files('sdp.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/plot/meson.build b/src/sage/plot/meson.build index 38bc0d2deb8..a4a81656c56 100644 --- a/src/sage/plot/meson.build +++ b/src/sage/plot/meson.build @@ -33,7 +33,7 @@ py.install_sources( ) extension_data = { - 'complex_plot': files('complex_plot.pyx'), + 'complex_plot' : files('complex_plot.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/plot/plot3d/meson.build b/src/sage/plot/plot3d/meson.build index 1f67c0de600..3a9f0b40db9 100644 --- a/src/sage/plot/plot3d/meson.build +++ b/src/sage/plot/plot3d/meson.build @@ -16,12 +16,12 @@ py.install_sources( ) extension_data = { - 'base': files('base.pyx'), - 'implicit_surface': files('implicit_surface.pyx'), - 'index_face_set': files('index_face_set.pyx'), - 'parametric_surface': files('parametric_surface.pyx'), - 'shapes': files('shapes.pyx'), - 'transform': files('transform.pyx'), + 'base' : files('base.pyx'), + 'implicit_surface' : files('implicit_surface.pyx'), + 'index_face_set' : files('index_face_set.pyx'), + 'parametric_surface' : files('parametric_surface.pyx'), + 'shapes' : files('shapes.pyx'), + 'transform' : files('transform.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/probability/meson.build b/src/sage/probability/meson.build index f7cd120c89f..55518a1f01d 100644 --- a/src/sage/probability/meson.build +++ b/src/sage/probability/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'random_variable.py', subdir : 'sage/probability') extension_data = { - 'probability_distribution': files('probability_distribution.pyx'), + 'probability_distribution' : files('probability_distribution.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/quadratic_forms/meson.build b/src/sage/quadratic_forms/meson.build index 34491d3c7ef..6bea48efb61 100644 --- a/src/sage/quadratic_forms/meson.build +++ b/src/sage/quadratic_forms/meson.build @@ -32,9 +32,9 @@ py.install_sources( ) extension_data = { - 'count_local_2': files('count_local_2.pyx'), - 'quadratic_form__evaluate': files('quadratic_form__evaluate.pyx'), - 'ternary': files('ternary.pyx'), + 'count_local_2' : files('count_local_2.pyx'), + 'quadratic_form__evaluate' : files('quadratic_form__evaluate.pyx'), + 'ternary' : files('ternary.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/quivers/meson.build b/src/sage/quivers/meson.build index 656f59c87dc..fafbc0adbb1 100644 --- a/src/sage/quivers/meson.build +++ b/src/sage/quivers/meson.build @@ -10,8 +10,8 @@ py.install_sources( ) extension_data = { - 'algebra_elements': files('algebra_elements.pyx'), - 'paths': files('paths.pyx'), + 'algebra_elements' : files('algebra_elements.pyx'), + 'paths' : files('paths.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/convert/meson.build b/src/sage/rings/convert/meson.build index 1d25da30b04..876847e6d39 100644 --- a/src/sage/rings/convert/meson.build +++ b/src/sage/rings/convert/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'mpfi.pxd', subdir : 'sage/rings/convert') extension_data = { - 'mpfi': files('mpfi.pyx'), + 'mpfi' : files('mpfi.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/finite_rings/meson.build b/src/sage/rings/finite_rings/meson.build index 1f6ec21b1ee..5ebc78d97fa 100644 --- a/src/sage/rings/finite_rings/meson.build +++ b/src/sage/rings/finite_rings/meson.build @@ -26,16 +26,16 @@ py.install_sources( ) extension_data = { - 'element_base': files('element_base.pyx'), - 'element_pari_ffelt': files('element_pari_ffelt.pyx'), - 'finite_field_base': files('finite_field_base.pyx'), - 'hom_finite_field': files('hom_finite_field.pyx'), - 'hom_prime_finite_field': files('hom_prime_finite_field.pyx'), - 'integer_mod': files('integer_mod.pyx'), - 'residue_field': files('residue_field.pyx'), - 'residue_field_givaro': files('residue_field_givaro.pyx'), - 'residue_field_ntl_gf2e': files('residue_field_ntl_gf2e.pyx'), - 'residue_field_pari_ffelt': files('residue_field_pari_ffelt.pyx'), + 'element_base' : files('element_base.pyx'), + 'element_pari_ffelt' : files('element_pari_ffelt.pyx'), + 'finite_field_base' : files('finite_field_base.pyx'), + 'hom_finite_field' : files('hom_finite_field.pyx'), + 'hom_prime_finite_field' : files('hom_prime_finite_field.pyx'), + 'integer_mod' : files('integer_mod.pyx'), + 'residue_field' : files('residue_field.pyx'), + 'residue_field_givaro' : files('residue_field_givaro.pyx'), + 'residue_field_ntl_gf2e' : files('residue_field_ntl_gf2e.pyx'), + 'residue_field_pari_ffelt' : files('residue_field_pari_ffelt.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/function_field/meson.build b/src/sage/rings/function_field/meson.build index 0a805390fcd..a5aad66955b 100644 --- a/src/sage/rings/function_field/meson.build +++ b/src/sage/rings/function_field/meson.build @@ -28,10 +28,10 @@ py.install_sources( ) extension_data = { - 'element': files('element.pyx'), - 'element_polymod': files('element_polymod.pyx'), - 'element_rational': files('element_rational.pyx'), - 'hermite_form_polynomial': files('hermite_form_polynomial.pyx'), + 'element' : files('element.pyx'), + 'element_polymod' : files('element_polymod.pyx'), + 'element_rational' : files('element_rational.pyx'), + 'hermite_form_polynomial' : files('hermite_form_polynomial.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 88f97458fbd..0b62b53d710 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -89,43 +89,43 @@ py.install_sources( ) extension_data = { - 'abc': files('abc.pyx'), - 'complex_arb': files('complex_arb.pyx'), - 'complex_conversion': files('complex_conversion.pyx'), - 'complex_double': files('complex_double.pyx'), - 'complex_interval': files('complex_interval.pyx'), - 'complex_mpc': files('complex_mpc.pyx'), - 'complex_mpfr': files('complex_mpfr.pyx'), - 'factorint': files('factorint.pyx'), - 'factorint_flint': files('factorint_flint.pyx'), - 'factorint_pari': files('factorint_pari.pyx'), - 'fast_arith': files('fast_arith.pyx'), - 'fraction_field_element': files('fraction_field_element.pyx'), - 'integer': files('integer.pyx'), - 'integer_ring': files('integer_ring.pyx'), - 'laurent_series_ring_element': files('laurent_series_ring_element.pyx'), - 'morphism': files('morphism.pyx'), - 'noncommutative_ideals': files('noncommutative_ideals.pyx'), - 'power_series_mpoly': files('power_series_mpoly.pyx'), - 'power_series_pari': files('power_series_pari.pyx'), - 'power_series_poly': files('power_series_poly.pyx'), - 'power_series_ring_element': files('power_series_ring_element.pyx'), - 'puiseux_series_ring_element': files('puiseux_series_ring_element.pyx'), - 'real_arb': files('real_arb.pyx'), - 'real_double': files('real_double.pyx'), - 'real_double_element_gsl': files('real_double_element_gsl.pyx'), - 'real_interval_absolute': files('real_interval_absolute.pyx'), - 'real_lazy': files('real_lazy.pyx'), - 'real_mpfi': files('real_mpfi.pyx'), - 'real_mpfr': files('real_mpfr.pyx'), - 'ring': files('ring.pyx'), - 'ring_extension': files('ring_extension.pyx'), - 'ring_extension_conversion': files('ring_extension_conversion.pyx'), - 'ring_extension_element': files('ring_extension_element.pyx'), - 'ring_extension_morphism': files('ring_extension_morphism.pyx'), - 'sum_of_squares': files('sum_of_squares.pyx'), - 'tate_algebra_element': files('tate_algebra_element.pyx'), - 'tate_algebra_ideal': files('tate_algebra_ideal.pyx'), + 'abc' : files('abc.pyx'), + 'complex_arb' : files('complex_arb.pyx'), + 'complex_conversion' : files('complex_conversion.pyx'), + 'complex_double' : files('complex_double.pyx'), + 'complex_interval' : files('complex_interval.pyx'), + 'complex_mpc' : files('complex_mpc.pyx'), + 'complex_mpfr' : files('complex_mpfr.pyx'), + 'factorint' : files('factorint.pyx'), + 'factorint_flint' : files('factorint_flint.pyx'), + 'factorint_pari' : files('factorint_pari.pyx'), + 'fast_arith' : files('fast_arith.pyx'), + 'fraction_field_element' : files('fraction_field_element.pyx'), + 'integer' : files('integer.pyx'), + 'integer_ring' : files('integer_ring.pyx'), + 'laurent_series_ring_element' : files('laurent_series_ring_element.pyx'), + 'morphism' : files('morphism.pyx'), + 'noncommutative_ideals' : files('noncommutative_ideals.pyx'), + 'power_series_mpoly' : files('power_series_mpoly.pyx'), + 'power_series_pari' : files('power_series_pari.pyx'), + 'power_series_poly' : files('power_series_poly.pyx'), + 'power_series_ring_element' : files('power_series_ring_element.pyx'), + 'puiseux_series_ring_element' : files('puiseux_series_ring_element.pyx'), + 'real_arb' : files('real_arb.pyx'), + 'real_double' : files('real_double.pyx'), + 'real_double_element_gsl' : files('real_double_element_gsl.pyx'), + 'real_interval_absolute' : files('real_interval_absolute.pyx'), + 'real_lazy' : files('real_lazy.pyx'), + 'real_mpfi' : files('real_mpfi.pyx'), + 'real_mpfr' : files('real_mpfr.pyx'), + 'ring' : files('ring.pyx'), + 'ring_extension' : files('ring_extension.pyx'), + 'ring_extension_conversion' : files('ring_extension_conversion.pyx'), + 'ring_extension_element' : files('ring_extension_element.pyx'), + 'ring_extension_morphism' : files('ring_extension_morphism.pyx'), + 'sum_of_squares' : files('sum_of_squares.pyx'), + 'tate_algebra_element' : files('tate_algebra_element.pyx'), + 'tate_algebra_ideal' : files('tate_algebra_ideal.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index c80ad347dd3..a417e2f2b0d 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -29,11 +29,11 @@ py.install_sources( ) extension_data = { - 'number_field_base': files('number_field_base.pyx'), - 'number_field_element_base': files('number_field_element_base.pyx'), - 'number_field_morphisms': files('number_field_morphisms.pyx'), - 'totallyreal': files('totallyreal.pyx'), - 'totallyreal_data': files('totallyreal_data.pyx'), + 'number_field_base' : files('number_field_base.pyx'), + 'number_field_element_base' : files('number_field_element_base.pyx'), + 'number_field_morphisms' : files('number_field_morphisms.pyx'), + 'totallyreal' : files('totallyreal.pyx'), + 'totallyreal_data' : files('totallyreal_data.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/padics/meson.build b/src/sage/rings/padics/meson.build index d381b35d529..39bc05164a2 100644 --- a/src/sage/rings/padics/meson.build +++ b/src/sage/rings/padics/meson.build @@ -50,24 +50,24 @@ py.install_sources( ) extension_data = { - 'common_conversion': files('common_conversion.pyx'), - 'local_generic_element': files('local_generic_element.pyx'), - 'morphism': files('morphism.pyx'), - 'padic_capped_absolute_element': files('padic_capped_absolute_element.pyx'), - 'padic_capped_relative_element': files('padic_capped_relative_element.pyx'), - 'padic_fixed_mod_element': files('padic_fixed_mod_element.pyx'), - 'padic_floating_point_element': files('padic_floating_point_element.pyx'), - 'padic_generic_element': files('padic_generic_element.pyx'), - 'padic_relaxed_element': files('padic_relaxed_element.pyx'), - 'padic_relaxed_errors': files('padic_relaxed_errors.pyx'), - 'qadic_flint_CA': files('qadic_flint_CA.pyx'), - 'qadic_flint_CR': files('qadic_flint_CR.pyx'), - 'qadic_flint_FM': files('qadic_flint_FM.pyx'), - 'qadic_flint_FP': files('qadic_flint_FP.pyx'), - 'relative_ramified_CA': files('relative_ramified_CA.pyx'), - 'relative_ramified_CR': files('relative_ramified_CR.pyx'), - 'relative_ramified_FM': files('relative_ramified_FM.pyx'), - 'relative_ramified_FP': files('relative_ramified_FP.pyx'), + 'common_conversion' : files('common_conversion.pyx'), + 'local_generic_element' : files('local_generic_element.pyx'), + 'morphism' : files('morphism.pyx'), + 'padic_capped_absolute_element' : files('padic_capped_absolute_element.pyx'), + 'padic_capped_relative_element' : files('padic_capped_relative_element.pyx'), + 'padic_fixed_mod_element' : files('padic_fixed_mod_element.pyx'), + 'padic_floating_point_element' : files('padic_floating_point_element.pyx'), + 'padic_generic_element' : files('padic_generic_element.pyx'), + 'padic_relaxed_element' : files('padic_relaxed_element.pyx'), + 'padic_relaxed_errors' : files('padic_relaxed_errors.pyx'), + 'qadic_flint_CA' : files('qadic_flint_CA.pyx'), + 'qadic_flint_CR' : files('qadic_flint_CR.pyx'), + 'qadic_flint_FM' : files('qadic_flint_FM.pyx'), + 'qadic_flint_FP' : files('qadic_flint_FP.pyx'), + 'relative_ramified_CA' : files('relative_ramified_CA.pyx'), + 'relative_ramified_CR' : files('relative_ramified_CR.pyx'), + 'relative_ramified_FM' : files('relative_ramified_FM.pyx'), + 'relative_ramified_FP' : files('relative_ramified_FP.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index 7b33a03d125..ff859284f88 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -67,28 +67,28 @@ py.install_sources( ) extension_data = { - 'commutative_polynomial': files('commutative_polynomial.pyx'), - 'cyclotomic': files('cyclotomic.pyx'), - 'evaluation_flint': files('evaluation_flint.pyx'), - 'hilbert': files('hilbert.pyx'), - 'laurent_polynomial': files('laurent_polynomial.pyx'), - 'laurent_polynomial_mpair': files('laurent_polynomial_mpair.pyx'), - 'multi_polynomial': files('multi_polynomial.pyx'), - 'multi_polynomial_ring_base': files('multi_polynomial_ring_base.pyx'), - 'ore_polynomial_element': files('ore_polynomial_element.pyx'), - 'polydict': files('polydict.pyx'), - 'polynomial_compiled': files('polynomial_compiled.pyx'), - 'polynomial_complex_arb': files('polynomial_complex_arb.pyx'), - 'polynomial_element': files('polynomial_element.pyx'), - 'polynomial_number_field': files('polynomial_number_field.pyx'), - 'polynomial_real_mpfr_dense': files('polynomial_real_mpfr_dense.pyx'), - 'polynomial_ring_homomorphism': files('polynomial_ring_homomorphism.pyx'), - 'real_roots': files('real_roots.pyx'), - 'refine_root': files('refine_root.pyx'), - 'skew_polynomial_element': files('skew_polynomial_element.pyx'), - 'skew_polynomial_finite_field': files('skew_polynomial_finite_field.pyx'), - 'skew_polynomial_finite_order': files('skew_polynomial_finite_order.pyx'), - 'symmetric_reduction': files('symmetric_reduction.pyx'), + 'commutative_polynomial' : files('commutative_polynomial.pyx'), + 'cyclotomic' : files('cyclotomic.pyx'), + 'evaluation_flint' : files('evaluation_flint.pyx'), + 'hilbert' : files('hilbert.pyx'), + 'laurent_polynomial' : files('laurent_polynomial.pyx'), + 'laurent_polynomial_mpair' : files('laurent_polynomial_mpair.pyx'), + 'multi_polynomial' : files('multi_polynomial.pyx'), + 'multi_polynomial_ring_base' : files('multi_polynomial_ring_base.pyx'), + 'ore_polynomial_element' : files('ore_polynomial_element.pyx'), + 'polydict' : files('polydict.pyx'), + 'polynomial_compiled' : files('polynomial_compiled.pyx'), + 'polynomial_complex_arb' : files('polynomial_complex_arb.pyx'), + 'polynomial_element' : files('polynomial_element.pyx'), + 'polynomial_number_field' : files('polynomial_number_field.pyx'), + 'polynomial_real_mpfr_dense' : files('polynomial_real_mpfr_dense.pyx'), + 'polynomial_ring_homomorphism' : files('polynomial_ring_homomorphism.pyx'), + 'real_roots' : files('real_roots.pyx'), + 'refine_root' : files('refine_root.pyx'), + 'skew_polynomial_element' : files('skew_polynomial_element.pyx'), + 'skew_polynomial_finite_field' : files('skew_polynomial_finite_field.pyx'), + 'skew_polynomial_finite_order' : files('skew_polynomial_finite_order.pyx'), + 'symmetric_reduction' : files('symmetric_reduction.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/polynomial/weil/meson.build b/src/sage/rings/polynomial/weil/meson.build index 289aa681bc8..d4b02bd2bd2 100644 --- a/src/sage/rings/polynomial/weil/meson.build +++ b/src/sage/rings/polynomial/weil/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'power_sums.h', subdir : 'sage/rings/polynomial/weil') extension_data = { - 'weil_polynomials': files('weil_polynomials.pyx'), + 'weil_polynomials' : files('weil_polynomials.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/rings/semirings/meson.build b/src/sage/rings/semirings/meson.build index 2aced319c9b..3a6b80b0301 100644 --- a/src/sage/rings/semirings/meson.build +++ b/src/sage/rings/semirings/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'non_negative_integer_semiring.py', subdir : 'sage/rings/semirings') extension_data = { - 'tropical_semiring': files('tropical_semiring.pyx'), + 'tropical_semiring' : files('tropical_semiring.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/sat/solvers/meson.build b/src/sage/sat/solvers/meson.build index cadccba7e34..4aa2927309b 100644 --- a/src/sage/sat/solvers/meson.build +++ b/src/sage/sat/solvers/meson.build @@ -8,7 +8,7 @@ py.install_sources( ) extension_data = { - 'satsolver': files('satsolver.pyx'), + 'satsolver' : files('satsolver.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/schemes/elliptic_curves/meson.build b/src/sage/schemes/elliptic_curves/meson.build index 44de6cba489..e74dd3cdd0b 100644 --- a/src/sage/schemes/elliptic_curves/meson.build +++ b/src/sage/schemes/elliptic_curves/meson.build @@ -53,9 +53,9 @@ py.install_sources( ) extension_data = { - 'descent_two_isogeny': files('descent_two_isogeny.pyx'), - 'mod_sym_num': files('mod_sym_num.pyx'), - 'period_lattice_region': files('period_lattice_region.pyx'), + 'descent_two_isogeny' : files('descent_two_isogeny.pyx'), + 'mod_sym_num' : files('mod_sym_num.pyx'), + 'period_lattice_region' : files('period_lattice_region.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/schemes/toric/meson.build b/src/sage/schemes/toric/meson.build index edd53dc00a2..f50c08f35fd 100644 --- a/src/sage/schemes/toric/meson.build +++ b/src/sage/schemes/toric/meson.build @@ -17,7 +17,7 @@ py.install_sources( ) extension_data = { - 'divisor_class': files('divisor_class.pyx'), + 'divisor_class' : files('divisor_class.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/sets/meson.build b/src/sage/sets/meson.build index 5473a4f2dae..8e05c9ac553 100644 --- a/src/sage/sets/meson.build +++ b/src/sage/sets/meson.build @@ -24,11 +24,11 @@ py.install_sources( ) extension_data = { - 'disjoint_set': files('disjoint_set.pyx'), - 'family': files('family.pyx'), - 'finite_set_map_cy': files('finite_set_map_cy.pyx'), - 'pythonclass': files('pythonclass.pyx'), - 'recursively_enumerated_set': files('recursively_enumerated_set.pyx'), + 'disjoint_set' : files('disjoint_set.pyx'), + 'family' : files('family.pyx'), + 'finite_set_map_cy' : files('finite_set_map_cy.pyx'), + 'pythonclass' : files('pythonclass.pyx'), + 'recursively_enumerated_set' : files('recursively_enumerated_set.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/stats/distributions/meson.build b/src/sage/stats/distributions/meson.build index ee946bae683..6b637f668e4 100644 --- a/src/sage/stats/distributions/meson.build +++ b/src/sage/stats/distributions/meson.build @@ -1,7 +1,7 @@ py.install_sources('all.py', 'discrete_gaussian_lattice.py', 'discrete_gaussian_polynomial.py', subdir : 'sage/stats/distributions') extension_data = { - 'discrete_gaussian_integer': files('discrete_gaussian_integer.pyx', 'dgs_gauss_mp.c', 'dgs_gauss_dp.c', 'dgs_bern.c'), + 'discrete_gaussian_integer' : files('discrete_gaussian_integer.pyx', 'dgs_gauss_mp.c', 'dgs_gauss_dp.c', 'dgs_bern.c') } foreach name, pyx : extension_data diff --git a/src/sage/stats/hmm/meson.build b/src/sage/stats/hmm/meson.build index f75f868ebbf..e6a60f57224 100644 --- a/src/sage/stats/hmm/meson.build +++ b/src/sage/stats/hmm/meson.build @@ -1,10 +1,10 @@ py.install_sources('all.py', subdir : 'sage/stats/hmm') extension_data = { - 'chmm': files('chmm.pyx'), - 'distributions': files('distributions.pyx'), - 'hmm': files('hmm.pyx'), - 'util': files('util.pyx'), + 'chmm' : files('chmm.pyx'), + 'distributions' : files('distributions.pyx'), + 'hmm' : files('hmm.pyx'), + 'util' : files('util.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/stats/meson.build b/src/sage/stats/meson.build index 6c1749f2a52..a0d8b8c3395 100644 --- a/src/sage/stats/meson.build +++ b/src/sage/stats/meson.build @@ -1,8 +1,8 @@ py.install_sources('all.py', 'basic_stats.py', 'r.py', subdir : 'sage/stats') extension_data = { - 'intlist': files('intlist.pyx'), - 'time_series': files('time_series.pyx'), + 'intlist' : files('intlist.pyx'), + 'time_series' : files('time_series.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index 84a585b48fd..f0eda1b2b59 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -38,25 +38,25 @@ py.install_sources( ) extension_data = { - 'category_object': files('category_object.pyx'), - 'coerce': files('coerce.pyx'), - 'coerce_actions': files('coerce_actions.pyx'), - 'coerce_dict': files('coerce_dict.pyx'), - 'coerce_maps': files('coerce_maps.pyx'), - 'debug_options': files('debug_options.pyx'), - 'element': files('element.pyx'), - 'element_wrapper': files('element_wrapper.pyx'), - 'factory': files('factory.pyx'), - 'list_clone': files('list_clone.pyx'), - 'list_clone_demo': files('list_clone_demo.pyx'), - 'list_clone_timings_cy': files('list_clone_timings_cy.pyx'), - 'mutability': files('mutability.pyx'), - 'parent': files('parent.pyx'), - 'parent_base': files('parent_base.pyx'), - 'parent_gens': files('parent_gens.pyx'), - 'parent_old': files('parent_old.pyx'), - 'richcmp': files('richcmp.pyx'), - 'sage_object': files('sage_object.pyx'), + 'category_object' : files('category_object.pyx'), + 'coerce' : files('coerce.pyx'), + 'coerce_actions' : files('coerce_actions.pyx'), + 'coerce_dict' : files('coerce_dict.pyx'), + 'coerce_maps' : files('coerce_maps.pyx'), + 'debug_options' : files('debug_options.pyx'), + 'element' : files('element.pyx'), + 'element_wrapper' : files('element_wrapper.pyx'), + 'factory' : files('factory.pyx'), + 'list_clone' : files('list_clone.pyx'), + 'list_clone_demo' : files('list_clone_demo.pyx'), + 'list_clone_timings_cy' : files('list_clone_timings_cy.pyx'), + 'mutability' : files('mutability.pyx'), + 'parent' : files('parent.pyx'), + 'parent_base' : files('parent_base.pyx'), + 'parent_gens' : files('parent_gens.pyx'), + 'parent_old' : files('parent_old.pyx'), + 'richcmp' : files('richcmp.pyx'), + 'sage_object' : files('sage_object.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/symbolic/meson.build b/src/sage/symbolic/meson.build index c188569acd0..a7216e0a57c 100644 --- a/src/sage/symbolic/meson.build +++ b/src/sage/symbolic/meson.build @@ -30,8 +30,8 @@ py.install_sources( ) extension_data = { - 'function': files('function.pyx'), - 'ring': files('ring.pyx'), + 'function' : files('function.pyx'), + 'ring' : files('ring.pyx') } foreach name, pyx : extension_data diff --git a/src/sage/tests/meson.build b/src/sage/tests/meson.build index 2892f5bb0fa..9f51f6b4713 100644 --- a/src/sage/tests/meson.build +++ b/src/sage/tests/meson.build @@ -24,7 +24,7 @@ py.install_sources( ) extension_data = { - 'cython': files('cython.pyx'), + 'cython' : files('cython.pyx') } foreach name, pyx : extension_data From bf0c7f7ab8dc9213c52ece689b3cad07af27d9d1 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 19 Feb 2024 14:29:01 +0000 Subject: [PATCH 132/161] Refactor matrix build dependencies and add meataxe dependency for matrix_gfpn_dense --- src/sage/matrix/meson.build | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index a6e1e0c902e..7c0e0d89707 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -1,20 +1,14 @@ # Cannot be found via pkg-config -meataxe = declare_dependency( - dependencies: [ - cc.find_library('meataxe', required: false), - ] -) -iml = declare_dependency( - dependencies: [ - cc.find_library('iml'), - ] -) +meataxe = cc.find_library('meataxe', required: false, disabler : true) +iml = cc.find_library('iml') +if meataxe.found() + py.install_sources('all__sagemath_meataxe.py') +endif py.install_sources( '__init__.py', 'all.py', - 'all__sagemath_meataxe.py', 'benchmark.py', 'berlekamp_massey.py', 'compute_J_ideal.py', @@ -66,12 +60,17 @@ extension_data = { } foreach name, pyx : extension_data + dependencies = [py_dep, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib] + if name == 'matrix_gfpn_dense' + dependencies += [meataxe] + endif + py.extension_module(name, sources: pyx, subdir: 'sage/matrix', install: true, include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib], + dependencies: dependencies, ) endforeach From 57b8a9ece58cd9ae6256521f1ac9beeb89cf1e5c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 22 Feb 2024 14:08:14 +0000 Subject: [PATCH 133/161] Try to fix doctest on macos --- src/sage/structure/meson.build | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index f0eda1b2b59..0f63c480aa2 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -60,12 +60,23 @@ extension_data = { } foreach name, pyx : extension_data + if name == 'element' + # Compile this with -Os because it works around a bug with + # GCC-4.7.3 + Cython 0.19 on Itanium, see Issue #14452. Moreover, it + # actually results in faster code than -O3. + # It's also needed to generate proper OverflowError (see Issue 2956) + extra_cflags = ['-Os'] + else + extra_cflags = [] + endif + py.extension_module(name, sources: pyx, subdir: 'sage/structure', install: true, include_directories: [inc_cpython, inc_ext, inc_rings], dependencies: [py_dep, cysignals, gmp, gmpy2, mpc, mpfr], + c_args: extra_cflags, ) endforeach From b578c7751884ea774b5e72fc813e87da3b9c4395 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Thu, 22 Feb 2024 15:01:22 +0000 Subject: [PATCH 134/161] Update library dependencies handling in meson.build files --- src/sage/graphs/graph_decompositions/meson.build | 6 +----- src/sage/graphs/meson.build | 7 ++----- src/sage/libs/giac/meson.build | 6 +----- src/sage/libs/meson.build | 6 +----- src/sage/libs/symmetrica/meson.build | 6 +----- src/sage/rings/meson.build | 6 +----- src/sage/rings/polynomial/pbori/meson.build | 6 +----- 7 files changed, 8 insertions(+), 35 deletions(-) diff --git a/src/sage/graphs/graph_decompositions/meson.build b/src/sage/graphs/graph_decompositions/meson.build index 2687e439ed1..69d4085b920 100644 --- a/src/sage/graphs/graph_decompositions/meson.build +++ b/src/sage/graphs/graph_decompositions/meson.build @@ -1,10 +1,6 @@ tdlib = cc.find_library('tdlib', required: false) # Cannot be found via pkg-config -rw = declare_dependency( - dependencies: [ - cc.find_library('rw'), - ] -) +rw = cc.find_library('rw') py.install_sources( 'all.py', diff --git a/src/sage/graphs/meson.build b/src/sage/graphs/meson.build index 4eeff52a511..7cca4b0fc2f 100644 --- a/src/sage/graphs/meson.build +++ b/src/sage/graphs/meson.build @@ -3,11 +3,8 @@ mcqd = cc.find_library('mcqd', required: false) cliquer = cc.find_library('cliquer') # Cannot be found via pkg-config -planarity = declare_dependency( - dependencies: [ - cc.find_library('planarity'), - ] -) +planarity = cc.find_library('planarity') + py.install_sources( 'all.py', 'all__sagemath_bliss.py', diff --git a/src/sage/libs/giac/meson.build b/src/sage/libs/giac/meson.build index 6e0638ededf..623bd2984a5 100644 --- a/src/sage/libs/giac/meson.build +++ b/src/sage/libs/giac/meson.build @@ -1,8 +1,4 @@ -giac = declare_dependency( - dependencies: [ - cc.find_library('giac', required: false), - ] -) +giac = cc.find_library('giac', required: false) py.install_sources('__init__.py', 'giac.pxd', 'misc.h', subdir : 'sage/libs/giac') diff --git a/src/sage/libs/meson.build b/src/sage/libs/meson.build index 55f6e6caef5..5c6b3efcc15 100644 --- a/src/sage/libs/meson.build +++ b/src/sage/libs/meson.build @@ -1,8 +1,4 @@ -sirocco = declare_dependency( - dependencies: [ - cc.find_library('sirocco', required: false), - ] -) +sirocco = cc.find_library('sirocco', required: false) # cannot be found via pkg-config ecl = cc.find_library('ecl') diff --git a/src/sage/libs/symmetrica/meson.build b/src/sage/libs/symmetrica/meson.build index 7ad39e95ad2..c9bcc51885d 100644 --- a/src/sage/libs/symmetrica/meson.build +++ b/src/sage/libs/symmetrica/meson.build @@ -1,9 +1,5 @@ # Cannot be found by pkg-config -symmetrica = declare_dependency( - dependencies: [ - cc.find_library('symmetrica'), - ] -) +symmetrica = cc.find_library('symmetrica') py.install_sources('__init__.py', 'all.py', subdir : 'sage/libs/symmetrica') diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 0b62b53d710..3146d4ddaf4 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -1,8 +1,4 @@ -pthread = declare_dependency( - dependencies: [ - cc.find_library('pthread'), - ] -) +pthread = cc.find_library('pthread') py.install_sources( '__init__.py', diff --git a/src/sage/rings/polynomial/pbori/meson.build b/src/sage/rings/polynomial/pbori/meson.build index dd562bfbb72..ce2d3d82af4 100644 --- a/src/sage/rings/polynomial/pbori/meson.build +++ b/src/sage/rings/polynomial/pbori/meson.build @@ -1,8 +1,4 @@ -brial = declare_dependency( - dependencies: [ - cc.find_library('brial', required: false), - ] -) +brial = cc.find_library('brial', required: false) # Cannot be found via pkg-config brial_groebner = cc.find_library('brial_groebner') From d2c85209a8c45e31d9d89c124767a66ec4ec8f40 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 23 Feb 2024 09:44:15 +0000 Subject: [PATCH 135/161] Revert "Try to fix doctest on macos" This reverts commit 57b8a9ece58cd9ae6256521f1ac9beeb89cf1e5c. --- src/sage/structure/meson.build | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/sage/structure/meson.build b/src/sage/structure/meson.build index 0f63c480aa2..f0eda1b2b59 100644 --- a/src/sage/structure/meson.build +++ b/src/sage/structure/meson.build @@ -60,23 +60,12 @@ extension_data = { } foreach name, pyx : extension_data - if name == 'element' - # Compile this with -Os because it works around a bug with - # GCC-4.7.3 + Cython 0.19 on Itanium, see Issue #14452. Moreover, it - # actually results in faster code than -O3. - # It's also needed to generate proper OverflowError (see Issue 2956) - extra_cflags = ['-Os'] - else - extra_cflags = [] - endif - py.extension_module(name, sources: pyx, subdir: 'sage/structure', install: true, include_directories: [inc_cpython, inc_ext, inc_rings], dependencies: [py_dep, cysignals, gmp, gmpy2, mpc, mpfr], - c_args: extra_cflags, ) endforeach From f538e1ab6dc621a134b6dd5aaaf4e8769d84a6f1 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 23 Feb 2024 09:48:36 +0000 Subject: [PATCH 136/161] Fix exponent overflow bug in RingElement class --- src/sage/structure/element.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/structure/element.pyx b/src/sage/structure/element.pyx index 078647717a3..7f40782ebbf 100644 --- a/src/sage/structure/element.pyx +++ b/src/sage/structure/element.pyx @@ -2700,7 +2700,7 @@ cdef class RingElement(ModuleElement): Exponent overflow should throw an :class:`OverflowError` (:trac:`2956`):: sage: K. = AA[] # needs sage.rings.number_field - sage: x^(2^64 + 12345) # needs sage.rings.number_field + sage: x^(2^64 + 12345) # known bug: macos # needs sage.rings.number_field Traceback (most recent call last): ... OverflowError: exponent overflow (2147483648) From 71396c25407e46cb547ba782cdb6db6ee67bbc94 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 23 Feb 2024 12:45:48 +0000 Subject: [PATCH 137/161] Improve handling of dependencies --- src/meson.build | 33 +++++++++-- src/sage/libs/lcalc/meson.build | 9 ++- src/sage/libs/linbox/meson.build | 2 +- src/sage/matrix/meson.build | 4 +- subprojects/.gitignore | 4 ++ subprojects/flint-cmake.wrap | 6 ++ subprojects/flint/meson.build | 15 +++++ subprojects/lcalc.wrap | 7 +++ subprojects/packagefiles/lcalc/meson.build | 24 ++++++++ .../lcalc/src/libLfunction/lcalc/meson.build | 6 ++ .../lcalc/src/libLfunction/meson.build | 57 +++++++++++++++++++ .../packagefiles/lcalc/src/meson.build | 18 ++++++ 12 files changed, 175 insertions(+), 10 deletions(-) create mode 100644 subprojects/.gitignore create mode 100644 subprojects/flint-cmake.wrap create mode 100644 subprojects/flint/meson.build create mode 100644 subprojects/lcalc.wrap create mode 100644 subprojects/packagefiles/lcalc/meson.build create mode 100644 subprojects/packagefiles/lcalc/src/libLfunction/lcalc/meson.build create mode 100644 subprojects/packagefiles/lcalc/src/libLfunction/meson.build create mode 100644 subprojects/packagefiles/lcalc/src/meson.build diff --git a/src/meson.build b/src/meson.build index 9881f0f4b6d..9dbab81ca37 100644 --- a/src/meson.build +++ b/src/meson.build @@ -60,10 +60,28 @@ pari = cc.find_library('pari') mpfr = cc.find_library('mpfr') -# Cannot be found by pkg-config -flint = cc.find_library('flint') +# Once https://github.com/mesonbuild/meson/pull/12616 is released, we can simply do the following: +# flint = dependency('flint', version : '>=3.0.0') +flint = dependency('flint', version : '>=3.0.0', required: false, allow_fallback: false) +if not flint.found() + flint = subproject('flint').get_variable('flint_dep') +else + # Currently the flint pkg-config file is broken, so we manually use find_library + # Can be removed once we require a version of flint that ships https://github.com/flintlib/flint/pull/1647 + flint = cc.find_library('flint') +endif -cblas = dependency('cblas') +blas_order = [] +if host_machine.system() == 'darwin' +blas_order += 'accelerate' +endif +if host_machine.cpu_family() == 'x86_64' +blas_order += 'mkl' +endif +# pkg-config uses a lower-case name while CMake uses a capitalized name, so try +# that too to make the fallback detection with CMake work +blas_order += ['cblas', 'openblas', 'OpenBLAS', 'flexiblas', 'blis', 'blas'] +blas = dependency(blas_order) gsl = dependency('gsl', fallback: ['gsl', 'gsl_dep'], version : '>=2.5', required: true) gd = cc.find_library('gd') iml = cc.find_library('iml') @@ -83,10 +101,13 @@ glpk = cc.find_library('glpk') ppl = cc.find_library('ppl') gmpxx = cc.find_library('gmpxx') readline = cc.find_library('readline') -lfunction = cc.find_library('Lfunction', required: false) -fflas = cc.find_library('fflas') +fflas = dependency(['fflas-ffpack']) +fplll = dependency('fplll') givaro = cc.find_library('givaro') -linbox = cc.find_library('linbox') +linbox = dependency('linbox', required: false) +if not linbox.found() + linbox = cc.find_library('linbox') +endif braiding = cc.find_library('braiding') gc = cc.find_library('gc') homfly = cc.find_library('homfly') diff --git a/src/sage/libs/lcalc/meson.build b/src/sage/libs/lcalc/meson.build index ee7287fe08e..11c2f1e264f 100644 --- a/src/sage/libs/lcalc/meson.build +++ b/src/sage/libs/lcalc/meson.build @@ -1,3 +1,10 @@ +# Once https://github.com/mesonbuild/meson/pull/12616 is released, we can simply do the following: +# lcalc = dependency('lcalc', version: '>= 2.0.0') +lcalc = dependency('lcalc', version: '>= 2.0.0', required: false, allow_fallback: false) +if not lcalc.found() + lcalc = subproject('lcalc').get_variable('lcalc_dep') +endif + py.install_sources('__init__.py', 'lcalc_Lfunction.pxd', 'lcalc_sage.h', subdir : 'sage/libs/lcalc') extension_data_cpp = { @@ -11,7 +18,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_cpython, inc_rings], - dependencies: [py_dep, cypari2, cysignals, gmp, lfunction, m, mpfr, ntl], + dependencies: [py_dep, cypari2, cysignals, gmp, lcalc, m, mpfr, ntl], ) endforeach diff --git a/src/sage/libs/linbox/meson.build b/src/sage/libs/linbox/meson.build index 9f26f94d40e..70633ced83e 100644 --- a/src/sage/libs/linbox/meson.build +++ b/src/sage/libs/linbox/meson.build @@ -19,7 +19,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_flint], - dependencies: [py_dep, cblas, flint, givaro, gmp, gmpxx, linbox], + dependencies: [py_dep, blas, flint, fplll, givaro, gmp, gmpxx, linbox], ) endforeach diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index 7c0e0d89707..18a51f2f28b 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -60,7 +60,7 @@ extension_data = { } foreach name, pyx : extension_data - dependencies = [py_dep, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib] + dependencies = [py_dep, blas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, zlib] if name == 'matrix_gfpn_dense' dependencies += [meataxe] endif @@ -94,7 +94,7 @@ foreach name, pyx : extension_data_cpp install: true, override_options : ['cython_language=cpp'], include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], - dependencies: [py_dep, cblas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, singular, zlib], + dependencies: [py_dep, blas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, singular, zlib], ) endforeach diff --git a/subprojects/.gitignore b/subprojects/.gitignore new file mode 100644 index 00000000000..2df6742f4a3 --- /dev/null +++ b/subprojects/.gitignore @@ -0,0 +1,4 @@ +packagecache + +flint-*/ +lcalc-*/ diff --git a/subprojects/flint-cmake.wrap b/subprojects/flint-cmake.wrap new file mode 100644 index 00000000000..5e4329083a2 --- /dev/null +++ b/subprojects/flint-cmake.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory=flint-3.0.1 +source_url=https://github.com/flintlib/flint/releases/download/v3.0.1/flint-3.0.1.tar.gz +source_filename=flint-3.0.1.tar.gz +source_hash=7b311a00503a863881eb8177dbeb84322f29399f3d7d72f3b1a4c9ba1d5794b4 + diff --git a/subprojects/flint/meson.build b/subprojects/flint/meson.build new file mode 100644 index 00000000000..7a5493fd6b5 --- /dev/null +++ b/subprojects/flint/meson.build @@ -0,0 +1,15 @@ +# Thin wrapper around the CMake project +# Once https://github.com/mesonbuild/meson/issues/10298 is fixed, we can remove this file and set "method=cmake" in flint.wrap + +project('flint', 'cpp', version : '3.0.1') + +cmake = import('cmake') + +subproj_flint = cmake.subproject('flint-cmake') + +py = import('python') +# Copy all src/.h files from the subproject to the build directory +# We cannot use meson's fs module due to sandboxing +run_command(py.find_installation('python3'), '-c', 'import shutil; shutil.copytree("' + meson.current_source_dir() + '/../flint-3.0.1/src", "' + meson.current_build_dir() + '/../flint-3.0.1/flint", dirs_exist_ok=True)', check: true) +flint_dep = subproj_flint.dependency('flint') +meson.override_dependency('flint', flint_dep) diff --git a/subprojects/lcalc.wrap b/subprojects/lcalc.wrap new file mode 100644 index 00000000000..8e3bf899e8f --- /dev/null +++ b/subprojects/lcalc.wrap @@ -0,0 +1,7 @@ +[wrap-file] +directory = lcalc-2.0.5 +source_url = https://gitlab.com/sagemath/lcalc/uploads/25f029f3c02fcb6c3174972e0ac0e192/lcalc-2.0.5.tar.xz +source_filename = lcalc-2.0.5.tar.xz +source_hash = d780c385579cc6ee45fa27ccd2d3a3c4157fbb5ef8cd1b8951d1028bbc64c035 +patch_directory = lcalc + diff --git a/subprojects/packagefiles/lcalc/meson.build b/subprojects/packagefiles/lcalc/meson.build new file mode 100644 index 00000000000..e9c77680281 --- /dev/null +++ b/subprojects/packagefiles/lcalc/meson.build @@ -0,0 +1,24 @@ +project('lcalc', 'cpp', version : '2.0.5') + +cc = meson.get_compiler('cpp') + +# Check for all of the standard headers that we use +required_headers = ['getopt.h', 'limits.h', 'math.h', 'stdlib.h', 'string.h'] +foreach header : required_headers + cc.has_header(header, required : true) +endforeach + +# Check for GNU gengetopt +gengetopt = find_program('gengetopt', required : true) + +# Check for the mkstemp function +# We invoke mkstemp() through m4 in tests/lib/compare_fp_lists.sh. +# We already check for the necessary stdlib.h above. +cc.has_function('mkstemp', required : true) + +# TODO: add options for openmp, pari and precision as in https://gitlab.com/sagemath/lcalc/-/blob/master/configure.ac +# add_project_arguments('openmp args', language : 'cpp') + +#subdir('doc') +subdir('src') +#subdir('tests') diff --git a/subprojects/packagefiles/lcalc/src/libLfunction/lcalc/meson.build b/subprojects/packagefiles/lcalc/src/libLfunction/lcalc/meson.build new file mode 100644 index 00000000000..e390ffd87cb --- /dev/null +++ b/subprojects/packagefiles/lcalc/src/libLfunction/lcalc/meson.build @@ -0,0 +1,6 @@ +# Workaround for https://github.com/mesonbuild/meson/issues/2546 +fs = import('fs') +headers_copy = [] +foreach header : headers + headers_copy += fs.copyfile(header) +endforeach diff --git a/subprojects/packagefiles/lcalc/src/libLfunction/meson.build b/subprojects/packagefiles/lcalc/src/libLfunction/meson.build new file mode 100644 index 00000000000..45b44d124d7 --- /dev/null +++ b/subprojects/packagefiles/lcalc/src/libLfunction/meson.build @@ -0,0 +1,57 @@ +headers = files( + 'L.h', + 'Lcomplex.h', + 'Ldokchitser.h', + 'Lexplicit_formula.h', + 'Lgamma.h', + 'Lgram.h', + 'Lnumbertheory.h', + 'Lprint.h', + 'Lriemannsiegel_blfi.h', + 'Lcommon.h', + 'Ldirichlet_series.h', + 'Lelliptic.h', + 'Lfind_zeros.h', + 'Lglobals.h', + 'Lmisc.h', + 'Lnumberzeros.h', + 'Lriemannsiegel.h', + 'Lvalue.h' +) + config_h +install_headers(headers, subdir : 'lcalc') +subdir('lcalc') + +# TODO: if PRECISION_MULTIPLE +# pkginclude_HEADERS += mpreal.h Lmpreal.h +# endif + +sources = [ + 'Ldokchitser.cc', + 'Lelliptic.cc', + 'Lgamma.cc', + 'Lglobals.cc', + 'Lmisc.cc', + 'Lnumbertheory.cc', + 'Lriemannsiegel.cc' +] + +flags = [ + '-version-info 1:1:0', + # The -no-undefined flag is required to create a Windows DLL, because + # that platform does not support shared libraries with undefined + # symbols in them. libLfunction, however, does not rely on undefined + # symbols in the first place. So, we append the flag unconditionally. + '-no-undefined' +] + +lfunction = shared_library('Lfunction', sources, + #link_args : flags, # TODO: Implement? Remove? + include_directories : include_directories('.'), + dependencies : [config_h_dep], + install : true +) +lcalc_dep = declare_dependency( + link_with : lfunction, + include_directories: include_directories('.'), + sources : headers_copy +) diff --git a/subprojects/packagefiles/lcalc/src/meson.build b/subprojects/packagefiles/lcalc/src/meson.build new file mode 100644 index 00000000000..1d7362aa7b2 --- /dev/null +++ b/subprojects/packagefiles/lcalc/src/meson.build @@ -0,0 +1,18 @@ +conf = configuration_data() +conf.set('PRECISION_DOUBLE', 1) # TODO: add more precision options +# TODO: add more data? + +# Store this in "src" as opposed to "src/libLfunction" because +# doing the latter causes the other files in src/libLfunction +# to prefer the source-tree version of config.h from the dist +# tarball over the one in the build-tree that the user generates. +config_h = configure_file( + output : 'config.h', + configuration : conf, + install_dir : get_option('includedir'), + install : true) +config_h_dep = declare_dependency( + include_directories : include_directories('.')) + +subdir('libLfunction') +#subdir('lcalc') From e509b118a5048189d3868ffd1cf7204efedc56ba Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 27 Feb 2024 14:38:34 +0000 Subject: [PATCH 138/161] Add script for updating Python sources and extension data in meson build files --- generate-meson.py | 198 ------------------------------------------ tools/update-meson.py | 127 +++++++++++++++++++++++++++ 2 files changed, 127 insertions(+), 198 deletions(-) delete mode 100644 generate-meson.py create mode 100644 tools/update-meson.py diff --git a/generate-meson.py b/generate-meson.py deleted file mode 100644 index 1bcb7fc3871..00000000000 --- a/generate-meson.py +++ /dev/null @@ -1,198 +0,0 @@ -# Small script that generates a meson.build file in the given folder. -# The generated build file contains all python files as `install_sources` and all cython files as `extension_module` - -import argparse -import sys -from pathlib import Path -from types import SimpleNamespace - -parser = argparse.ArgumentParser(description='Generate meson.build file for a given folder.') -parser.add_argument('folder', type=str, nargs='?', default='.', - help='folder for which the meson.build file will be generated') -parser.add_argument('--dry-run', '-n', action='store_true', - help='do not write any files, just print the output') -parser.add_argument('--force', '-f', action='store_true', - help='overwrite existing meson.build file') - -args = parser.parse_args() - -def run(folder: Path): - dry_run = args.dry_run - force = args.force - - if not folder.is_dir(): - print(f'Error: {folder} is not a directory') - return - folder_rel_to_src = folder.relative_to('src') - - python_files = sorted(list(folder.glob('*.py')) + list(folder.glob('*.pxd')) + list(folder.glob('*.h'))) - cython_files = sorted(list(folder.glob('*.pyx'))) - - - if not python_files and not cython_files: - print(f'Error: {folder} does not contain any python or cython files') - return - - def get_metadata(path: Path): - with open(path, 'r') as file: - metadata = SimpleNamespace() - metadata.path = path - metadata.libraries = [] - for line in file: - if line.startswith('# distutils: libraries ='): - libraries = line.split('libraries =')[1].strip().split() - libraries = [ - library - .replace('ARB_LIBRARY', 'arb') - .replace('NTL_LIBRARIES', 'ntl') - .replace('SINGULAR_LIBRARIES', 'singular') - .replace('LINBOX_LIBRARIES', 'linbox') - .replace('FFLASFFPACK_LIBRARIES', 'fflas') - .replace('GSL_LIBRARIES', 'gsl') - .replace('M4RI_LIBRARIES', 'm4ri') - .replace('GDLIB_LIBRARIES', 'gd') - .replace('LIBPNG_LIBRARIES', 'png') - .replace('CBLAS_LIBRARIES', 'cblas') - .replace('ZLIB_LIBRARIES', 'zlib') - .replace('Lfunction', 'lfunction') - for library in libraries] - try: - libraries.remove('CYGWIN_SQLITE3_LIBS') - except ValueError: - pass - metadata.libraries += libraries - - metadata.inc_dirs = [] - c_file = path.with_suffix('.c') - cpp_file = path.with_suffix('.cpp') - if cpp_file.exists(): - metadata.is_cpp = True - c_file = cpp_file - else: - metadata.is_cpp = False - if c_file.exists(): - metadata.not_yet_on_conda = False - with open(c_file, 'r') as c_file: - contents = c_file.read() - known_inc_dirs = { - 'sage/cpython/': 'inc_cpython', - 'sage/rings': 'inc_rings', - 'sage/rings/finite_rings': 'inc_rings_finite', - 'sage/libs/flint': 'inc_flint', - 'sage/libs/gsl': 'inc_gsl', - 'sage/libs/ntl': 'inc_ntl', - 'sage/libs/arb': 'inc_arb', - 'sage/data_structures': 'inc_data_structures', - 'sage/ext/': 'inc_ext', - 'numpy/core/include/': 'inc_numpy', - 'sage/symbolic/ginac/': 'inc_ginac', - 'sage/symbolic/pynac_wrap.h': 'inc_pynac', - 'sage/groups/perm_gps/partn_ref2/': 'inc_partn_ref2', - 'sage/ext/interpreters/': 'inc_interpreters', - } - for known_inc_dir in known_inc_dirs: - if known_inc_dir in contents: - metadata.inc_dirs.append(known_inc_dirs[known_inc_dir]) - known_libs = { - 'cypari2/': 'cypari2', - 'cysignals/': 'cysignals', - '/gmp.h': 'gmp', - '/iml.h': 'iml', - '/m4ri/': 'm4ri', - '/pari/': 'pari', - '/flint/': 'flint', - '/fflas-ffpack/': 'fflas', - '/givaro/': 'givaro', - '/gmp++/': 'gmpxx', - '/linbox/': 'linbox', - '/gsl/': 'gsl', - 'mpfr.h': 'mpfr', - 'sage/symbolic/ginac/': 'ginac', - 'arb.h': 'arb', - 'mpfi.h': 'mpfi', - 'mpc.h': 'mpc', - 'gmpy2/': 'gmpy2', - } - for known_lib in known_libs: - if known_lib in contents: - metadata.libraries.append(known_libs[known_lib]) - else: - metadata.not_yet_on_conda = metadata.is_cpp is False - - return metadata - - cython_files = [get_metadata(file) for file in cython_files] - cython_c_files = [file for file in cython_files if not file.is_cpp] - cython_cpp_files = [file for file in cython_files if file.is_cpp] - all_libraries = sorted(set(library for file in cython_files for library in file.libraries) | {'gmp'}) - all_inc_dirs = sorted(set(inc_dir for file in cython_files for inc_dir in file.inc_dirs)) - subdirs = sorted(list(folder.glob('*/'))) - - meson_build_path = folder / 'meson.build' - if not dry_run and not force and meson_build_path.exists(): - print(f'Error: {meson_build_path} already exists, use --force to overwrite') - return - - with open(meson_build_path, 'w') if not dry_run else sys.stdout as meson_build: - meson_build.write('py.install_sources(\n') - for file in python_files: - meson_build.write(f" '{file.name}',\n") - meson_build.write(f" subdir: '{folder_rel_to_src}',\n") - meson_build.write(')\n') - - if cython_c_files: - meson_build.write('\n') - meson_build.write('extension_data = {\n') - for file in cython_c_files: - if file.not_yet_on_conda: - meson_build.write(f" # '{file.path.stem}': files('{file.path.name}'), # not yet on conda\n") - else: - meson_build.write(f" '{file.path.stem}': files('{file.path.name}'),\n") - meson_build.write('}\n\n') - - meson_build.write('foreach name, pyx : extension_data\n') - meson_build.write(" py.extension_module(name,\n") - meson_build.write(" sources: pyx,\n") - meson_build.write(f" subdir: '{folder_rel_to_src}',\n") - meson_build.write(' install: true,\n') - meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") - meson_build.write(f" dependencies: [py_dep{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") - meson_build.write(' )\n') - meson_build.write('endforeach\n') - - if cython_cpp_files: - meson_build.write('\n') - meson_build.write('extension_data_cpp = {\n') - for file in cython_cpp_files: - if file.not_yet_on_conda: - meson_build.write(f" # '{file.path.stem}': files('{file.path.name}'), # not yet on conda\n") - else: - meson_build.write(f" '{file.path.stem}': files('{file.path.name}'),\n") - meson_build.write('}\n\n') - - meson_build.write('foreach name, pyx : extension_data_cpp\n') - meson_build.write(" py.extension_module(name,\n") - meson_build.write(" sources: pyx,\n") - meson_build.write(f" subdir: '{folder_rel_to_src}',\n") - meson_build.write(' install: true,\n') - meson_build.write(' override_options : [\'cython_language=cpp\'],\n') - meson_build.write(f" include_directories: [{', '.join(all_inc_dirs)}],\n") - meson_build.write(f" dependencies: [py_dep{', ' if all_libraries else ''}{', '.join(all_libraries)}],\n") - meson_build.write(' )\n') - meson_build.write('endforeach\n') - - meson_build.write('\n') - for subdir in subdirs: - if subdir.name.startswith('_') or subdir.name.startswith('.'): - continue - if not list(subdir.glob('*.py*')): - continue - - if not list(subdir.glob('*.pyx')): - meson_build.write(f"install_subdir('{subdir.name}', install_dir: sage_install_dir / '{folder_rel_to_src.relative_to('sage')}')\n") - else: - meson_build.write(f"subdir('{subdir.name}')\n") - run(subdir) - -folder = Path(args.folder) -run(folder) diff --git a/tools/update-meson.py b/tools/update-meson.py new file mode 100644 index 00000000000..49578007804 --- /dev/null +++ b/tools/update-meson.py @@ -0,0 +1,127 @@ +import argparse +from pathlib import Path + +from mesonbuild.ast import AstVisitor +from mesonbuild.ast.interpreter import MethodNode +from mesonbuild.mparser import AssignmentNode, BaseNode, DictNode, SymbolNode +from mesonbuild.rewriter import ( + ArgumentNode, + ArrayNode, + BaseStringNode, + FunctionNode, + Rewriter, + StringNode, + Token, +) + +# Get target directory from command line arguments +parser = argparse.ArgumentParser() +parser.add_argument("sourcedir", help="Source directory") +options = parser.parse_args() + + +class AstPython(AstVisitor): + install_sources_calls: list[MethodNode] = [] + extension_data: list[AssignmentNode] = [] + + def visit_MethodNode(self, node: MethodNode) -> None: + if node.name.value == "install_sources": + self.install_sources_calls += [node] + return super().visit_MethodNode(node) + + def visit_AssignmentNode(self, node: AssignmentNode) -> None: + if node.var_name.value in ["extension_data", "extension_data_cpp"]: + self.extension_data += [node] + return super().visit_AssignmentNode(node) + + +# Utility function to get a list of the sources from a node +def arg_list_from_node(n): + args = [] + if isinstance(n, FunctionNode) or isinstance(n, MethodNode): + args = list(n.args.arguments) + # if 'func_name' in n and n.func_name.value in BUILD_TARGET_FUNCTIONS: + # args.pop(0) + elif isinstance(n, ArrayNode): + args = n.args.arguments + elif isinstance(n, ArgumentNode): + args = n.arguments + return args + +def _symbol(val: str) -> SymbolNode: + return SymbolNode(Token('', '', 0, 0, 0, (0, 0), val)) + + +def add_python_sources(self: Rewriter, visitor: AstPython): + for target in visitor.install_sources_calls: + # Generate the current source list + src_list: list[str] = [] + for arg in arg_list_from_node(target): + if isinstance(arg, BaseStringNode): + src_list += [arg.value] + + folder = Path(target.filename).parent + python_files = sorted( + list(folder.glob("*.py")) + ) # + list(folder.glob('*.pxd')) + list(folder.glob('*.h'))) + + to_append: list[StringNode] = [] + for file in python_files: + file_name = file.name + if file_name == "__init__.py": + # We don't want to add __init__.py files + continue + if file_name in src_list: + continue + token = Token("string", target.filename, 0, 0, 0, None, file_name) + to_append += [StringNode(token)] + + # Append to the AST at the right place + target.args.arguments = sorted( + target.args.arguments + to_append, key=lambda x: x.value + ) + + # Mark the node as modified + if target not in self.modified_nodes: + self.modified_nodes += [target] + + ext_data: dict[Path, list[str]] = {} + for target in visitor.extension_data: + folder = Path(target.filename).parent + # Generate the current source dict + src_list: dict[str, BaseNode] = {} + if isinstance(target.value, DictNode): + src_list.update({k.value: v for k, v in target.value.args.kwargs.items()}) + ext_data.setdefault(folder, []) + ext_data[folder] += src_list.keys() + + for target in visitor.extension_data: + if target.var_name.value != "extension_data": + continue + folder = Path(target.filename).parent + src_list = ext_data[folder] + + cython_files = sorted(list(folder.glob("*.pyx"))) + for file in cython_files: + file_name = file.stem + if file_name in src_list: + continue + token = Token("string", target.filename, 0, 0, 0, None, file_name) + arg = ArgumentNode(Token("", target.filename, 0, 0, 0, None, "[]")) + arg.append( + StringNode(Token("string", target.filename, 0, 0, 0, None, file.name)) + ) + func = FunctionNode(_symbol("files"), _symbol("("), arg, _symbol(")")) + target.value.args.kwargs.update({StringNode(token): func}) + if target not in self.modified_nodes: + self.modified_nodes += [target] + + +Rewriter.process_add_python_sources = add_python_sources +rewriter = Rewriter(options.sourcedir) +visitor = AstPython() +rewriter.interpreter.visitors += [visitor] +rewriter.analyze_meson() +rewriter.process_add_python_sources(visitor) +rewriter.apply_changes() +rewriter.print_info() From 62bf19f4c174b66552c82209b220ff43eb8e3969 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 27 Feb 2024 15:20:18 +0000 Subject: [PATCH 139/161] Remove unnecessary code for finding include path for Cython modules --- src/meson.build | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/meson.build b/src/meson.build index 9dbab81ca37..0c80bcc0ece 100644 --- a/src/meson.build +++ b/src/meson.build @@ -124,20 +124,6 @@ maxima = find_program('maxima', required: true) # Cannot be found via pkg-config ntl = cc.find_library('ntl', required: true) -# It's strange but cython cannot find its own include files -# so we find them ourselves, and add them to the include path -inc_cython = run_command(py, - [ - '-c', - ''' -import Cython -print(Cython.__file__.replace('__init__.py', '')) - '''.strip() - ], - check: true - ).stdout().strip() -add_project_arguments('-I', inc_cython + 'Includes', language : 'cython') - # Meson currently ignores include_directories for Cython modules, so we # have to add them manually. # https://github.com/mesonbuild/meson/issues/9562 From 5e7a899097269c15d6d5022d105eba06262dcfae Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 27 Feb 2024 15:33:09 +0000 Subject: [PATCH 140/161] Improve code for generating interpreters --- .github/workflows/ci-meson.yml | 6 --- src/doc/en/installation/meson.rst | 6 --- src/sage/ext/interpreters/__init__.py | 1 - src/sage/ext/interpreters/meson.build | 30 ------------ src/sage/ext/meson.build | 68 +++++++++++++++++++++------ 5 files changed, 54 insertions(+), 57 deletions(-) delete mode 100644 src/sage/ext/interpreters/__init__.py delete mode 100644 src/sage/ext/interpreters/meson.build diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index 279fc9d1365..d3235fa9d64 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -66,12 +66,6 @@ jobs: conda info conda list - - name: Bootstrap - shell: bash -l {0} - run: python -m sage_setup.autogen.interpreters src/sage/ext/interpreters - env: - PYTHONPATH: src - - name: Build shell: bash -l {0} run: | diff --git a/src/doc/en/installation/meson.rst b/src/doc/en/installation/meson.rst index d2179bf8fe2..d48e9403231 100644 --- a/src/doc/en/installation/meson.rst +++ b/src/doc/en/installation/meson.rst @@ -27,12 +27,6 @@ Alternatively, install all build requirements as described in section ``rm src/**/*.so`` or ``for f in src/**/*.so ; do mv "$f" "$f.old"; done``. Also uninstall the 'old' sage packages with ``pip uninstall sage-conf sage-setup sagemath-standard``. -Generate a few files that are needed for the build process:: - - ```bash - python -m sage_setup.autogen.interpreters src/sage/ext/interpreters - ``` - To compile and install the project in editable install, just use:: ```bash diff --git a/src/sage/ext/interpreters/__init__.py b/src/sage/ext/interpreters/__init__.py deleted file mode 100644 index 1b10e244496..00000000000 --- a/src/sage/ext/interpreters/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# Here so that cython creates the correct module name diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build deleted file mode 100644 index 3dc6a9e3064..00000000000 --- a/src/sage/ext/interpreters/meson.build +++ /dev/null @@ -1,30 +0,0 @@ -py.install_sources( - 'all.py', - 'wrapper_cc.pxd', - 'wrapper_cdf.pxd', - 'wrapper_el.pxd', - 'wrapper_py.pxd', - 'wrapper_rdf.pxd', - 'wrapper_rr.pxd', - subdir : 'sage/ext/interpreters' -) - -extension_data = { - 'wrapper_cc' : files('wrapper_cc.pyx'), - 'wrapper_cdf' : files('wrapper_cdf.pyx'), - 'wrapper_el' : files('wrapper_el.pyx'), - 'wrapper_py' : files('wrapper_py.pyx'), - 'wrapper_rdf' : files('wrapper_rdf.pyx'), - 'wrapper_rr' : files('wrapper_rr.pyx') -} - -foreach name, pyx : extension_data - py.extension_module(name, - sources: pyx, - subdir: 'sage/ext/interpreters', - install: true, - include_directories: [inc_cpython, inc_ext, inc_interpreters, inc_rings, inc_src], - dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari, interpreters_dep], - ) -endforeach - diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index fdeecdc9318..53aa479c12d 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -30,45 +30,85 @@ endforeach interpreters = custom_target( 'sage.ext.interpreters', - output: 'all.py', + output: [ + 'all.py', + 'wrapper_cc.pxd', + 'wrapper_cdf.pxd', + 'wrapper_el.pxd', + 'wrapper_py.pxd', + 'wrapper_rdf.pxd', + 'wrapper_rr.pxd', + 'wrapper_cc.pyx', + 'wrapper_cdf.pyx', + 'wrapper_el.pyx', + 'wrapper_py.pyx', + 'wrapper_rdf.pyx', + 'wrapper_rr.pyx', + ], input: '../../sage_setup/autogen/interpreters/__init__.py', - command: [py, '-m', 'sage_setup.autogen.interpreters', meson.current_source_dir() / 'interpreters'], - # This is actually against the Meson philosophy, which does not like in-source builds. - # So normally you would do something like the following - # however, this we currently cannot pass the generated files as sources to install_sources - # properly fixing this is left for a follow-up - # command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], + command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], env: ['PYTHONPATH=' + meson.current_source_dir() / '..' / '..'], + # Manually install the generated files instead of using install_sources + # this is a workaround for https://github.com/mesonbuild/meson/issues/7372 + install: true, + install_dir: py.get_install_dir() / 'sage/ext/interpreters', + install_tag: 'python-runtime', ) -# Manually create header files, which otherwise is not found +# Use this once https://github.com/mesonbuild/meson/issues/7372 is fixed +#foreach file : interpreters.to_list() +# py.install_sources( +# file.full_path(), +# subdir : 'sage/ext/interpreters' +# ) +#endforeach + +extension_data = { + 'wrapper_cc' : interpreters[7], + 'wrapper_cdf' : interpreters[8], + 'wrapper_el' : interpreters[9], + 'wrapper_py' : interpreters[10], + 'wrapper_rdf' : interpreters[11], + 'wrapper_rr' : interpreters[12], +} + +# Manually create header files, which otherwise are not found wrapper_el_header = custom_target( 'wrapper_el.h', output : 'wrapper_el.h', - input : ['interpreters/wrapper_el.pyx', interpreters], + input : [interpreters[9], interpreters], command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) wrapper_cc_header = custom_target( 'wrapper_cc.h', output : 'wrapper_cc.h', - input : ['interpreters/wrapper_cc.pyx', interpreters], + input : [interpreters[7], interpreters], command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) wrapper_cdf_header = custom_target( 'wrapper_cdf.h', output : 'wrapper_cdf.h', - input : ['interpreters/wrapper_cdf.pyx', interpreters], + input : [interpreters[8], interpreters], command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) wrapper_rr_header = custom_target( 'wrapper_rr.h', output : 'wrapper_rr.h', - input : ['interpreters/wrapper_rr.pyx', interpreters], + input : [interpreters[12], interpreters], command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], ) interpreters_dep = declare_dependency( - sources: [interpreters, wrapper_el_header, wrapper_cc_header, wrapper_cdf_header, wrapper_rr_header], + sources: [wrapper_el_header, wrapper_cc_header, wrapper_cdf_header, wrapper_rr_header], ) -subdir('interpreters') + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/ext/interpreters', + install: true, + include_directories: [inc_cpython, inc_ext, inc_interpreters, inc_rings, inc_src], + dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari, interpreters_dep], + ) +endforeach From d129c03d605d1301d30db2ec5ad8a124d1db819f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 27 Feb 2024 15:36:40 +0000 Subject: [PATCH 141/161] Update CI workflow to use lock environment file --- .github/workflows/ci-meson.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index d3235fa9d64..ff810052bf5 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -34,9 +34,6 @@ jobs: env: GH_TOKEN: ${{ github.token }} - - name: Create conda environment files - run: ./bootstrap-conda - - name: Cache conda packages uses: actions/cache@v3 with: @@ -58,7 +55,7 @@ jobs: channels: conda-forge channel-priority: true activate-environment: sage - environment-file: src/environment-${{ matrix.python }}.yml + environment-file: src/environment-${{ matrix.python }}-${{ startsWith(matrix.os, 'macos') && 'macos' || 'linux' }}.yml - name: Print Conda environment shell: bash -l {0} From 434225cd8c9e8e183598008fb61cb9cb191cc0c3 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Tue, 27 Feb 2024 15:37:05 +0000 Subject: [PATCH 142/161] Remove unnecessary arb include directory in meson.build files --- grayskull | 1 + meson | 1 + src/sage/libs/arb/meson.build | 2 +- src/sage/matrix/meson.build | 4 ++-- src/sage/rings/meson.build | 4 ++-- src/sage/rings/number_field/meson.build | 4 ++-- src/sage/rings/polynomial/meson.build | 4 ++-- 7 files changed, 11 insertions(+), 9 deletions(-) create mode 160000 grayskull create mode 160000 meson diff --git a/grayskull b/grayskull new file mode 160000 index 00000000000..5e74f1daa33 --- /dev/null +++ b/grayskull @@ -0,0 +1 @@ +Subproject commit 5e74f1daa33168642351563f5d73110e09dbd689 diff --git a/meson b/meson new file mode 160000 index 00000000000..5fdf7d7d8ca --- /dev/null +++ b/meson @@ -0,0 +1 @@ +Subproject commit 5fdf7d7d8caebb66f96f515c954182015caad492 diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index 36da5a1cc6c..8c6f0375b33 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -28,7 +28,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/libs/arb', install: true, - include_directories: [inc_arb, inc_cpython, inc_flint, inc_rings], + include_directories: [inc_cpython, inc_flint, inc_rings], dependencies: [py_dep, flint, gmp, mpfr], ) endforeach diff --git a/src/sage/matrix/meson.build b/src/sage/matrix/meson.build index 18a51f2f28b..311ba17592b 100644 --- a/src/sage/matrix/meson.build +++ b/src/sage/matrix/meson.build @@ -69,7 +69,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/matrix', install: true, - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], dependencies: dependencies, ) endforeach @@ -93,7 +93,7 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/matrix', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], dependencies: [py_dep, blas, cypari2, cysignals, fflas, flint, gd, givaro, gmp, gmpxx, iml, linbox, m, m4ri, m4rie, mpfi, mpfr, mtx, ntl, pari, png, singular, zlib], ) endforeach diff --git a/src/sage/rings/meson.build b/src/sage/rings/meson.build index 3146d4ddaf4..114007def84 100644 --- a/src/sage/rings/meson.build +++ b/src/sage/rings/meson.build @@ -129,7 +129,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings', install: true, - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], dependencies: [py_dep, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], ) endforeach @@ -148,7 +148,7 @@ foreach name, pyx : extension_data_cpp install: true, cpp_args: ['-DUSE_THREADS=1','-DTHREAD_STACK_SIZE=4096'], override_options : ['cython_language=cpp'], - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_gsl, inc_ntl, inc_rings, inc_rings_finite], dependencies: [py_dep, cypari2, cysignals, flint, gmp, gmpy2, gsl, m, mpc, mpfi, mpfr, ntl, pari, pthread], ) endforeach diff --git a/src/sage/rings/number_field/meson.build b/src/sage/rings/number_field/meson.build index a417e2f2b0d..f233e51632c 100644 --- a/src/sage/rings/number_field/meson.build +++ b/src/sage/rings/number_field/meson.build @@ -41,7 +41,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/number_field', install: true, - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], dependencies: [py_dep, cypari2, cysignals, flint, gmp, mpfi, mpfr, ntl], ) endforeach @@ -57,7 +57,7 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/rings/number_field', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_rings], dependencies: [py_dep, cypari2, cysignals, flint, gmp, mpfi, mpfr, ntl], ) endforeach diff --git a/src/sage/rings/polynomial/meson.build b/src/sage/rings/polynomial/meson.build index ff859284f88..381a76642d9 100644 --- a/src/sage/rings/polynomial/meson.build +++ b/src/sage/rings/polynomial/meson.build @@ -96,7 +96,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/rings/polynomial', install: true, - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], dependencies: [py_dep, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari], ) endforeach @@ -121,7 +121,7 @@ foreach name, pyx : extension_data_cpp subdir: 'sage/rings/polynomial', install: true, override_options : ['cython_language=cpp'], - include_directories: [inc_arb, inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], + include_directories: [inc_cpython, inc_ext, inc_flint, inc_ntl, inc_numpy, inc_rings, inc_rings_finite], dependencies: [py_dep, cypari2, cysignals, flint, givaro, gmp, mpfi, mpfr, ntl, pari, singular], ) endforeach From 3fbe6a332acc8367d1e04fbde4555949128ebb1d Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Wed, 28 Feb 2024 08:15:19 +0000 Subject: [PATCH 143/161] add meson to conda lock file --- src/environment-3.10-linux.yml | 12 +++++++----- src/environment-3.10-macos.yml | 10 ++++++---- src/environment-3.11-linux.yml | 12 +++++++----- src/environment-3.11-macos.yml | 10 ++++++---- src/environment-3.9-linux.yml | 12 +++++++----- src/environment-3.9-macos.yml | 10 ++++++---- 6 files changed, 39 insertions(+), 27 deletions(-) diff --git a/src/environment-3.10-linux.yml b/src/environment-3.10-linux.yml index 201bf1c8492..5251be1d9a5 100644 --- a/src/environment-3.10-linux.yml +++ b/src/environment-3.10-linux.yml @@ -361,10 +361,11 @@ dependencies: - libxkbcommon=1.6.0=h5d7e998_0 - matplotlib-inline=0.1.6=pyhd8ed1ab_0 - memory-allocator=0.1.3=py310h2372a71_0 - - overrides=7.4.0=pyhd8ed1ab_0 - - pexpect=4.8.0=pyh1a96a4e_2 - - pillow=10.1.0=py310h01dd4db_0 - - pip=23.3.2=pyhd8ed1ab_0 + - meson=1.3.2=pyhd8ed1ab_0 + - overrides=7.7.0=pyhd8ed1ab_0 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pillow=10.2.0=py310h01dd4db_0 + - pip=24.0=pyhd8ed1ab_0 - pplpy=0.8.9=py310h28f6eb6_0 - primecountpy=0.1.0=py310hd41b1e2_4 - prompt-toolkit=3.0.42=pyha770c72_0 @@ -400,7 +401,8 @@ dependencies: - jsonschema-specifications=2023.11.2=pyhd8ed1ab_0 - jupyter_server_terminals=0.5.0=pyhd8ed1ab_0 - liblapacke=3.9.0=20_linux64_openblas - - numpy=1.26.2=py310hb13e2d6_0 + - meson-python=0.15.0=pyh0c530f3_0 + - numpy=1.26.4=py310hb13e2d6_0 - prompt_toolkit=3.0.42=hd8ed1ab_0 - pyqt5-sip=12.12.2=py310hc6cd4ac_5 - requests=2.31.0=pyhd8ed1ab_0 diff --git a/src/environment-3.10-macos.yml b/src/environment-3.10-macos.yml index ba31dab449e..41e79e3abb6 100644 --- a/src/environment-3.10-macos.yml +++ b/src/environment-3.10-macos.yml @@ -299,9 +299,10 @@ dependencies: - liblapack=3.9.0=20_osx64_openblas - matplotlib-inline=0.1.6=pyhd8ed1ab_0 - memory-allocator=0.1.3=py310h6729b98_0 - - overrides=7.4.0=pyhd8ed1ab_0 - - pexpect=4.8.0=pyh1a96a4e_2 - - pip=23.3.2=pyhd8ed1ab_0 + - meson=1.3.2=pyhd8ed1ab_0 + - overrides=7.7.0=pyhd8ed1ab_0 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pip=24.0=pyhd8ed1ab_0 - pplpy=0.8.9=py310hd89f7aa_0 - primecountpy=0.1.0=py310h88cfcbd_4 - prompt-toolkit=3.0.42=pyha770c72_0 @@ -333,7 +334,8 @@ dependencies: - jsonschema-specifications=2023.11.2=pyhd8ed1ab_0 - jupyter_server_terminals=0.5.0=pyhd8ed1ab_0 - liblapacke=3.9.0=20_osx64_openblas - - numpy=1.26.2=py310h2a7ecf2_0 + - meson-python=0.15.0=pyh0c530f3_0 + - numpy=1.26.4=py310h4bfa8fc_0 - pango=1.50.14=h19c1c8a_2 - prompt_toolkit=3.0.42=hd8ed1ab_0 - pyobjc-framework-cocoa=10.1=py310h3674b6a_0 diff --git a/src/environment-3.11-linux.yml b/src/environment-3.11-linux.yml index 8439b8e51db..a5ce24f1437 100644 --- a/src/environment-3.11-linux.yml +++ b/src/environment-3.11-linux.yml @@ -360,10 +360,11 @@ dependencies: - libxkbcommon=1.6.0=h5d7e998_0 - matplotlib-inline=0.1.6=pyhd8ed1ab_0 - memory-allocator=0.1.3=py311h459d7ec_0 - - overrides=7.4.0=pyhd8ed1ab_0 - - pexpect=4.8.0=pyh1a96a4e_2 - - pillow=10.1.0=py311ha6c5da5_0 - - pip=23.3.2=pyhd8ed1ab_0 + - meson=1.3.2=pyhd8ed1ab_0 + - overrides=7.7.0=pyhd8ed1ab_0 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pillow=10.2.0=py311ha6c5da5_0 + - pip=24.0=pyhd8ed1ab_0 - pplpy=0.8.9=py311h85abca9_0 - primecountpy=0.1.0=py311h9547e67_4 - prompt-toolkit=3.0.42=pyha770c72_0 @@ -399,7 +400,8 @@ dependencies: - jsonschema-specifications=2023.11.2=pyhd8ed1ab_0 - jupyter_server_terminals=0.5.0=pyhd8ed1ab_0 - liblapacke=3.9.0=20_linux64_openblas - - numpy=1.26.2=py311h64a7726_0 + - meson-python=0.15.0=pyh0c530f3_0 + - numpy=1.26.4=py311h64a7726_0 - prompt_toolkit=3.0.42=hd8ed1ab_0 - pyqt5-sip=12.12.2=py311hb755f60_5 - requests=2.31.0=pyhd8ed1ab_0 diff --git a/src/environment-3.11-macos.yml b/src/environment-3.11-macos.yml index 86acb5faf05..379761c6a34 100644 --- a/src/environment-3.11-macos.yml +++ b/src/environment-3.11-macos.yml @@ -298,9 +298,10 @@ dependencies: - liblapack=3.9.0=20_osx64_openblas - matplotlib-inline=0.1.6=pyhd8ed1ab_0 - memory-allocator=0.1.3=py311h2725bcf_0 - - overrides=7.4.0=pyhd8ed1ab_0 - - pexpect=4.8.0=pyh1a96a4e_2 - - pip=23.3.2=pyhd8ed1ab_0 + - meson=1.3.2=pyhd8ed1ab_0 + - overrides=7.7.0=pyhd8ed1ab_0 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pip=24.0=pyhd8ed1ab_0 - pplpy=0.8.9=py311h7355a2a_0 - primecountpy=0.1.0=py311h5fe6e05_4 - prompt-toolkit=3.0.42=pyha770c72_0 @@ -332,7 +333,8 @@ dependencies: - jsonschema-specifications=2023.11.2=pyhd8ed1ab_0 - jupyter_server_terminals=0.5.0=pyhd8ed1ab_0 - liblapacke=3.9.0=20_osx64_openblas - - numpy=1.26.2=py311h93c810c_0 + - meson-python=0.15.0=pyh0c530f3_0 + - numpy=1.26.4=py311hc43a94b_0 - pango=1.50.14=h19c1c8a_2 - prompt_toolkit=3.0.42=hd8ed1ab_0 - pyobjc-framework-cocoa=10.1=py311h9b70068_0 diff --git a/src/environment-3.9-linux.yml b/src/environment-3.9-linux.yml index 70d7997cd8a..bb1994af9d3 100644 --- a/src/environment-3.9-linux.yml +++ b/src/environment-3.9-linux.yml @@ -361,10 +361,11 @@ dependencies: - libxkbcommon=1.6.0=h5d7e998_0 - matplotlib-inline=0.1.6=pyhd8ed1ab_0 - memory-allocator=0.1.3=py39hd1e30aa_0 - - overrides=7.4.0=pyhd8ed1ab_0 - - pexpect=4.8.0=pyh1a96a4e_2 - - pillow=10.1.0=py39had0adad_0 - - pip=23.3.2=pyhd8ed1ab_0 + - meson=1.3.2=pyhd8ed1ab_0 + - overrides=7.7.0=pyhd8ed1ab_0 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pillow=10.2.0=py39had0adad_0 + - pip=24.0=pyhd8ed1ab_0 - pplpy=0.8.9=py39hba3e9e5_0 - primecountpy=0.1.0=py39h7633fee_4 - prompt-toolkit=3.0.42=pyha770c72_0 @@ -400,7 +401,8 @@ dependencies: - jsonschema-specifications=2023.11.2=pyhd8ed1ab_0 - jupyter_server_terminals=0.5.0=pyhd8ed1ab_0 - liblapacke=3.9.0=20_linux64_openblas - - numpy=1.26.2=py39h474f0d3_0 + - meson-python=0.15.0=pyh0c530f3_0 + - numpy=1.26.4=py39h474f0d3_0 - prompt_toolkit=3.0.42=hd8ed1ab_0 - pyqt5-sip=12.12.2=py39h3d6467e_5 - requests=2.31.0=pyhd8ed1ab_0 diff --git a/src/environment-3.9-macos.yml b/src/environment-3.9-macos.yml index c924d013cbc..04874958b09 100644 --- a/src/environment-3.9-macos.yml +++ b/src/environment-3.9-macos.yml @@ -299,9 +299,10 @@ dependencies: - liblapack=3.9.0=20_osx64_openblas - matplotlib-inline=0.1.6=pyhd8ed1ab_0 - memory-allocator=0.1.3=py39hdc70f33_0 - - overrides=7.4.0=pyhd8ed1ab_0 - - pexpect=4.8.0=pyh1a96a4e_2 - - pip=23.3.2=pyhd8ed1ab_0 + - meson=1.3.2=pyhd8ed1ab_0 + - overrides=7.7.0=pyhd8ed1ab_0 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pip=24.0=pyhd8ed1ab_0 - pplpy=0.8.9=py39h248ee18_0 - primecountpy=0.1.0=py39h8ee36c8_4 - prompt-toolkit=3.0.42=pyha770c72_0 @@ -333,7 +334,8 @@ dependencies: - jsonschema-specifications=2023.11.2=pyhd8ed1ab_0 - jupyter_server_terminals=0.5.0=pyhd8ed1ab_0 - liblapacke=3.9.0=20_osx64_openblas - - numpy=1.26.2=py39h14c6d2e_0 + - meson-python=0.15.0=pyh0c530f3_0 + - numpy=1.26.4=py39h28c39a1_0 - pango=1.50.14=h19c1c8a_2 - prompt_toolkit=3.0.42=hd8ed1ab_0 - pyobjc-framework-cocoa=10.1=py39h8602b6b_0 From 8d1acf87a8caee6c70d9709694cf2945b55ddeb6 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Wed, 28 Feb 2024 08:46:04 +0000 Subject: [PATCH 144/161] Remove unnecessary interpreters include_directories in meson.build files --- src/meson.build | 1 - src/sage/ext/meson.build | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/meson.build b/src/meson.build index 0c80bcc0ece..2e7fded9954 100644 --- a/src/meson.build +++ b/src/meson.build @@ -152,7 +152,6 @@ inc_ntl = include_directories('sage/libs/ntl') inc_arb = include_directories('sage/libs/arb') inc_data_structures = include_directories('sage/data_structures') inc_ext = include_directories('sage/ext') -inc_interpreters = include_directories('sage/ext/interpreters') inc_partn_ref2 = include_directories('sage/groups/perm_gps/partn_ref2') inc_src = include_directories('.') diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index 53aa479c12d..5824afb5ab7 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -108,7 +108,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/ext/interpreters', install: true, - include_directories: [inc_cpython, inc_ext, inc_interpreters, inc_rings, inc_src], + include_directories: [inc_cpython, inc_ext, inc_rings, inc_src], dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari, interpreters_dep], ) endforeach From e4353083434c70c103e0f8c9fcbb3b2556148a2c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Wed, 28 Feb 2024 09:10:23 +0000 Subject: [PATCH 145/161] Fix compilation (arb) --- src/sage/libs/arb/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/libs/arb/meson.build b/src/sage/libs/arb/meson.build index 8c6f0375b33..375b45f673c 100644 --- a/src/sage/libs/arb/meson.build +++ b/src/sage/libs/arb/meson.build @@ -19,7 +19,6 @@ py.install_sources( ) extension_data = { - 'arb_version' : files('arb_version.pyx'), 'arith' : files('arith.pyx') } From c83cc2feaf98764c0b5d9f3360a3343047f05e13 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Wed, 28 Feb 2024 09:57:09 +0000 Subject: [PATCH 146/161] try to fix interpreter build --- src/sage/calculus/meson.build | 2 +- src/sage/ext/interpreters/meson.build | 85 +++++++++++++++++++ src/sage/ext/meson.build | 85 +------------------ src/sage/meson.build | 2 +- .../autogen/interpreters/__init__.py | 10 +-- 5 files changed, 92 insertions(+), 92 deletions(-) create mode 100644 src/sage/ext/interpreters/meson.build diff --git a/src/sage/calculus/meson.build b/src/sage/calculus/meson.build index 54b02a8b899..60ade235702 100644 --- a/src/sage/calculus/meson.build +++ b/src/sage/calculus/meson.build @@ -28,7 +28,7 @@ foreach name, pyx : extension_data subdir: 'sage/calculus', install: true, include_directories: [inc_ext, inc_numpy], - dependencies: [py_dep, cysignals, gmp, gsl], + dependencies: [py_dep, cysignals, gmp, gsl, interpreters_dep], ) endforeach diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build new file mode 100644 index 00000000000..68d87afef6f --- /dev/null +++ b/src/sage/ext/interpreters/meson.build @@ -0,0 +1,85 @@ + +interpreters = custom_target( + 'sage.ext.interpreters', + output: [ + 'all.py', + 'wrapper_cc.pxd', + 'wrapper_cdf.pxd', + 'wrapper_el.pxd', + 'wrapper_py.pxd', + 'wrapper_rdf.pxd', + 'wrapper_rr.pxd', + 'wrapper_cc.pyx', + 'wrapper_cdf.pyx', + 'wrapper_el.pyx', + 'wrapper_py.pyx', + 'wrapper_rdf.pyx', + 'wrapper_rr.pyx', + ], + input: '../../../sage_setup/autogen/interpreters/__init__.py', + command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], + env: ['PYTHONPATH=' + meson.current_source_dir() / '..' / '..' / '..'], + # Manually install the generated files instead of using install_sources + # this is a workaround for https://github.com/mesonbuild/meson/issues/7372 + install: true, + install_dir: py.get_install_dir() / 'sage/ext/interpreters', + install_tag: 'python-runtime', +) + +# Use this once https://github.com/mesonbuild/meson/issues/7372 is fixed +#foreach file : interpreters.to_list() +# py.install_sources( +# file.full_path(), +# subdir : 'sage/ext/interpreters' +# ) +#endforeach + +extension_data = { + 'wrapper_cc' : interpreters[7], + 'wrapper_cdf' : interpreters[8], + 'wrapper_el' : interpreters[9], + 'wrapper_py' : interpreters[10], + 'wrapper_rdf' : interpreters[11], + 'wrapper_rr' : interpreters[12], +} + +# Manually create header files, which otherwise are not found +wrapper_el_header = custom_target( + 'wrapper_el.h', + output : 'wrapper_el.h', + input : [interpreters[9], interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) +wrapper_cc_header = custom_target( + 'wrapper_cc.h', + output : 'wrapper_cc.h', + input : [interpreters[7], interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) +wrapper_cdf_header = custom_target( + 'wrapper_cdf.h', + output : 'wrapper_cdf.h', + input : [interpreters[8], interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) +wrapper_rr_header = custom_target( + 'wrapper_rr.h', + output : 'wrapper_rr.h', + input : [interpreters[12], interpreters], + command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../../')], +) + +interpreters_dep = declare_dependency( + sources: [wrapper_el_header, wrapper_cc_header, wrapper_cdf_header, wrapper_rr_header], +) + + +foreach name, pyx : extension_data + py.extension_module(name, + sources: pyx, + subdir: 'sage/ext/interpreters', + install: true, + include_directories: [inc_cpython, inc_ext, inc_rings, inc_src], + dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari, interpreters_dep], + ) +endforeach diff --git a/src/sage/ext/meson.build b/src/sage/ext/meson.build index 5824afb5ab7..7cacc1367d8 100644 --- a/src/sage/ext/meson.build +++ b/src/sage/ext/meson.build @@ -28,87 +28,4 @@ foreach name, pyx : extension_data ) endforeach -interpreters = custom_target( - 'sage.ext.interpreters', - output: [ - 'all.py', - 'wrapper_cc.pxd', - 'wrapper_cdf.pxd', - 'wrapper_el.pxd', - 'wrapper_py.pxd', - 'wrapper_rdf.pxd', - 'wrapper_rr.pxd', - 'wrapper_cc.pyx', - 'wrapper_cdf.pyx', - 'wrapper_el.pyx', - 'wrapper_py.pyx', - 'wrapper_rdf.pyx', - 'wrapper_rr.pyx', - ], - input: '../../sage_setup/autogen/interpreters/__init__.py', - command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], - env: ['PYTHONPATH=' + meson.current_source_dir() / '..' / '..'], - # Manually install the generated files instead of using install_sources - # this is a workaround for https://github.com/mesonbuild/meson/issues/7372 - install: true, - install_dir: py.get_install_dir() / 'sage/ext/interpreters', - install_tag: 'python-runtime', -) - -# Use this once https://github.com/mesonbuild/meson/issues/7372 is fixed -#foreach file : interpreters.to_list() -# py.install_sources( -# file.full_path(), -# subdir : 'sage/ext/interpreters' -# ) -#endforeach - -extension_data = { - 'wrapper_cc' : interpreters[7], - 'wrapper_cdf' : interpreters[8], - 'wrapper_el' : interpreters[9], - 'wrapper_py' : interpreters[10], - 'wrapper_rdf' : interpreters[11], - 'wrapper_rr' : interpreters[12], -} - -# Manually create header files, which otherwise are not found -wrapper_el_header = custom_target( - 'wrapper_el.h', - output : 'wrapper_el.h', - input : [interpreters[9], interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], -) -wrapper_cc_header = custom_target( - 'wrapper_cc.h', - output : 'wrapper_cc.h', - input : [interpreters[7], interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], -) -wrapper_cdf_header = custom_target( - 'wrapper_cdf.h', - output : 'wrapper_cdf.h', - input : [interpreters[8], interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], -) -wrapper_rr_header = custom_target( - 'wrapper_rr.h', - output : 'wrapper_rr.h', - input : [interpreters[12], interpreters], - command : [cython.cmd_array(), '@INPUT0@', '-o', '@OUTPUT@', '-I', join_paths(meson.current_source_dir(), '../../')], -) - -interpreters_dep = declare_dependency( - sources: [wrapper_el_header, wrapper_cc_header, wrapper_cdf_header, wrapper_rr_header], -) - - -foreach name, pyx : extension_data - py.extension_module(name, - sources: pyx, - subdir: 'sage/ext/interpreters', - install: true, - include_directories: [inc_cpython, inc_ext, inc_rings, inc_src], - dependencies: [py_dep, cypari2, cysignals, gmp, gsl, mpc, mpfr, pari, interpreters_dep], - ) -endforeach +subdir('interpreters') diff --git a/src/sage/meson.build b/src/sage/meson.build index d505ccfecdf..267223db51e 100644 --- a/src/sage/meson.build +++ b/src/sage/meson.build @@ -97,13 +97,13 @@ subdir('misc') subdir('structure') subdir('algebras') subdir('arith') +subdir('ext') subdir('calculus') subdir('categories') subdir('coding') subdir('combinat') subdir('crypto') subdir('data_structures') -subdir('ext') subdir('functions') subdir('games') subdir('geometry') diff --git a/src/sage_setup/autogen/interpreters/__init__.py b/src/sage_setup/autogen/interpreters/__init__.py index 87dae60bce7..ed4b0c52238 100644 --- a/src/sage_setup/autogen/interpreters/__init__.py +++ b/src/sage_setup/autogen/interpreters/__init__.py @@ -109,20 +109,18 @@ # that will have to be changed. ##################################################################### -from __future__ import print_function, absolute_import +from __future__ import absolute_import, print_function import os - from os.path import getmtime -from .generator import InterpreterGenerator, AUTOGEN_WARN +from .generator import AUTOGEN_WARN, InterpreterGenerator from .instructions import * from .memory import * from .specs.base import * from .storage import * from .utils import * - # Tuple of (filename_root, extension, method) where filename_root is the # root of the filename to be joined with "_".ext and # method is the name of a get_ method on InterpreterGenerator that returns @@ -197,7 +195,7 @@ def rebuild(dirname, force=False, interpreters=None, distribution=None): sage: testdir = tmp_dir() sage: rebuild(testdir, interpreters=['Element', 'Python'], ....: distribution='sagemath-categories') - Building interpreters for fast_callable + Generating interpreters for fast_callable in ... -> First build of interpreters sage: with open(testdir + '/all__sagemath_categories.py') as f: ....: f.readline() @@ -205,7 +203,7 @@ def rebuild(dirname, force=False, interpreters=None, distribution=None): """ # This line will show up in "sage -b" (once per upgrade, not every time # you run it). - print("Building interpreters for fast_callable") + print(f"Generating interpreters for fast_callable in {dirname}") if interpreters is None: interpreters = ['CDF', 'Element', 'Python', 'RDF', 'RR', 'CC'] From a1e41c1dd526a1c826b7839cad831b3a0965051c Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Wed, 28 Feb 2024 10:48:33 +0000 Subject: [PATCH 147/161] More fun with interpreters --- src/sage/calculus/meson.build | 2 +- src/sage/ext/interpreters/meson.build | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sage/calculus/meson.build b/src/sage/calculus/meson.build index 60ade235702..e11ac5a0a32 100644 --- a/src/sage/calculus/meson.build +++ b/src/sage/calculus/meson.build @@ -27,7 +27,7 @@ foreach name, pyx : extension_data sources: pyx, subdir: 'sage/calculus', install: true, - include_directories: [inc_ext, inc_numpy], + include_directories: [inc_numpy], dependencies: [py_dep, cysignals, gmp, gsl, interpreters_dep], ) endforeach diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build index 68d87afef6f..fb54f2abe7f 100644 --- a/src/sage/ext/interpreters/meson.build +++ b/src/sage/ext/interpreters/meson.build @@ -71,6 +71,7 @@ wrapper_rr_header = custom_target( interpreters_dep = declare_dependency( sources: [wrapper_el_header, wrapper_cc_header, wrapper_cdf_header, wrapper_rr_header], + include_directories : include_directories('.') ) From 0d5f0888ca8156e3933f676ec2bc002aeafdb712 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Wed, 28 Feb 2024 13:55:52 +0000 Subject: [PATCH 148/161] Add build directory as include directory for Cython compilation --- src/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/meson.build b/src/meson.build index 2e7fded9954..69b06d5bef9 100644 --- a/src/meson.build +++ b/src/meson.build @@ -128,6 +128,7 @@ ntl = cc.find_library('ntl', required: true) # have to add them manually. # https://github.com/mesonbuild/meson/issues/9562 add_project_arguments('-I', meson.current_source_dir(), language : 'cython') +add_project_arguments('-I', meson.current_build_dir(), language : 'cython') # Add global compiler flags add_project_arguments('-X auto_pickle=False', language : 'cython') From 765c5b9a0cf52d0a3c06919b18314cdaf96c5f97 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 05:37:31 +0000 Subject: [PATCH 149/161] Don't run pytest on builddir --- src/tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tox.ini b/src/tox.ini index 8e562cced8e..fc157b86d81 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -290,7 +290,7 @@ exclude = [pytest] python_files = *_test.py -norecursedirs = local prefix venv build pkgs .git src/doc src/bin +norecursedirs = local prefix venv build builddir pkgs .git src/doc src/bin tools addopts = --import-mode importlib doctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS From 159d3507981f444f2a0fc058a36da52e36529988 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 05:42:44 +0000 Subject: [PATCH 150/161] Restore --config-settings editable_mode=compat in ci-conda --- .github/workflows/ci-conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index 90e0d6f9da1..1bb08637099 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -92,7 +92,7 @@ jobs: run: | # Use --no-deps and pip check below to verify that all necessary dependencies are installed via conda. pip install --no-build-isolation --no-deps -v -v -e ./pkgs/sage-conf ./pkgs/sage-setup - pip install --no-build-isolation --no-deps -v -v -e ./src + pip install --no-build-isolation --no-deps --config-settings editable_mode=compat -v -v -e ./src env: SAGE_NUM_THREADS: 2 From e0364362f06cb458fc762d76c4e8b1e4ab24f768 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 05:47:18 +0000 Subject: [PATCH 151/161] Cleanup workflow --- .github/workflows/ci-meson.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-meson.yml b/.github/workflows/ci-meson.yml index ff810052bf5..8394508c64d 100644 --- a/.github/workflows/ci-meson.yml +++ b/.github/workflows/ci-meson.yml @@ -1,4 +1,4 @@ -name: Build & Test using Conda (Meson) +name: Build & Test using Meson on: push: @@ -16,13 +16,13 @@ concurrency: jobs: test: - name: Meson - runs-on: ${{ matrix.os }} + name: Conda (${{ matrix.os }}, Python ${{ matrix.python }}) + runs-on: ${{ matrix.os }}-latest strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu, macos] python: ['3.9', '3.10', '3.11'] steps: @@ -39,7 +39,7 @@ jobs: with: path: ~/conda_pkgs_dir key: - ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11.yml') }} + ${{ runner.os }}-conda-${{ hashFiles('src/environment-3.11-linux.yml') }} - name: Compiler cache uses: hendrikmuhs/ccache-action@v1.2 From 0b2d76f7348b6bfae52e4380a9e375fb0b1d639a Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 06:12:24 +0000 Subject: [PATCH 152/161] Ignore module-not-measured error during code coverage collection --- grayskull | 1 + meson | 1 + src/tox.ini | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) create mode 160000 grayskull create mode 160000 meson diff --git a/grayskull b/grayskull new file mode 160000 index 00000000000..5e74f1daa33 --- /dev/null +++ b/grayskull @@ -0,0 +1 @@ +Subproject commit 5e74f1daa33168642351563f5d73110e09dbd689 diff --git a/meson b/meson new file mode 160000 index 00000000000..5fdf7d7d8ca --- /dev/null +++ b/meson @@ -0,0 +1 @@ +Subproject commit 5fdf7d7d8caebb66f96f515c954182015caad492 diff --git a/src/tox.ini b/src/tox.ini index 8e562cced8e..31f8d59ebc9 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -298,7 +298,9 @@ doctest_optionflags = NORMALIZE_WHITESPACE ELLIPSIS source = sage concurrency = multiprocessing data_file = .coverage/.coverage -disable_warnings = no-data-collected +disable_warnings = + no-data-collected + module-not-measured [coverage:report] ignore_errors = True From 8c21bc5309ac31475b74a46528fe93e8efd6cd89 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 06:15:49 +0000 Subject: [PATCH 153/161] Remove acidentially commited submodules --- grayskull | 1 - meson | 1 - 2 files changed, 2 deletions(-) delete mode 160000 grayskull delete mode 160000 meson diff --git a/grayskull b/grayskull deleted file mode 160000 index 5e74f1daa33..00000000000 --- a/grayskull +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5e74f1daa33168642351563f5d73110e09dbd689 diff --git a/meson b/meson deleted file mode 160000 index 5fdf7d7d8ca..00000000000 --- a/meson +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5fdf7d7d8caebb66f96f515c954182015caad492 From 16d823407e72be99a320c3bc4b1859e700b4e4d8 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 06:17:32 +0000 Subject: [PATCH 154/161] Move compilers to src/meson.build --- meson.build | 5 ----- src/meson.build | 6 +++++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/meson.build b/meson.build index f00294b7e2f..7f42573fdfa 100644 --- a/meson.build +++ b/meson.build @@ -11,11 +11,6 @@ py_module = import('python') py = py_module.find_installation(pure: false) py_dep = py.dependency() -# Compilers -cc = meson.get_compiler('c') -cpp = meson.get_compiler('cpp') -cython = meson.get_compiler('cython') - # Additional targets py_with_pytest = py_module.find_installation(required: false, modules: ['pytest']) if py_with_pytest.found() diff --git a/src/meson.build b/src/meson.build index 69b06d5bef9..0730aa1a53e 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,5 +1,9 @@ -# Setup dependencies that are needed by many modules +# Compilers +cc = meson.get_compiler('c') +cpp = meson.get_compiler('cpp') +cython = meson.get_compiler('cython') +# Setup dependencies that are needed by many modules inc_numpy = run_command(py, [ '-c', From 11cb41c1a0b82bf3faf78fdeb8856b87216f09cc Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 06:22:16 +0000 Subject: [PATCH 155/161] Remove acidentially commited submodules --- grayskull | 1 - meson | 1 - 2 files changed, 2 deletions(-) delete mode 160000 grayskull delete mode 160000 meson diff --git a/grayskull b/grayskull deleted file mode 160000 index 5e74f1daa33..00000000000 --- a/grayskull +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5e74f1daa33168642351563f5d73110e09dbd689 diff --git a/meson b/meson deleted file mode 160000 index 5fdf7d7d8ca..00000000000 --- a/meson +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5fdf7d7d8caebb66f96f515c954182015caad492 From 861506ad5491f461d79c4c335af24e25d23fbd54 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 11:45:33 +0000 Subject: [PATCH 156/161] Fix tests --- src/sage_setup/autogen/interpreters/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage_setup/autogen/interpreters/__init__.py b/src/sage_setup/autogen/interpreters/__init__.py index ed4b0c52238..95cb3da5196 100644 --- a/src/sage_setup/autogen/interpreters/__init__.py +++ b/src/sage_setup/autogen/interpreters/__init__.py @@ -184,7 +184,7 @@ def rebuild(dirname, force=False, interpreters=None, distribution=None): sage: from sage_setup.autogen.interpreters import * sage: testdir = tmp_dir() sage: rebuild(testdir) - Building interpreters for fast_callable + Generating interpreters for fast_callable in ... -> First build of interpreters sage: with open(testdir + '/wrapper_el.pyx') as f: ....: f.readline() From 5d6295087726615ca3509f64e3079de4f0db28dc Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 11:50:47 +0000 Subject: [PATCH 157/161] Try installing the generated init file to fix cython module name issues --- src/sage/ext/interpreters/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/ext/interpreters/meson.build b/src/sage/ext/interpreters/meson.build index fb54f2abe7f..e0dd19577ac 100644 --- a/src/sage/ext/interpreters/meson.build +++ b/src/sage/ext/interpreters/meson.build @@ -15,6 +15,7 @@ interpreters = custom_target( 'wrapper_py.pyx', 'wrapper_rdf.pyx', 'wrapper_rr.pyx', + '__init__.py', ], input: '../../../sage_setup/autogen/interpreters/__init__.py', command: [py, '-m', 'sage_setup.autogen.interpreters','@OUTDIR@'], From 757932f66f14ff366b447f2b32515bd9e986076e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 12:09:03 +0000 Subject: [PATCH 158/161] Generate init file for interpreters --- src/sage_setup/autogen/interpreters/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sage_setup/autogen/interpreters/__init__.py b/src/sage_setup/autogen/interpreters/__init__.py index 95cb3da5196..dd491972d91 100644 --- a/src/sage_setup/autogen/interpreters/__init__.py +++ b/src/sage_setup/autogen/interpreters/__init__.py @@ -257,3 +257,6 @@ class NeedToRebuild(Exception): with open(os.path.join(dirname, all_py), 'w') as f: f.write("# " + AUTOGEN_WARN) + + with open(os.path.join(dirname, '__init__.py'), 'w') as f: + f.write("# " + AUTOGEN_WARN) From 73c840a49bf0bd0cf7a9d64e80fac2f91bfc46a2 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 12:11:46 +0000 Subject: [PATCH 159/161] Improve fflas dependency in meson.build --- src/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meson.build b/src/meson.build index 0730aa1a53e..1ec55af1591 100644 --- a/src/meson.build +++ b/src/meson.build @@ -105,7 +105,7 @@ glpk = cc.find_library('glpk') ppl = cc.find_library('ppl') gmpxx = cc.find_library('gmpxx') readline = cc.find_library('readline') -fflas = dependency(['fflas-ffpack']) +fflas = dependency('fflas-ffpack') fplll = dependency('fplll') givaro = cc.find_library('givaro') linbox = dependency('linbox', required: false) From 3819a6e7537fa4ffc9a32b1b1c7e54c36355a89b Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 12:12:35 +0000 Subject: [PATCH 160/161] Add fallback for gap --- src/meson.build | 8 ++++++-- subprojects/gap.wrap | 6 ++++++ subprojects/packagefiles/gap/meson.build | 8 ++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 subprojects/gap.wrap create mode 100644 subprojects/packagefiles/gap/meson.build diff --git a/src/meson.build b/src/meson.build index 1ec55af1591..d0a742d8f55 100644 --- a/src/meson.build +++ b/src/meson.build @@ -118,8 +118,12 @@ homfly = cc.find_library('homfly') mpc = cc.find_library('mpc') mpfi = cc.find_library('mpfi') mpc = cc.find_library('mpc') -# Cannot be found via pkg-config -gap = cc.find_library('gap') +# Cannot be found via pkg-config (pkg-config file will be added in 4.13) +# Test for common.h header that was added in 4.12 as a indirect version check +gap = cc.find_library('gap', has_headers: ['gap/common.h'], required: false) +if not gap.found() + gap = subproject('gap').get_variable('gap_dep') +endif singular = dependency('Singular') diff --git a/subprojects/gap.wrap b/subprojects/gap.wrap new file mode 100644 index 00000000000..7b248243616 --- /dev/null +++ b/subprojects/gap.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory=gap-4.12.2 +source_url=https://github.com/gap-system/gap/releases/download/v4.12.2/gap-4.12.2.tar.gz +source_filename=gap-4.12.2.tar.gz +source_hash=672308745eb78a222494ee8dd6786edd5bc331456fcc6456ac064bdb28d587a8 +patch_directory=gap diff --git a/subprojects/packagefiles/gap/meson.build b/subprojects/packagefiles/gap/meson.build new file mode 100644 index 00000000000..99dbeb23f1d --- /dev/null +++ b/subprojects/packagefiles/gap/meson.build @@ -0,0 +1,8 @@ +project('gap', 'c') + +mod = import('unstable-external_project') + +project = mod.add_project('configure') + +gap_dep = project.dependency('gap') +meson.override_dependency('gap', gap_dep) From ee096c90a702545260c86a78f26fc94513e9b43f Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sun, 10 Mar 2024 12:13:27 +0000 Subject: [PATCH 161/161] Add more fallback subprojects --- subprojects/.gitignore | 4 ++++ subprojects/fflas-ffpack.wrap | 6 ++++++ subprojects/givaro.wrap | 6 ++++++ subprojects/linbox-1.6.3.wrap | 6 ++++++ subprojects/linbox-1.7.0.wrap | 6 ++++++ subprojects/packagefiles/fflas-ffpack/meson.build | 8 ++++++++ subprojects/packagefiles/givaro/meson.build | 8 ++++++++ subprojects/packagefiles/linbox/meson.build | 8 ++++++++ 8 files changed, 52 insertions(+) create mode 100644 subprojects/fflas-ffpack.wrap create mode 100644 subprojects/givaro.wrap create mode 100644 subprojects/linbox-1.6.3.wrap create mode 100644 subprojects/linbox-1.7.0.wrap create mode 100644 subprojects/packagefiles/fflas-ffpack/meson.build create mode 100644 subprojects/packagefiles/givaro/meson.build create mode 100644 subprojects/packagefiles/linbox/meson.build diff --git a/subprojects/.gitignore b/subprojects/.gitignore index 2df6742f4a3..a37725ef03c 100644 --- a/subprojects/.gitignore +++ b/subprojects/.gitignore @@ -2,3 +2,7 @@ packagecache flint-*/ lcalc-*/ +linbox-*/ +fflas-ffpack-*/ +givaro-*/ +gap-*/ diff --git a/subprojects/fflas-ffpack.wrap b/subprojects/fflas-ffpack.wrap new file mode 100644 index 00000000000..a8f7c4c7396 --- /dev/null +++ b/subprojects/fflas-ffpack.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory=fflas-ffpack-2.5.0 +source_url=https://github.com/linbox-team/fflas-ffpack/releases/download/v2.5.0/fflas-ffpack-2.5.0.tar.gz +source_filename=fflas-ffpack-2.5.0.tar.gz +source_hash=dafb4c0835824d28e4f823748579be6e4c8889c9570c6ce9cce1e186c3ebbb23 +patch_directory=fflas-ffpack diff --git a/subprojects/givaro.wrap b/subprojects/givaro.wrap new file mode 100644 index 00000000000..c44a96df2d9 --- /dev/null +++ b/subprojects/givaro.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory=givaro-4.2.0 +source_url=https://github.com/linbox-team/givaro/releases/download/v4.2.0/givaro-4.2.0.tar.gz +source_filename=givaro-4.2.0.tar.gz +source_hash=865e228812feca971dfb6e776a7bc7ac959cf63ebd52b4f05492730a46e1f189 +patch_directory=givaro diff --git a/subprojects/linbox-1.6.3.wrap b/subprojects/linbox-1.6.3.wrap new file mode 100644 index 00000000000..baf3aa864f6 --- /dev/null +++ b/subprojects/linbox-1.6.3.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory=linbox-1.6.3 +source_url=https://github.com/linbox-team/linbox/releases/download/v1.6.3/linbox-1.6.3.tar.gz +source_filename=linbox-1.6.3.tar.gz +source_hash=a58a188307b07c57964e844bceb99321d3043a8a4a1fccc082a54928bb9a0057 +patch_directory=linbox diff --git a/subprojects/linbox-1.7.0.wrap b/subprojects/linbox-1.7.0.wrap new file mode 100644 index 00000000000..1cf05df4d4f --- /dev/null +++ b/subprojects/linbox-1.7.0.wrap @@ -0,0 +1,6 @@ +[wrap-file] +directory=linbox-1.7.0 +source_url=https://github.com/linbox-team/linbox/releases/download/v1.7.0/linbox-1.7.0.tar.gz +source_filename=linbox-1.7.0.tar.gz +source_hash=6d2159fd395be0298362dd37f6c696676237bc8e2757341fbc46520e3b466bcc +patch_directory=linbox diff --git a/subprojects/packagefiles/fflas-ffpack/meson.build b/subprojects/packagefiles/fflas-ffpack/meson.build new file mode 100644 index 00000000000..84685284ff7 --- /dev/null +++ b/subprojects/packagefiles/fflas-ffpack/meson.build @@ -0,0 +1,8 @@ +project('fflas-ffpack', 'c') + +mod = import('unstable-external_project') + +project = mod.add_project('configure') + +fflasffpack_dep = project.dependency('fflas-ffpack') +meson.override_dependency('fflas-ffpack', fflasffpack_dep) diff --git a/subprojects/packagefiles/givaro/meson.build b/subprojects/packagefiles/givaro/meson.build new file mode 100644 index 00000000000..4f25dab4abb --- /dev/null +++ b/subprojects/packagefiles/givaro/meson.build @@ -0,0 +1,8 @@ +project('givaro', 'c') + +mod = import('unstable-external_project') + +project = mod.add_project('configure') + +givaro_dep = project.dependency('givaro') +meson.override_dependency('givaro', givaro_dep) diff --git a/subprojects/packagefiles/linbox/meson.build b/subprojects/packagefiles/linbox/meson.build new file mode 100644 index 00000000000..daa7213f913 --- /dev/null +++ b/subprojects/packagefiles/linbox/meson.build @@ -0,0 +1,8 @@ +project('linbox', 'c') + +mod = import('unstable-external_project') + +project = mod.add_project('configure') + +linbox_dep = project.dependency('linbox') +meson.override_dependency('linbox', linbox_dep)