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 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/ed316ef889ca2e785bf6b0c33202fa95d49ddeed.camel%40orlitzky.com.

Reply via email to