aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2020-07-29Merge pull request #3877 from matthewbauer/develop-continuous-regexEelco Dolstra
Set regex_constants::match_continuous for quicker search in nix develop
2020-07-29Set regex_constants::match_continuous for quicker searchMatthew Bauer
match_continuous limits the search to the current start position, instead of searching the entire file. On libc++, this improves performance dramatically: $ time /nix/store/70ai68dfm6xbzwn26j5n4li9di52ylia-nix-3.0pre20200728_c159f48/bin/nix print-dev-env >/dev/null /nix/store/70ai68dfm6xbzwn26j5n4li9di52ylia-nix-3.0pre20200728_c159f48/bin/ni 2.39s user 0.19s system 64% cpu 4.032 total $ time /nix/store/cwjfxxlp83zln4mfyy1d2dbsx7f6s962-nix-3.0pre20200728_dirty/bin/nix print-dev-env >/dev/null /nix/store/cwjfxxlp83zln4mfyy1d2dbsx7f6s962-nix-3.0pre20200728_dirty/bin/nix 0.09s user 0.05s system 65% cpu 0.204 total Fixes #3874
2020-07-29Fix RemoteStore::addToStore() latencyEelco Dolstra
Since 6185d25e523a3cd223dd6f6aca10cf6ff15b4823, this was very latency-bound since it required a round-trip for every 32 KiB. So for example copying a 514 MiB closure over a virtual ethernet device with a articial delay of just 1 ms took 343s. Now it takes 2.7s. Fixes #3372.
2020-07-29CleanupEelco Dolstra
2020-07-28Merge branch 'ca-drv' of github.com:Ericson2314/nix into misc-caJohn Ericson
2020-07-28Restore backwards-compat for current `builtins.fetchGit`Maximilian Bosch
If a repo is dirty, it used to return a `rev` object with an "empty" sha1 (0000000000000000000000000000000000000000). Please note that this only applies for `builtins.fetchGit` and *not* for `builtins.fetchTree{ type = "git"; }`.
2020-07-28Use assert(false) instead of abort()Carlo Nucera
2020-07-28Merge branch 'master' of github.com:NixOS/nix into ca-drvCarlo Nucera
2020-07-28Merge branch 'misc-ca' of github.com:obsidiansystems/nix into ↵Carlo Nucera
new-interface-for-path-pathOpt
2020-07-28Use the new interfaceCarlo Nucera
2020-07-28Offer a safer interface for pathOptCarlo Nucera
The new interface we offer provides a way of getting all the DerivationOutputs with the storePaths directly, based on the observation that it's the most common usecase.
2020-07-28Remove putBytesEelco Dolstra
istream->tellg() returns -1 so we can't get the number of bytes written. Fixes 'uploaded 's3://nix-cache/nar/00819r9lp5kajr6baxfw5dhhc0cx8ndxaz43qmd2f0gn1hk1ynlp.nar.xz' (-1 bytes) in 11620 ms' messages.
2020-07-28Merge legacy `fetchGit`-builtin with the generic `fetchTree`-functionMaximilian Bosch
The original idea was to implement a git-fetcher in Nix's core that supports content hashes[1]. In #3549[2] it has been suggested to actually use `fetchTree` for this since it's a fairly generic wrapper over the new fetcher-API[3] and already supports content-hashes. This patch implements a new git-fetcher based on `fetchTree` by incorporating the following changes: * Removed the original `fetchGit`-implementation and replaced it with an alias on the `fetchTree` implementation. * Ensured that the `git`-fetcher from `libfetchers` always computes a content-hash and returns an "empty" revision on dirty trees (the latter one is needed to retain backwards-compatibility). * The hash-mismatch error in the fetcher-API exits with code 102 as it usually happens whenever a hash-mismatch is detected by Nix. * Removed the `flakes`-feature-flag: I didn't see a reason why this API is so tightly coupled to the flakes-API and at least `fetchGit` should remain usable without any feature-flags. * It's only possible to specify a `narHash` for a `git`-tree if either a `ref` or a `rev` is given[4]. * It's now possible to specify an URL without a protocol. If it's missing, `file://` is automatically added as it was the case in the original `fetchGit`-implementation. [1] https://github.com/NixOS/nix/pull/3216 [2] https://github.com/NixOS/nix/pull/3549#issuecomment-625194383 [3] https://github.com/NixOS/nix/pull/3459 [4] https://github.com/NixOS/nix/pull/3216#issuecomment-553956703
2020-07-27Abstract out topo sorting logicJohn Ericson
2020-07-27Require `ca-derivations` everywhere we create a CA derivationJohn Ericson
"create" as in read one in from a serialized form, or build one from scratch in memory.
2020-07-27Merge branch 'misc-ca' of github.com:obsidiansystems/nix into ↵John Ericson
derivation-primop-floating-output
2020-07-27Merge branch 'ca-derivation-data-types' of github.com:obsidiansystems/nix ↵John Ericson
into misc-ca
2020-07-27Merge remote-tracking branch 'upstream/master' into ca-derivation-data-typesJohn Ericson
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 branch 'ca-derivation-data-types' of github.com:obsidiansystems/nix ↵John Ericson
into misc-ca
2020-07-27Merge branch 'optional-derivation-output-storepath' into ↵John Ericson
ca-derivation-data-types
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-24printVersion(): Show system typesEelco Dolstra
2020-07-24createUnixDomainSocket(): Fix off-by-one error in copying the socket pathEelco Dolstra
Reported by Kane York.
2020-07-23Merge branch 'misc-ca' of github.com:obsidiansystems/nix into ↵John Ericson
derivation-primop-floating-output
2020-07-23Merge remote-tracking branch 'upstream/master' into misc-caJohn Ericson
2020-07-23Make `Buildable` a `std::variant`John Ericson
I think this better captures the intent of what's going on: we either have an opaque store path, or a drv path with some outputs. Having this structure will also help us support CA derivations: we'll have to allow the outpath paths to be optional, so the structure we gain now makes up for the structure we loose then.
2020-07-23Merge branch 'misc-ca' of github.com:obsidiansystems/nix into ↵John Ericson
derivation-primop-floating-output
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-23Get rid of `basicDerivation::findOutput`John Ericson
It's a tiny function which is: - hardly worth abstrating over, and also only used once. - doesn't work once we get CA drvs I rewrote the one callsite to be forwards compatable with CA derivations, and also potentially more performant: instead of reading in the derivation it can ust consult the SQLite DB in the common case.
2020-07-23Save changes made by "nix registry pin" to user registryFabian Möller
2020-07-22Parse CA derivations using new output variantsJohn Ericson
We no longer need `ParsedDerivation` because everything libstore needs to know about is in the `BasicDerivation` proper.
2020-07-22Separate concerns in `scanForReferences` with TeeSinkJohn Ericson
This also will make it easier to use a `HashModuloSink` instead for CA derivations.
2020-07-21Merge pull request #3736 from ↵Eelco Dolstra
obsidiansystems/allow-relative-paths-in-store-option Allow relative paths in --store option
2020-07-21Merge pull request #3714 from obsidiansystems/add-body-to-network-errorsEelco Dolstra
Add response body to network errors
2020-07-21Change logic for deciding what is a relative path for the local storeJohn Ericson
The was Eelco's prefered logic, and it looks good to me!
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 add-body-to-network-errorsJohn Ericson
2020-07-21Update src/libstore/build.ccJohn Ericson
2020-07-21Merge remote-tracking branch 'upstream/master' into better-ca-parse-errorsJohn Ericson
2020-07-21Merge branch 'fix-and-document-addToStoreSlow' of ↵John Ericson
github.com:obsidiansystems/nix into ca-derivation-data-types
2020-07-21Merge branch 'fix-and-document-addToStoreSlow' of ↵John Ericson
github.com:obsidiansystems/nix into from-dump-stream
2020-07-21Merge branch 'fix-and-document-addToStoreSlow' of ↵John Ericson
github.com:obsidiansystems/nix into misc-ca
2020-07-20Correct bug, thoroughly document addToStoreSlowCarlo Nucera
2020-07-20Use heuristics to decide when to show the responseCarlo Nucera
Due to https://github.com/NixOS/nix/issues/3841 we don't know how print different messages for different verbosity levels.
2020-07-20Add another Unimplemented caseCarlo Nucera
2020-07-20Merge branch 'ca-derivation-data-types' of github.com:obsidiansystems/nix ↵Carlo Nucera
into misc-ca