[Nix-dev] "package foo is broken due to missing package bar" errors in Haskell packages (was: nixos and haskell)

Peter Simons simons at cryp.to
Sat May 16 01:14:45 CEST 2015


Hi Steven,

 > There appears to be a problem with non-deterministic build output
 > with GHC 7.10.1 though.unsusable.

the information you got from [1] is a bit misleading, IMHO. It states:

  "The non-deterministic output problem seems a bit worse [in GHC 7.10.x]."

I am unaware of any evidence to suggest that this is true. We've had an
inconsistent binary cache on hydra.nixos.org exactly *once* since we've
switched to GHC 7.10.x. That is unpleasant, no doubt, but the issue is not
at all specific to GHC 7.10.x. GHC 7.8.x produced exactly the same problems
at a rate that (until now) seems about the same. When GHC 7.8.x was used
with parallel building enabled -- like we currently do with GHC 7.10.x --,
inconsistent builds occurred at least once every week! The problem was so
bad that we switched the feature off, eventually, because it rendered our
binary caches near unusable. Now, we haven't used GHC 7.10.x for a long time
yet, and it's possible that all hell breaks loose a minute after I've posted
this message, but based on the knowledge we have so far GHC 7.10.x is
clearly more stable in that regard than 7.8.x ever was.

In the light of this, the recommendation

  "You might want to avoid GHC 7.10.x."

from [1] seems premature, at best. From what I have seen so far, I believe
GHC 7.10.x to be a better choice for users who are concerned about the
non-determinism bug [2].


 > I don't know how to use 7.8.4 instead.

Replace occurrences of haskellPackages.foo with haskell.packages.ghc784.foo
in your Nix files.


 > I've reconfigured NixOS with a single binary cache in an attempt to
 > mitigate the non-determinism (but I'm not sure if that's all that's
 > required). I'm using http://hydra.cryp.to.

Yes, for users of Linux/x86_64, that is probably the way to go at the
moment. More details can be found at [3].

Best regards,
Peter



[1] https://twitter.com/puffnfresh/status/597474734922551296
[2] https://ghc.haskell.org/trac/ghc/ticket/4012
[3] https://github.com/NixOS/nixpkgs/issues/7792



More information about the nix-dev mailing list