Tweag + Nix dev update #16

(posted on behalf of @thufschmitt)

With the arrival of summer, a fair number of our Tweag members is away for some well-deserved vacations. But:

Fuzzing Nix

@pamplemousse has been heavily working both on improving the fuzzer and its results, and integrating it nicely into the repository (A more detailed update for the last few weeks is available here).

  • The fuzzer found its first bug \o/ : #5011
  • Because integrating the fuzzer with the existing build system is a pain, @pamplemousse also looked in the direction of meson (building on to of #3160), as integrating both was much simpler. We now have to see whether pushing for this PR is worth it given that there’s still a bunch of work to be done on it
  • Further progress is currently blocked by the fact that libfuzzer expects its inputs to be reentrant, while the Nix evaluation isn’t, leading to all kind of funky failures. @pamplemousse @thufschmitt are currently investigating the best solution to this (possible solutions including fixing the re-entrancy of the evaluation or running it in a forked process).

Nix 2.4

Content-addressed Nix

  • @thufschmitt fixed the github action that was used to keep an up-to-date nixpkgs fork to feed the test hydra instance. This also showed that the hydra was broken (because of it having two uncompatible hydra and Nix versions). Thankfully, this is now fixed.
  • @thufschmitt also opened a fix to allow fearlessly building the same CA derivation several times in parallel (#5030) and another one to fix a couple of quirks with remote building (#5022))


  • @infinisil opened a nixpkgs pull-request to remove (and eventually forbid) misleading default arguments in the package definitions (#131271);
  • @thufschmitt tried (and partially failed) to make the doc generation process nicer (#5023 and #5055);
  • @thufschmitt fixed an issue he created a few weeks ago that was causing a lot of nixos-install failures (#5053 and #126141);
  • @edolstra allowed Nix to use a different store for the evaluation and the build, allowing for a whole range of new use-cases (#5048). The same PR also made nix copy and nix-copy-closure much faster in some cases;
  • @edolstra made nix develop work with chrooted stores (#5057);
  • @thufschmitt worked on the Nix test infrastrucure to both run all the tests with the daemon and use the daemon from master branch (to ensure backwards-compatibility) (#5058 and #5059).