I say this as someone who wants to love bazel... I just can't understand why it picks up impure toolchains from the system at all.
I say this as someone who wants to love bazel... I just can't understand why it picks up impure toolchains from the system at all.
Combine that with the fact that C++ toolchains at least make assumptions all over the place about being spewed over `/usr`... I think they just bowed out to practicality at that point.
You're definitely right it should use hermetic toolchains. I'm curious which other Bazel-like build system does that by default?
Given its Google-internal predecessors, it’s not clear how priority should be established (the general guideline in science is that non-public is not science, but that might not be what we care about here). The public Bazel, though, is from 2015, while the first releases of Nix date back all the way to 2004[1] and the thesis is from 2006.
Now Nix is not really at its best if used as a general-purpose build system, but it certainly has and uses hermetic toolchains.
[1] https://releases.nixos.org/nix/nix-0.5/manual/manual.html
I don't think it was easy, though.