You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Or use the --wrap option for programs that call nix-shell internally.
$ cached-nix-shell --wrap stack build
Performance
$ time ./hello.py # first run; no cache used
cached-nix-shell: updating cache
Hello, World!
./hello.py 0.33s user 0.06s system 91% cpu 0.435 total
$ time ./hello.py
Hello, World!
./hello.py 0.02s user 0.01s system 97% cpu 0.029 total
Caching and cache invalidation
cached-nix-shell stores environment variables set up by nix-shell and reuses them on subsequent runs.
It traces which files are read by nix during an evaluation, and performs a proper cache invalidation if any of the used files are changed.
The cache is stored in ~/.cache/cached-nix-shell/.
The following situations are covered:
builtins.readFile is used
builtins.readDir is used
import ./file.nix is used
updating /etc/nix/nix.conf or ~/.config/nix/nix.conf
updating nix channels
updating $NIX_PATH environment variable
The following situations aren't handled by cached-nix-shell and may lead to staled cache:
builtins.fetchurl or other network builtins are used (e.g. in nixpkgs-mozilla)