Tweag + Nix dev update #31

Hey Nixers :wave:t2:

After a slightly longer time period than ususal (because of some French public holidays), here are news from the Tweag Nix team.

Nix implementation

  • Eelco has recently been putting a significant amount of work to copy the flake sources more lazily to the store, progressing towards fixing an old issue (nix#6530). As a small but noticeable extra, this also makes it possible to patch flake inputs on the fly.

  • Eelco released Nix 2.9. A very cool item in the release notes that I didn’t include here (because although we’ve been indirectly involved in it, this is primarily @bburdette’s work, not ours) is the new –debugger flag.

  • @thufschmitt just merged an old PR by @pennae to make it possible to enable link-time-optimization in the Nix build, bringing a couple percents of extra speed.

  • @thufschmitt paired with @tomberek (from Flox) to fix a small but ugly display issue in nix flake show (nix#6532).

  • @thufschmitt also added the possibility to have plain files as flake inputs (nix#6548).

  • Eelco opened a draft pull-request implementing “configurable derivations”, solving part of the big “passing arguments to flakes” problem (nix#6583).

  • And like always (though it’s not always mentionned), lots of small bug fixes, PR reviews, discussions on various issues, etc.


  • @fricklerhandwerk secured an internal budget to bootstrap what is tentatively called The Nix Book, with the goal of creating a centralized learning resource and unifying community efforts around documentation. He also applied with the project for the Summer of Nix 2022 documentation stream.
  • Speaking of the summer of Nix, @mat and a few others have been interviewing the many candidates, and will hopefully be able to publish the final teams very soon.


  • infinisil wrote a nixpkgs function to get a nix-shell-like docker image, with the double advantage that it is more sandboxed than a plain nix-shell, and also doesn’t require Nix to run – making it potentially easier to distribute (nixpkgs#172736).

  • @djacu wrote a nifty hex-to-rgb utility function.


  • francois-caddet added a few of benchmarks for typechecking and merging (#705, #709, #712).
  • @steshaw fixed a couple small bugs (#703, #704).
  • @fuzzypixelz is starting an internship to work on improving performance. His first feat has been to avoid doing similar work again and again when concatenating arrays (#717).
  • yannham continued work on typechecking, and now that the specification is clearer, he is writing an RFC to provide context and motivations behind potential additions (#691).
  • yannham and @thufschmitt found some unexpected edge cases regarding contracts and merging, and yannham wrote a detailed issue about it (#710).
  • After considering many options and trying to have a common parser infrastructure for the interpreter, the formatter, and the LSP, @ErinvanderVeen decided that the best choice for now was to write a formatter directly from the parser generated by tree-sitter, which he has begun to do.

And that’s all, folks