[Nix-dev] Haskell packages in the binary cache broken?
Karn Kallio
tierpluspluslists at skami.org
Mon May 27 18:02:30 CEST 2013
> I don't know
> where the non-determinism comes from, but if they just use a random
> generator, it would be enough to seed it e.g. from the hash of $out
> instead of the standard sources.
As I understand, GHC has many uses of unsafeInterleaveIO in its
implementation, so the order of effects such as the generation of fresh names
will depend on how the IO manager schedules evaluation of those thunks, which
could depend on eg time for receiving a filesystem response, which may depend
on installed hardware (eg amount of RAM for filesystem buffer) and state of
the machine (eg how many other processes are using IO at the moment). So the
nondeterminism arises not via a controlled mechanism like a random generator
but from races influenced by the configuration and state of the wider machine.
More information about the nix-dev
mailing list