Release 3.22.3 (2026-09-02)
- Based on upstream Nix 2.35.2.
Parallel evaluation performance improvements
We’re continuing to make performance improvements to parallel evaluation, in particular reducing contention on the Boehm-Demers-Weiser garbage collector’s global lock by making more use of per-thread freelists and by removing the use of uncollectable allocations in builtins.fromJSON.
PRs: DeterminateSystems/nix-src#608, DeterminateSystems/nix-src#609
Miscellaneous changes
- Update Nixpkgs by @edolstra in DeterminateSystems/nix-src#607
- doc: mention that flake metadata’s
Pathfield is absent with lazy-trees by @edolstra in DeterminateSystems/nix-src#620
Bug fixes
- Fix
dirattribute handling in nix-219-compat mode by @edolstra in DeterminateSystems/nix-src#604 - Update the schema file atomically by @edolstra in DeterminateSystems/nix-src#606
- nix copy: Don’t register temp roots if the remote doesn’t have AddTempRoots by @edolstra in DeterminateSystems/nix-src#610
- Fix crash when GC is interrupted by @edolstra in DeterminateSystems/nix-src#612
- Handle out-of-memory crashes better by @edolstra in DeterminateSystems/nix-src#603
- Fix forwarding netrc-file to the daemon by @edolstra in DeterminateSystems/nix-src#616
- Sync with upstream 2.35-maintenance by @edolstra in DeterminateSystems/nix-src#617
- Fix Ctrl-C handling when Sentry is enabled by @edolstra in DeterminateSystems/nix-src#618
- Eval cache: make the second evaluation hit the cache by @roberth in DeterminateSystems/nix-src#619
- Deduplicate
nix build --print-out-pathsoutput by @edolstra in DeterminateSystems/nix-src#622
Full Changelog: v3.22.2…v3.22.3