If you need help, I'm available and very familiar with meson.
On 21.10.23 05:24, tobia...@gmx.de wrote:
https://github.com/sagemath/sage/pull/36489 now implements a basic
meson setup that replaces autoconf for sage library. Given the
complexities mentioned above, I've restricted attention to when all
the dependencies are provided via conda, which reduced the problem to
something manageable. Thus, with this the build looks as follows: use
conda to setup all dependencies, use meson to get a few config
settings needed, then use setuptools to install sage library. Of
course, the last step you ideally also want to replace with meson.
Would love to collaborate on this.
On Wednesday, May 3, 2023 at 3:28:12 AM UTC+8 Michael Orlitzky wrote:
On Tue, 2023-05-02 at 10:35 -0700, Volker Weißmann wrote:
> Hello,
>
> I'm a developer that worked quite a bit with the meson build
system and
> looked at sagemath for a few days. I thought that redoing the build
> system with meson instead of autoconf would be quite a bit of
work, but
> would
>
> 1. Be far, far more readable.
> 2. Result in far faster incremental builds if very little has
changed since
> the last build.
>
> What do you think? Is this a good idea? Would you appreciate
(and merge)
> such an endeavour?
>
Meson is my second favorite build system, but there are a few
obstacles
to a rewrite:
* Autotools is nicer for end users, because all you need to run it is
a posix shell. The tradeoff is that writing autotools sucks for
developers. It is however already written.
* Related to the first item, meson has bootstrapping issues because
it's written in python (which we use autotools to detect), and
because meson sometimes introduces new features. If we use those
new features then users need newer versions of meson which need
newer versions of python... This is offset somewhat by the fact
that we already have a set of bootstrap dependencies but it would
be one more thing we'd have to worry about. (There is also a C99
implementation of meson called muon.)
* The ./configure && make process is "standard" and familiar to
everyone while meson is less so. This could change in a few years.
* The sage build system is perpetually in flux and it would be very
hard to coordinate a rewrite.
And the big one:
* You probably haven't looked hard enough at the existing build
system. We've got mountains of highly unusual autoconf code and
hand-written Makefiles that all interact in weird ways with
sage's own package manager. Meson makes the standard build tasks
simple, but a lot of what we're doing is non-standard. Trying to
rewrite those bits in meson might only make things worse.
So I commend your bravery but I think you would waste a lot of time
before eventually giving up. And IMO the benefits would be dubious.
Some day we may reach a point where the sage library is an
independent
package with its own standard ./configure script that just looks for
headers and libraries and substitutes strings into files. At that
point
this would be a less crazy idea.
--
You received this message because you are subscribed to a topic in the
Google Groups "sage-devel" group.
To unsubscribe from this topic, visit
https://groups.google.com/d/topic/sage-devel/D_Vv8dt811E/unsubscribe.
To unsubscribe from this group and all its topics, send an email to
sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-devel/82f72404-26f7-44a0-8ffc-a234f77e5b9fn%40googlegroups.com
<https://groups.google.com/d/msgid/sage-devel/82f72404-26f7-44a0-8ffc-a234f77e5b9fn%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-devel/c4ef8f6b-ebd0-405c-9ae9-5f13d4e6320a%40gmail.com.