Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch modularized sagelib's build systems from setuptools to meson-python / ninja #34630

Open
mkoeppe opened this issue Oct 2, 2022 · 7 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Oct 2, 2022

(from #32874 comment:27)

SciPy has switched to meson-python / ninja (see #34081).
See for example https://github.com/scipy/scipy/blob/main/scipy/linalg/meson.build; this replaces older infrastructure like https://github.com/scipy/scipy/blob/main/tools/cythonize.py

Cython recently added the --depfile switch

This finally enables build systems to do their own dependency tracking (caching dependencies in depfiles) instead of passing all source files to Cython - where it takes a good chunk of the time for a trivial ./sage -b (#32874 comment:27).

What is needed is to make use of cython --depfile in meson:

Then we can switch from setuptools to meson-python. We would continue to use our own package/module discovery code (sage_setup.find).

In this ticket, we change the build systems of pkgs/sagemath-* (including pkgs/sagemath-standard) to meson-python. Editable builds will continue to use setuptools for a monolithic build via src/setup.py. (meson-python as of 0.11.x does not support PEP 660 editable wheels - mesonbuild/meson-python#47)

Depends on #33577
Depends on #34081
Depends on #34855
Depends on #34897

CC: @dimpase @kwankyu

Component: build

Issue created by migration from https://trac.sagemath.org/ticket/34630

@mkoeppe mkoeppe added this to the sage-9.8 milestone Oct 2, 2022
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Oct 14, 2022

Dependencies: #33577, #34081

@dimpase
Copy link
Member

dimpase commented Nov 1, 2022

comment:2

good idea.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 17, 2022

Changed dependencies from #33577, #34081 to #33577, #34081, #33577

@mkoeppe

This comment has been minimized.

@mkoeppe mkoeppe changed the title Switch sagelib's build system from setuptools to meson-python / ninja Switch modularized sagelib's build systems from setuptools to meson-python / ninja Dec 17, 2022
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 17, 2022

Changed dependencies from #33577, #34081, #33577 to #33577, #34081

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Dec 17, 2022

Changed dependencies from #33577, #34081 to #33577, #34081, #34855

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 6, 2023

Changed dependencies from #33577, #34081, #34855 to #33577, #34081, #34855, #34897

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants