aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/local-store.cc
AgeCommit message (Collapse)Author
2020-07-23Merge remote-tracking branch 'upstream/master' into misc-caJohn 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-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-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 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-11Merge remote-tracking branch 'upstream/master' into ↵John Ericson
optional-derivation-output-storepath
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-06-26Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2020-06-24Add a way to get all the outputs of a derivation with their labelregnat
Generalize `queryDerivationOutputNames` and `queryDerivationOutputs` by adding a `queryDerivationOutputMap` that returns the map `outputName=>outputPath` (not that this is not equivalent to merging the results of `queryDerivationOutputs` and `queryDerivationOutputNames` as sets don't preserve the order, so we would end up with an incorrect mapping). squash! Add a way to get all the outputs of a derivation with their label Rename StorePathMap to OutputPathMap
2020-06-24Merge remote-tracking branch 'upstream/master' into ca-drvJohn Ericson
2020-06-21Merge remote-tracking branch 'upstream/master' into ca-drvJohn Ericson
2020-06-21Merge remote-tracking branch 'upstream/master' into ↵John Ericson
multi-output-hashDerivationModulo
2020-06-19Merge remote-tracking branch 'upstream/master' into no-hash-type-unknownJohn Ericson
2020-06-19More designated initializersJohn Ericson
2020-06-19Merge remote-tracking branch 'me/no-stringly-typed-derivation-output' into ↵John Ericson
validPathInfo-ca-proper-datatype
2020-06-18Merge branch 'validPathInfo-temp' into validPathInfo-ca-proper-datatypeJohn Ericson
2020-06-18Merge branch 'no-hash-type-unknown' into validPathInfo-tempJohn Ericson
2020-06-18Revert the `enum struct` changeJohn Ericson
Not a regular git revert as there have been many merges and things.
2020-06-18Merge branch 'enum-class' into no-hash-type-unknownJohn Ericson
2020-06-18Merge remote-tracking branch 'upstream/master' into enum-classJohn Ericson
2020-06-17Merge remote-tracking branch 'origin/master' into flakesEelco Dolstra
2020-06-17Merge remote-tracking branch 'upstream/master' into ↵John Ericson
no-stringly-typed-derivation-output
2020-06-17Merge remote-tracking branch 'upstream/master' into ↵John Ericson
multi-output-hashDerivationModulo
2020-06-17Merge remote-tracking branch 'upstream/master' into ca-drvJohn Ericson
2020-06-16Remove StorePath::clone() and related functionsEelco Dolstra
2020-06-16StorePath: Rewrite in C++Eelco Dolstra
On nix-env -qa -f '<nixpkgs>', this reduces maximum RSS by 20970 KiB and runtime by 0.8%. This is mostly because we're not parsing the hash part as a hash anymore (just validating that it consists of base-32 characters). Also, replace storePathToHash() by StorePath::hashPart().
2020-06-15Remove trailing whitespaceEelco Dolstra
2020-06-15Merge branch 'errors-phase-2' of https://github.com/bburdette/nixEelco Dolstra
2020-06-12Add Store::readDerivation() convenience functionEelco Dolstra
2020-06-12Remove Store::queryDerivationOutputNames()Eelco Dolstra
This function was used in only one place, where it could easily be replaced by readDerivation() since it's not performance-critical. (This function appears to have been modelled after queryDerivationOutputs(), which exists only to make the garbage collector faster.)