Incorrect. There is no --pure
flag for nix build
and friends or nix-build
and (most) friends.
What you may be thinking of is either
--pure
fornix-shell
which only clears some envvars, and is only for development purposes obviously sincenix-build
doesn’t have this flag- the
pure-eval
setting which only disables thecurrentSystem
andcurrentTime
builtins, and restricts network access (the latter of which the build env already does anyway…) - note that it still providesgetEnv
builtin and therefore presumably allows using channels (I didn’t test this, but<>
syntax reads fromNIX_PATH
so this is not really good enough IMO.)
If pure eval already existed I would’ve used it and never complained about flakes.
Unfortunately all the good features of nix are being bundled with the worst possible implementation of a lockfile spec.
EDIT: also, the nix team themselves are aware that pure-eval without flakes is a desirable feature, see these from over a year ago: 2023-09-25 Nix team meeting minutes #89 and Practical pure eval for paths in non-Flake CLIs · Issue #9329 · NixOS/nix · GitHub
Yes, you repeated what I said.
You wrote a whole essay about how I should not worry that they are unstable… when my points had nothing to do with that
Flakes are slow and broken by design, I already laid out exactly the issues with them earlier in the reply that I linked.
I don’t care if they are “experimental” or not, I care that they suck. I want the nix team to break flakes and make them better.
Unfortunately Eelco and detsys are the ones who actively blocked any improvements and said “no we want flakes to be stable yesterday” and so we continue to see no progress.