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,