> 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.

_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to