aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/local-store.cc
AgeCommit message (Collapse)Author
2020-08-13Use `TeeSink` and `TeeSouce` in a few more placesJohn Ericson
2020-08-05Style fixEelco Dolstra
2020-08-05Make names more consistentJohn Ericson
2020-08-05Merge remote-tracking branch 'upstream/master' into misc-caJohn Ericson
2020-08-05Merge remote-tracking branch 'upstream/master' into misc-caJohn Ericson
2020-08-04Merge remote-tracking branch 'upstream/master' into better-ca-parse-errorsJohn Ericson
2020-08-03`addToStore` in terms of `addToStoreFromDump` is not local-store-specificJohn Ericson
2020-07-30Merge branch 'master' of github.com:NixOS/nix into better-ca-parse-errorsCarlo Nucera
2020-07-30Merge remote-tracking branch 'origin/master' into substitute-other-storedirMatthew Bauer
2020-07-27Merge branch 'ca-derivation-data-types' of github.com:obsidiansystems/nix ↵John Ericson
into misc-ca
2020-07-27Merge branch 'hash-always-has-type' of github.com:obsidiansystems/nix into ↵John Ericson
better-ca-parse-errors
2020-07-27Merge remote-tracking branch 'upstream/master' into hash-always-has-typeJohn Ericson
2020-07-27Merge remote-tracking branch 'upstream/master' into ↵John Ericson
optional-derivation-output-storepath
2020-07-27Merge remote-tracking branch 'upstream/master' into hash-always-has-typeJohn Ericson
2020-07-23Merge remote-tracking branch 'upstream/master' into misc-caJohn Ericson
2020-07-23Merge remote-tracking branch 'upstream/master' into better-ca-parse-errorsJohn Ericson
2020-07-21Update chunkSize to the suggested valueCarlo Nucera
This was a suggested course of action in a review in one of our earlier commits, https://github.com/NixOS/nix/pull/3801#discussion_r457557079
2020-07-21Merge remote-tracking branch 'upstream/master' into better-ca-parse-errorsJohn Ericson
2020-07-20Add another Unimplemented caseCarlo Nucera
2020-07-20Merge remote-tracking branch 'upstream/master' into from-dump-streamJohn Ericson
2020-07-17Revert "Don't anticipate multiple CA outputs for now"Carlo Nucera
This reverts commit 74b251b2f3d6414de051c8523011c0ee3c5ea154.
2020-07-17Merge branch 'ca-drv' of github.com:Ericson2314/nix into misc-caCarlo Nucera
2020-07-17Merge branch 'multi-output-hashDerivationModulo' of ↵Carlo Nucera
github.com:Ericson2314/nix into misc-ca
2020-07-16Merge branch 'master' of github.com:NixOS/nix into ↵Carlo Nucera
optional-derivation-output-storepath
2020-07-16Merge branch 'hash-always-has-type' of github.com:obsidiansystems/nix into ↵John Ericson
better-ca-parse-errors
2020-07-16Merge remote-tracking branch 'upstream/master' into hash-always-has-typeJohn Ericson
2020-07-16Fix bug in TeeSourceJohn Ericson
We use this to simplify `LocalStore::addToStoreFromDump`. Also, hope I fixed build error with old clang (used in Darwin CI).
2020-07-16Merge remote-tracking branch 'origin/flakes'Eelco Dolstra
2020-07-15Revert "LocalStore::addToStoreFromDump copy in chunks"John Ericson
This reverts commit 592851fb67cd15807109d6f65fb81f6af89af966. We don't need this extra feature anymore
2020-07-15Get rid of `LocalStore::addToStoreCommon`John Ericson
I got it to just become `LocalStore::addToStoreFromDump`, cleanly taking a store and then doing nothing too fancy with it. `LocalStore::addToStore(...Path...)` is now just a simple wrapper with a bare-bones sinkToSource of the right dump command.
2020-07-15Merge branch 'master' of github.com:NixOS/nix into hash-always-has-typeCarlo Nucera
2020-07-15Merge remote-tracking branch 'obsidian/fix-add-to-star-narhash' into ↵John Ericson
from-dump-stream
2020-07-15Revert "LocalStore::addToStore(srcPath): Handle the flat case"Eelco Dolstra
This reverts commit a2c27022e9afc394e08d34d349587c8903fc1a97. See addToStoreSlow(), we don't need to handle this case efficiently anymore. In fact, we can almost remove the method/hashAlgo arguments since the non-recursive and/or non-SHA256 are almost not used anymore.
2020-07-14Rename variable `nar` -> `dump` according to TODOJohn Ericson
2020-07-14Fix localhost::addToStore(...Path...)John Ericson
We were calculating the nar hash wrong when the file ingestion method was flat. I don't think there's anything we can do in that case but dump the file again, so that's what I do. As an optomization, we again could reuse the original dump for just the recursive and non-sha256 case, but I rather do that after this fix, and after my other PRs which deduplicate this code.
2020-07-14LocalStore::addToStoreFromDump copy in chunksJohn Ericson
Rather than copying byte-by-byte, we let the coroutine know how much data we would like it to send back to us.
2020-07-14Dedup `LocalStore::addToStore*`John Ericson
The downsides is that the coroutine has byte-by-byte loop transfer. Will fix that next.
2020-07-14Crudely make `addToStoreFromDump` take `Source` not stringJohn Ericson
I just as little beyond the type as possible, so the implementation changes this enables can be reviewed separately.
2020-07-14Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2020-07-13Remove 'accessor' from addToStore()Eelco Dolstra
This is only used by hydra-queue-runner and it's better to implement it there.
2020-07-13Merge remote-tracking branch 'upstream/master' into hash-always-has-typeJohn Ericson
2020-07-11Merge remote-tracking branch 'upstream/master' into ↵John Ericson
optional-derivation-output-storepath
2020-07-10Merge remote-tracking branch 'origin/master' into substitute-other-storedirMatthew Bauer
2020-07-09Merge branch 'master' of github.com:NixOS/nix into better-ca-parse-errorsJohn Ericson
2020-07-09LocalStore::addToStore(srcPath): Handle the flat caseEelco Dolstra
This helps nix-prefetch-url when using a local store.
2020-07-08Only store hash of fixed derivation outputMatthew Bauer
we don’t need a full storepath for a fixedoutput derivation. So just putting the ingestion method + the hash is sufficient.
2020-07-08CleanupEelco Dolstra
2020-07-08Make LocalStore::addToStore(srcPath) run in constant memoryEelco Dolstra
This reduces memory consumption of nix-instantiate \ -E 'with import <nixpkgs> {}; runCommand "foo" { src = ./blender; } "echo foo"' \ --option nar-buffer-size 10000 (where ./blender is a 1.1 GiB tree) from 1716 to 36 MiB, while still ensuring that we don't do any write I/O for small source paths (up to 'nar-buffer-size' bytes). The downside is that large paths are now always written to a temporary location in the store, even if they produce an already valid store path. Thus, adding large paths might be slower and run out of disk space. ¯\_(ツ)_/¯ Of course, you can always restore the old behaviour by setting 'nar-buffer-size' to a very high value.
2020-07-06Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2020-07-03Merge branch 'hash-always-has-type' of github.com:obsidiansystems/nix into ↵John Ericson
better-ca-parse-errors