A build graph that rolls dice
Summary
An in-depth look at dynamic derivations in the Nix build system, reframing how the build graph is constructed from static to progressively defined. The post contrasts applicative and monadic approaches, showing how dynamic derivations push binding decisions into the scheduler and enable in-progress graph growth. It includes concrete examples and notes challenges around introspecting dynamic graphs with dry-run tools.