3 ms·
The world has yet to standardize on a good crossplatform polyglot build system. The only real such build systems are Buck and Bazel. But they have way too much
by forrestthewoods 3mo ago
The world has yet to standardize on a good crossplatform polyglot build system.
The only real such build systems are Buck and Bazel. But they have way too much baggage from their overlords.
It’s a shame.
- himata4113 3mo agobuild systems using llvm as the backend are getting there, but zig is making their own compiler too.
- forrestthewoods 3mo agocompilers and build systems are and should be different. A good polyglot build system should support llvm and zig and python and literally any toolchain under the sun.
- himata4113 3mo agothe problem is that you need a compiler capable of compiling said zig, python, rust. LLVM does that, you can compile something as untyped as javascript(with a lot of hacks) or as strict as rust.
- forrestthewoods 3mo ago> the problem is that you need a compiler capable of compiling said zig, python, rust no! No you do not!! It’s perfectly totally fine to have multiple different compilers. Literally not a problem at all. That’s my point! Compilers and build systems are separate. It is perfectly fine for one build system to invoke multiple different compilers.
- himata4113 3mo agocargo pretty much does that, but then you have to have to bundle all those compilers which becomes a fuckfest.
- forrestthewoods 3mo agoEhh. Cargo has build.rs but calling that a polyglot build system is like calling bash scripts a polyglot build system. Buck and Bazel have the right architecture. Just need a version written fresh without all the baggage.
- arikrahman 3mo agoZig is pretty good for my use case. It may not be fully pollyglot at a technical level, but I can use it for my embedded C use case, for Jank to export the .cpp to other platforms, and thereby Clojure.