by dmvinson on 5/26/2025, 10:37:39 PM
by cosmic_quanta on 5/26/2025, 10:21:41 PM
The discussion on the PR linked in this post, about upstreaming lazy trees to Nix proper, seems to indicate that some of the benefits also require changing the semantics of the Nix language.
I'm not familiar enough with Nix to understand, but it looks like the performance gains in the blog post might not all materialize to upstream users.
In any case, cool stuff
by pxc on 5/27/2025, 1:23:16 PM
I've been awaiting the completion of this branch for years!
I Installed Determinate Nix (via Nix-Darwin— I find it a bit annoying that their official Nix-Darwin module reverts Nix to non-declarative management) on my laptop in order to kick the tires.
May the lazy-trees-v2 branch soon be merged into mainline Nix as well. :)
Congrats to Eelco on getting this work into a state that he's ready to present to users. I hope testing goes well for DetSys users, including me!
by setheron on 5/27/2025, 3:09:33 PM
If you did flakes with impure does it avoid copying source into the store ?
I'm willing to add impurity especially about the system.
Having to define the systems feels unnecessary. Just define the targets for all systems and let me choose the one I want to build.
Coming across modules that forgot to add a particular system is frustrating.
Any other ways to circumvent this?
Lazy trees is a long awaited change for many, without it flakes are essentially unusable in monorepos. As a one-time Nix user, Flakes definitely don't seem like an ideal solution but the Nix community lets perfect be the enemy of better too often, and it has the largest following of all the solutions out there (niv being another). Given that, I hope lazy-trees and other improvements that make it actually usable get merged into Nix upstream.
If the NixOS/Nix maintainers don't like flakes/DetSys (which I think is somewhat valid!), they need to put forward a canonical way of pinning channels, otherwise there's not really an alternative standard for the community to build around. The usual answer of just use niv or some other esoteric solution that a subset of hardcore Nix users like isn't enough.