Work log 2016-07-06

Posted on by Chris Warburton

Using src rather than ${myDerivation}, in combination with disabling distributed builds in hydra’s nix config, has got hydra building derivations.

So far, I’ve made release.nix contain the custom haskell packages, as direct elements of the resulting set, i.e. import release.nix gives

{ haskell-ghc784-ASTPlugin-0.0.1        = <drv>;
  haskell-ghc784-ArbitraryHaskell-0.2.1 = <drv>;
  ... }

Tried overriding all Haskell package sets, but some are marked as broken (e.g. GHC 6.*). After removing those, Hydra got OutOfMemory evaluating the jobset; i.e. determining what the jobs/pkgs are, let alone building them. If we only include, say, GHC 7.8.4, the jobset evaluates and the packages start building. They take a while, as we need to build GHC, glibc, GCC, etc.

This may be taking longer than necessary by using stable.haskellPackages. If we treat stable as just another source of Haskell versions, we could split up some of the work.

Would be a good idea to make an i686 VM for building with too.

Made mudraw alias for mutool draw so Emacs can read PDFs.

Started ‘report’, empty for now :(

Used packageOverrides in haskell-te, caused some conflicts as names like check were already in use. Switched out their names.

Pushed changes to te-benchmarks to not only remove usage of nix-shell shebangs, but also put a wrapper around in bin/. This allows nix-build/hydra to run without getting confused by /usr/bin/env (stdenv.mkDerivation runs patchShebangs after installation).

Using mysql for replacing strings util seems to be a bit overkill; it’s bringing in all sorts of dependencies.

Blog idea: Beyond reproducibility.

If our build environment is known (e.g. a Nix build process), can we partially-apply/supercompile our code?

E.g. we know which executable bash refers to, so feed in the script now and supercompile the pieces.

Removed mysql dependency; code is much slower (100% CPU on bash).

Maybe the haskell module should be its own’package’; we can at least get Hydra to build it.

Haskell packages seem to be building, although I was forced to do a garbage collection on hydra-master, as it ran out of space. Freed up ~500MB.

Disk image is 10GB, which comes from nixops default image. Tried adding a 100GB disk, but it shows as sdb and hence won’t help with running out of space. There’s a pull request for NixOps to honour resizing of disk images, but it’s not merged yet.