[Nix-dev] Haskell build failures

Peter Simons simons at cryp.to
Fri Aug 8 21:19:48 CEST 2014


Hi Daniel,

 > Nix includes several versions of GHC, and one of the few cases where
 > we include multiple versions of a Haskell library is when that library
 > ships with GHC or Haskell Platform. Eg, 10 versions of HTTP, 9
 > versions of GLUT.
 >
 > We end up telling Hydra to build every version of the library against
 > every version of GHC, when what we actually want is to pick a library
 > version based on the GHC version. (With maybe some overlap.)

yes, exactly, that is the problem we have. We keep old versions of
libraries around because we need them to support, say GHC 6.12.3 or an
old Haskell Platform, but newer compilers cannot build those packages
any more. Still, Hydra tries to build every single package in
haskell-packages.nix with the latest compiler. Ideally, Hydra would
build no Haskell package that has a version number as part of its
attribute name. For example, Hydra should build HTTP, but not
HTTP_4000_0_6, HTTP_4000_0_9, HTTP_4000_1_1, and so on.

Furthermore, Hydra builds the Haskell package set in 4 separate copies:

  haskellPackages_ghc783_no_profiling
  haskellPackages_ghc783_profiling
  haskellPackages_ghc783
  haskellPackages

This means that every failing package contributes 4 build errors to the
statistics.

Of course, we have also our fair share of packages that are just plain
broken. I'm sure many packages that worked with GHC 7.0.4 have
bit-rotted away by now, but nobody notices because the package is
obsolete anyway.

Just my 2 cents,
Peter



More information about the nix-dev mailing list