| ▲ | dboon 2 days ago | |||||||||||||||||||||||||
I'm working on "Cargo but for C". It started out as something marginally more useful than vendoring your dependencies as submodules + baking in the knowledge of how to build a bunch of common projects. I realized, though, that there was somehow a huge gap in the insane world of C build tools. There's nothing that: - Lets you pin really precisely and builds everything from source (i.e. no binary repository) - Does not depend on either a scripting language or a completely insane DSL (Conan uses Python, CMake is an eldritch horror, ditto Make, lots of other tools of course but none of them quite hit the mark) - Has a good balance of "builds are data" and "builds are code". Anyway, it's going great. There are, of course, a ton of problems to solve. Chief among them is the obvious caveat that C is not a monoculture like Rust. There will be zero upstream libraries that use this tool natively. But I don't think it matters. I think I can build something which is as much better to the existing tools as, say, UV was to existing Python tools, even with that disadvantage. | ||||||||||||||||||||||||||
| ▲ | josephg a day ago | parent | next [-] | |||||||||||||||||||||||||
Nice stuff! I'm keen to see this too. I love programming in rust. Lots of non-rust developers think the whole point of rust is safety, but honestly, the things I like most about using it are the quality of life features like cargo. I love the idea of bringing that to C! Relevant to this thread: I've spent the last week or so hand porting SeL4 from C to Rust, mostly so I can learn how it works (and learn OS development more generally). One of the biggest pain points I've had trying to use SeL4 is understanding the insanely complex way it uses cmake to compile the kernel and userland software. With Cargo, I can just run `cargo build` on my rust kernel project and it just works[1]. I don't even have a build.rs. Anyway, I'd love it if we had a tool that made sel4 so easy to build. I doubt it'll be that simple, but its a lovely goal. [1] (Well, except for one small step: You need to run objcopy to convert the 64 bit elf into a 32 bit elf to run it in qemu. But other than that!) | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | throwaway29303 a day ago | parent | prev | next [-] | |||||||||||||||||||||||||
Sounds interesting and challenging. There's something similar, although not the build part just the modular aspect of it inspired by CPAN called CCAN: https://ccodearchive.net/. Very few people know about it, I believe, and it goes way back. I'm not involved with that project, though. Good luck! | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | MarsIronPI a day ago | parent | prev | next [-] | |||||||||||||||||||||||||
Please post it here when it's ready! I'd absolutely be interested in seeing it. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | colonCapitalDee 2 days ago | parent | prev | next [-] | |||||||||||||||||||||||||
Good luck! Building the next uv is certainly ambitious, but I love ambitious projects :) | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | haolez 2 days ago | parent | prev | next [-] | |||||||||||||||||||||||||
I've used Conan briefly in the past for C++ and I quite liked it. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | feelamee a day ago | parent | prev | next [-] | |||||||||||||||||||||||||
is it already in open source? I would like to see and test it. Share it here - on HN, when you will be ready | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | adastra22 a day ago | parent | prev [-] | |||||||||||||||||||||||||
How is this different from bazel? | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||