Hello Fi, Would you prefer a guile interface to meson, or a meson replacement in Guile?
Regards, On 27 December 2024 00:41:33 GMT, Fi <lapearl...@disroot.org> wrote: >I was thinking this the other day!, was wondering about how useful a guile >interface to meson would be. > >On 19. 12. 24 22:12, Divya Ranjan wrote: >> Hello Guix, >> >> The other day, after being frustrated of build systems (auto-tools, meson, >> maven etc.), I wondered why doesn’t Guix which has such powerful tools >> within it (`guix build`, `guix pack` etc.) also not have a purely >> Guile-based build tool? After all, our goal is to make deployment, and >> building both more declarative and away from the all-too-familiar >> “dependency hell”. >> >> I am not exactly sure how I want to go with this, but I want to extend (if >> needed) the capabilities of Guix, to allow the developer of a package to use >> it also to build the package effectively replacing existing build tools. >> Since we already have build-system, instead of executing make (or whatever >> other tool) commands from it, we could modify it to itself have all those >> things that a Makefile would have. >> >> The developer would use Guile to declare their build config, I am again not >> sure what this might exactly look like, but can’t we have it such that we >> provide the developer with some tools to _declare_ a custom and >> package-specific build-system in Guile (just like our familiar >> gnu-build-system), but this is purely in Guile and executes whatever >> commands, path declarations and other interactions (such as calling gcc) >> directly from Guile and not by just calling `make`. I haven’t thought >> through this clearly, but even if this doesn’t work, the main idea I’d like >> to propose is to fully replace existing build-tools by making a new Guile >> build tool to work alongside Guix. >> >> Ideally, once the developer has a build config ready, one can just wrap it >> up with a package definition in Guile, just like the ones we create to >> package something upstream. This package definition can then be used in >> `guix build -f package.scm` to result in a fully transactional building >> process that focuses not on getting out of dependency hell, but just >> declaring your config right. And all of this without having to learn yet >> another build tool that might disappear, and of course, without leaving the >> comfortable world of Lisp (Scheme). >> >> I was indicated by others that such an idea has previously been conceievd >> among Guix developers themselves, namely as a GSoC proposal[0]. I couldn’t >> find if that has progressed towards anything, nor could find anything in the >> mailing list. I did see Pjotr volunteering to mentor for it, I’ve CC-ed them >> to see if they’re still interested in such a project. Meanwhile, I’d like >> input from other Guix core developers on what they think of this, and if >> they could provide me with some leads on where to go with this. >> >> >> [0]: https://libreplanet.org/wiki/Group:Guix/GSoC-2024 >> >> Regards, Divya Ranjan, Mathematics, Philosophy and Libre Software