KindaABigDyl

joined 1 year ago
[–] KindaABigDyl@programming.dev 14 points 2 weeks ago

complete dealbreaker issues

.

inability to use 240hz

Opinion disregarded

[–] KindaABigDyl@programming.dev 17 points 2 weeks ago

More like gaming executives

[–] KindaABigDyl@programming.dev 1 points 2 weeks ago (1 children)

Not currently, but that was an explicit choice, so it's easy to change

Maybe I should add a flag to allow searching for h files when building C++

[–] KindaABigDyl@programming.dev 4 points 2 weeks ago

Update: I went ahead and implemented the multithreading

[–] KindaABigDyl@programming.dev 3 points 2 weeks ago

Update: I went ahead and implemented the multithreading

 

I created a little side project over the past few days, a new build system for C and C++: https://github.com/blueOkiris/acbs/

I've seen a lot of discourse over C build tools. None of them really seem solid except for (some) Makefiles (some Makefiles are atrocious; you just can't rely on people these days). Bazel, cmake - they're just not straight forward like a clean Makefile is, basically black magic, but setting up a Makefile from scratch is a skill. Many copy the same one over each time. Wouldn't it be nice if that Makefile didn't even need to be copied over?

Building C should be straight forward. Grab the C files and headers I want, set some flags, include some libraries, build, link. Instead project build systems are way way way overcomplicated! Like have you ever tried building any of Google's C projects? Nearly impossible to figure out and integrate with projects.

So I've designed a simplistic build system for C (also C++) that is basically set up to work like a normal Makefile with gcc but where you don't have to set it up each time. The only thing you are required to provide is the name of the binary (although you can override defaults for your project, and yes, not just binaries are possible but libs as well). It also includes things like delta building without needing to configure.

Now there is one thing I haven't added yet - parallel building. It should be as simple as adding separate threads when building files (right now it's a for loop). I know that's something a lot of people will care about, but it's not there yet. It's also really intended to only work with Linux rn, but it could probably pretty easily be adjusted to work with Windows.

Lay your project out like the minimal example, adjust the project layout, and get building! The project itself is actually bootstrapped and built using whatever the latest release is, so it's its own example haha.

It's dead simple and obvious to the point I would claim that if your project can't work with this, your project is wrong and grossly over-complicated in its design, and you should rework the build system. C is simple, and so should the build system you use with it!

So yeah. Check it out when y'all get a chance

 

I created a little side project over the past few days, a new build system for C and C++: https://github.com/blueOkiris/acbs/

I've seen a lot of discourse over C build tools. None of them really seem solid except for (some) Makefiles (some Makefiles are atrocious; you just can't rely on people these days). Bazel, cmake - they're just not straight forward like a clean Makefile is, basically black magic, but setting up a Makefile from scratch is a skill. Many copy the same one over each time. Wouldn't it be nice if that Makefile didn't even need to be copied over?

Building C should be straight forward. Grab the C files and headers I want, set some flags, include some libraries, build, link. Instead project build systems are way way way overcomplicated! Like have you ever tried building any of Google's C projects? Nearly impossible to figure out and integrate with projects.

So I've designed a simplistic build system for C (also C++) that is basically set up to work like a normal Makefile with gcc but where you don't have to set it up each time. The only thing you are required to provide is the name of the binary (although you can override defaults for your project, and yes, not just binaries are possible but libs as well). It also includes things like delta building without needing to configure.

Now there is one thing I haven't added yet - parallel building. It should be as simple as adding separate threads when building files (right now it's a for loop). I know that's something a lot of people will care about, but it's not there yet. It's also really intended to only work with Linux rn, but it could probably pretty easily be adjusted to work with Windows.

Lay your project out like the minimal example, adjust the project layout, and get building! The project itself is actually bootstrapped and built using whatever the latest release is, so it's its own example haha.

It's dead simple and obvious to the point I would claim that if your project can't work with this, your project is wrong and grossly over-complicated in its design, and you should rework the build system. C is simple, and so should the build system you use with it!

So yeah. Check it out when y'all get a chance

[–] KindaABigDyl@programming.dev 1 points 3 weeks ago

You can build with mingw64 built with msvc and use more or less the same Makefile. As for Xcode... well, there's not really a good reason to support Mac. On principle I wouldn't even try

[–] KindaABigDyl@programming.dev 1 points 3 weeks ago

How the heck does a Makefile not scale??? That's all it does!

[–] KindaABigDyl@programming.dev 29 points 4 weeks ago (10 children)

Life is and will always be better writing your own Makefiles. It's literally so easy. I do not get the distaste. Cmake is arcane magic. Bazel is practically written in runes. Makefile is a just a glorified build script, but where you don't have to use a bunch of if statements to avoid building everything each time.

[–] KindaABigDyl@programming.dev 16 points 1 month ago (2 children)

And yeah I know about NixOS but I like to distro hop and experiment

If you know about NixOS, then you probably know this, but Nix, the package manager/the language behind NixOS, is cross-platform.

I daily drive NixOS, but I also use Nix (and home-manager) on my Fedora music laptop, my Ubuntu home file-server, and my work Windows machine (WSL) to install and configure neovim automatically instead of copying a config, installing all the packages, and running check health over and over again until everything is set up.

I just copy my neovim.nix file over (also other things like zsh.nix) and run home-manager switch

You don't have to use NixOS to take advantage of its benefits.

[–] KindaABigDyl@programming.dev 5 points 1 month ago

Ext4 bc of its speed for games and my main files. Btrfs on the root for compression

[–] KindaABigDyl@programming.dev 2 points 1 month ago

It's a bit more than iced as they've created a library on top of it, esp for the theming they desire

[–] KindaABigDyl@programming.dev 4 points 1 month ago

Build a project. Learn how to do each step by searching the internet. It's quite literally that easy.

 
 
view more: next ›