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.