cybre:uranther #012.018 is a user on cybre.space. You can follow them or interact with them if you have an account anywhere in the fediverse.
cybre:uranther #012.018 @uranther

At the risk of starting an internet holy war-

---
Which build system do you prefer?
---

It seems that to use something other than GNU Make is to harm the user and yourself. But both GNU Make and CMake are considered harmful.

recommends mk(1) of which Russ Cox has graciously provided the source code here: 9fans.github.io/plan9port/unix

I suppose you could make a expression with nix-build: nixos.org/nix/manual/#sec-nix-

:cybre_glitch: :psyduck:

· Web · 2 · 3

@uranther Nix really isn't a build system, it's a packaging system that captures the build process.

It's... uh... a black hole.

I've used Shake, Rake, and Make a lot.

@uranther

Why are they considered harmful?

There is also #meson (mesonbuild.com/) which gained a lot of users lately.

@danyspin97 looks like the next best thing and it uses Ninja under the hood. :tinking:

@uranther
Using python3 to compile c/c++ doesn't seem good tough.
But it works and the build files are really simple.

@uranther yesterday I had to debug a build written in and one written in

I could debug and understand the mk one in a few minutes, whereas the CMake one was just a mess and I still don't understand it. (tbh it's also a much bigger project, but even its submodules' CMake scripts are hard to read)

So, my preference is: mk (or pure makefiles without fancy GNU extensions)

@uranther I'm also interested in but I don't want to build anything where I really need its performance. Still, it's an interesting thingy. (and it uses , yay)

@uranther I'm afraid make is still my least unfavourite for any project that involves more than one language or any language that doesn't have its own build system. It would be nice if it had some other ways to test a task had been done than creating a file, though: imagine if you could have make prerequisites like "something is listening on this tcp port" or "this process is running" - you could use it to write init ;-)

@telent @uranther ideally those could all be files 🤷

I've spent my weekend trying to build dports on .

It is mind-boggling the number of version errors, circular dependencies, compilation failures, and other hacks comes up with. I especially enjoy the claims in the manual that say "if all goes well" and "theoretically" every port should build.

Why do we continue using failed systems?

@uranther AFAIK Gnome depends on systemd, so forget about it.

@uranther I don't have any problem in using systemd, but I have a problem with a DE that suddenly stops to be cross-platform, also it appears that it's the only one working on accessibility stuff, what a shame.

@uranther I wonder if it's the same with Cinnamon and MATE.

@Exagone313 Good question, they are more lightweight so probably not. There's also from . But like you say, accessibility (and ergonomics) seem to be lacking in most projects.

@Exagone313 @uranther May be outdated, but the component of systemd required can and has been reimplemented independently of it.

@uranther ^^
Someone pointed out that GuixSD has Gnome, but their package is so big that I can't really read it.