2 ms·
I'm not sure the "distribution" would be all that helpful. A single compiler that does some parallel work and collect the results of that work in a list in ord
by gf000 2y ago
I'm not sure the "distribution" would be all that helpful.
A single compiler that does some parallel work and collect the results of that work in a list in order of completion (and similar) are probably the most common cause of non-determinism.
Given that, your chromatograph would be mostly "determined" by the source code's peculiarities, instead of the offending compiler itself. (E.g. I have n classes a compiler would process in parallel, so given a single point of timing non-determinism n! different combinations could possibly exist (assuming they all cause a different outputs). The only information I could conclude from such a distribution is that there is a common sequence of completing tasks).
But your idea is cool, and simply reporting back non-matching local builds would be helpful (I believe the binary property of whether a different output could be built is the only relevant fact) -- also, if we were to mark a package as non-reproducible, we could recursively mark everything else that has it as a (transitive) input.
- __MatrixMan__ 2y agoI think there are only a few cases where it would be helpful: - one hash to rule them all, perfectly reproducible - a big mess, consider avoiding it - just two or four cohorts, package maintainer may want to investigate - everbody agrees on the output hash except for you, something local is compromized I don't anticipiate peering into the mess and coming up with many useful conclusions. > if we were to mark a package as non-reproducible, we could recursively mark everything else that has it as a (transitive) input. I like that idea, to sort of carve out a space within the already-pretty-reliable nixpkgs which can be expected upon to be perfectly reproducible. I'd strive to get my packages included in that set, and to select my dependencies from it.