Hacker News new | ask | show | jobs
by arikrahman 2 days ago
Unless you use a flake or the project has a flake.nix
1 comments

There is nothing in Nix that magically makes concurrent builds with completion-order-dependent outputs come out deterministic.
I never tackled the reproducible builds topic but this is also something I had in mind while having a thought about it. Building object files for translation units, apart from macros introducing variance, should be reproducible no matter how high the number of compile jobs is running. So, isn't this largely a linking stage problem?
I would assume that compilers these days are likely to have internal parallelism too.
They do but the order of compiling the object files does not matter, at least not in C or C++ compilation model.