lix/src
Sergei Trofimovich d58453f72e gc: don't visit implicit referrers on garbage collection
Before the change garbage collector was not considering
`.drv` and outputs as alive even if configuration says otherwise.
As a result `nix store gc --dry-run` could visit (and parse)
`.drv` files multiple times (worst case it's quadratic).

It happens because `alive` set was populating only runtime closure
without regard for actual configuration. The change fixes it.

Benchmark: my system has about 139MB, 40K `.drv` files.

Performance before the change:

    $ time nix store gc --dry-run
    real    4m22,148s

Performance after the change:

    $ time nix store gc --dry-run
    real    0m14,178s
2022-03-17 18:47:29 +00:00
..
build-remote Move BuildResult defintion to its own header 2022-03-01 19:43:07 +00:00
libcmd BuildResult: Use DerivedPath 2022-03-09 12:25:35 +01:00
libexpr Reduce variants for derivation hash modulo 2022-03-11 21:20:37 +00:00
libfetchers libfetchers: remove obsolete filesystem #include 2022-03-15 12:32:11 +01:00
libmain Factor out a GcStore interface 2022-03-03 19:01:25 +00:00
libstore gc: don't visit implicit referrers on garbage collection 2022-03-17 18:47:29 +00:00
libutil Merge pull request #6245 from trofi/fix-nix-store-gc-limit-auto-optimise-store 2022-03-16 09:19:57 +01:00
nix Merge pull request #6229 from obsidiansystems/refactor-hash-modulo 2022-03-15 21:23:44 +01:00
nix-build Desugar StorePathWithOutputs in nix-build implementation 2022-03-11 20:50:52 +00:00
nix-channel Fix segfault in headerCallback() 2022-03-03 11:11:16 +01:00
nix-collect-garbage Deduplicate the Store downcasting with a template 2022-03-11 13:32:33 +00:00
nix-copy-closure copyPaths: Pass store by reference 2021-07-22 09:59:51 +02:00
nix-env nix-env: Add a suggestion for when there's a name collision in channels 2022-03-13 00:24:46 +02:00
nix-instantiate Add EvalState::coerceToStorePath() helper 2022-03-02 23:58:58 +01:00
nix-store Deduplicate the Store downcasting with a template 2022-03-11 13:32:33 +00:00
resolve-system-dependencies Fix macOS build 2022-02-21 17:14:22 +01:00
toml11 Replace cpptoml with toml11 2021-12-17 22:03:33 +01:00