lix/src
Eelco Dolstra 6644b6099b
Add flake evaluation cache
This exploits the hermetic nature of flake evaluation to speed up
repeated evaluations of a flake output attribute.

For example (doing 'nix build' on an already present package):

  $ time nix build nixpkgs:firefox

  real    0m1.497s
  user    0m1.160s
  sys     0m0.139s

  $ time nix build nixpkgs:firefox

  real    0m0.052s
  user    0m0.038s
  sys     0m0.007s

The cache is ~/.cache/nix/eval-cache-v1.sqlite, which has entries like

  INSERT INTO Attributes VALUES(
    X'92a907d4efe933af2a46959b082cdff176aa5bfeb47a98fabd234809a67ab195',
    'packages.firefox',
    1,
    '/nix/store/pbalzf8x19hckr8cwdv62rd6g0lqgc38-firefox-67.0.drv /nix/store/g6q0gx0v6xvdnizp8lrcw7c4gdkzana0-firefox-67.0 out');

where the hash 92a9... is a fingerprint over the flake store path and
the contents of the lockfile. Because flakes are evaluated in pure
mode, this uniquely identifies the evaluation result.
2019-06-07 22:25:48 +02:00
..
build-remote canBuildLocally: check for features 2019-03-06 05:03:25 +00:00
cpptoml bump cpptoml to v0.1.1 2019-05-29 17:01:39 +08:00
libexpr Add flake evaluation cache 2019-06-07 22:25:48 +02:00
libmain pkg-config files: Use c++17 2019-03-14 14:11:12 +01:00
libstore Add flake evaluation cache 2019-06-07 22:25:48 +02:00
libutil Get last commit time of github flakes 2019-05-29 10:10:40 +02:00
nix Add flake evaluation cache 2019-06-07 22:25:48 +02:00
nix-build Merge remote-tracking branch 'origin/master' into flakes 2019-05-08 14:30:27 +02:00
nix-channel Refactor downloadCached() interface 2019-05-22 23:36:29 +02:00
nix-collect-garbage Merge all nix-* binaries into nix 2018-10-26 12:54:00 +02:00
nix-copy-closure Merge all nix-* binaries into nix 2018-10-26 12:54:00 +02:00
nix-daemon findRoots(): Don't censor for trusted users 2019-03-14 13:53:34 +01:00
nix-env Merge all nix-* binaries into nix 2018-10-26 12:54:00 +02:00
nix-instantiate Merge all nix-* binaries into nix 2018-10-26 12:54:00 +02:00
nix-prefetch-url nix-prefetch-url: Stop progress bar before printing results 2018-11-09 10:34:12 +01:00
nix-store nix-store --gc --print-roots: Sort output 2019-03-14 13:59:10 +01:00
nlohmann Make flake input fetching lazy 2019-06-04 19:17:03 +02:00
resolve-system-dependencies Remove mentions of libformat, it no longer exists 2019-01-05 14:31:29 -05:00