aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-03-18Fix some error kind mismatchesGuillaume Maudoux
2022-03-18fixup! Merge remote-tracking branch 'origin/master' into coerce-stringGuillaume Maudoux
2022-03-18Merge remote-tracking branch 'origin/master' into coerce-stringGuillaume Maudoux
2022-03-18Revert extra colon at end os stringsGuillaume Maudoux
2022-03-18Refactor to use more traces and less string manipulationsGuillaume Maudoux
2022-03-17Merge pull request #6277 from thufschmitt/ca/nix-build-dry-runEelco Dolstra
Fix `nix build --dry-run` with CA derivations
2022-03-17Merge branch 'avoid-quadratic-gc' of https://github.com/trofi/nixEelco Dolstra
2022-03-17gc: don't visit implicit referrers on garbage collectionSergei Trofimovich
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-17Merge pull request #6270 from Artturin/stdinevalThéophane Hufschmitt
nix: allow using --file - to read from stdin
2022-03-17Fix `nix build --dry-run` with CA derivationsThéophane Hufschmitt
Don’t try and assume that we know the output paths when we’ve just built with `--dry-run`. Instead make `--dry-run` follow a different code path that won’t assume the knowledge of the output paths at all. Fix #6275
2022-03-17Merge pull request #6242 from ncfavier/print-output-namesThéophane Hufschmitt
nix-env: always print output names in JSON and XML
2022-03-16Add some tests for `nix-env -q --json`Théophane Hufschmitt
2022-03-16nix-env: print a final newline after JSONNaïm Favier
2022-03-16nix-env: always print output names in JSON and XMLNaïm Favier
The current `--out-path` flag has two disadvantages when one is only concerned with querying the names of outputs: - it requires evaluating every output's `outPath`, which takes significantly more resources and runs into more failures - it destroys the information of the order of outputs so we can't tell which one is the main output This patch makes the output names always present (replacing paths with `null` in JSON if `--out-path` isn't given), and adds an `outputName` field.
2022-03-16Merge pull request #6267 from nomeata/patch-1Théophane Hufschmitt
distributed-builds.md: fixing typo of the most minor sort
2022-03-16add tests for nix eval and nix-instantiateArtturin
2022-03-16nix: allow using --file - to read from stdinArtturin
2022-03-16distributed-builds.md: fixing typo of the most minor sortJoachim Breitner
2022-03-16Merge pull request #6245 from trofi/fix-nix-store-gc-limit-auto-optimise-storeEelco Dolstra
nix store gc: account for auto-optimised store
2022-03-16Merge pull request #6264 from thufschmitt/fix-32bits-testsEelco Dolstra
Fix the tests on 32bits machines
2022-03-16Fix the date in the comment of fetchPath’s testThéophane Hufschmitt
Co-authored-by: pennae <82953136+pennae@users.noreply.github.com>
2022-03-15Merge pull request #6229 from obsidiansystems/refactor-hash-moduloThéophane Hufschmitt
Overhaul derivation hash modulo somewhat
2022-03-15Fix the tests on 32bits machinesregnat
year 2222 is too much for a 32 bit timestamp. So replace it by something smaller
2022-03-15Merge pull request #6119 from Ma27/path-mtimeThéophane Hufschmitt
libfetchers/path: set `lastModified` to path's mtime
2022-03-15Implement simple test for `path`-fetcher setting a correct `lastModifiedDate`Maximilian Bosch
Co-authored-by: Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com>
2022-03-15libfetchers: remove obsolete filesystem #includeMaximilian Bosch
2022-03-15libfetchers/path: set `lastModified` to path's mtimeMaximilian Bosch
When importing e.g. a local `nixpkgs` in a flake to test a change like { inputs.nixpkgs.url = path:/home/ma27/Projects/nixpkgs; outputs = /* ... */ } then the input is missing a `lastModified`-field that's e.g. used in `nixpkgs.lib.nixosSystem`. Due to the missing `lastMoified`-field, the mtime is set to 19700101: result -> /nix/store/b7dg1lmmsill2rsgyv2w7b6cnmixkvc1-nixos-system-nixos-22.05.19700101.dirty With this change, the `path`-fetcher now sets a `lastModified` attribute to the `mtime` just like it's the case in the `tarball`-fetcher already. When building NixOS systems with `nixpkgs` being a `path`-input and this patch, the output-path now looks like this: result -> /nix/store/ld2qf9c1s98dxmiwcaq5vn9k5ylzrm1s-nixos-system-nixos-22.05.20220217.dirty
2022-03-14Merge pull request #6244 from Artturin/nixenvbettermessageEelco Dolstra
nix-env: Add a suggestion for when there's a name collision in channels
2022-03-14Merge pull request #6220 from obsidiansystems/log-storeThéophane Hufschmitt
Factor out a `LogStore` interface
2022-03-14Merge pull request #6248 from thkoch2001/patch-1Eelco Dolstra
Add documentation= entry to systemd unit file
2022-03-13Add documentation= entry to systemd unit filethkoch2001
Closes: #6246
2022-03-13nix store gc: account for auto-optimised storeSergei Trofimovich
Before the change on a system with `auto-optimise-store = true`: $ nix store gc --verbose --max 1 deleted all the paths instead of one path (we requested 1 byte limit). It happens because every file in `auto-optimise-store = true` has at least 2 links: file itself and a link in /nix/store/.links/ directory. The change conservatively assumes that any file that has one (as before) or two links (assume auto-potimise mode) will free space. Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2022-03-13nix-env: Add a suggestion for when there's a name collision in channelsArtturin
help new users find a solution to their problem ./result/bin/nix-env -qa hello warning: name collision in input Nix expressions, skipping '/home/artturin/.nix-defexpr/channels_root/master' suggestion: remove 'master' from either the root channels or the user channels hello-2.12 hello-2.12
2022-03-11Reduce variants for derivation hash moduloJohn Ericson
This changes was taken from dynamic derivation (#4628). It` somewhat undoes the refactors I first did for floating CA derivations, as the benefit of hindsight + requirements of dynamic derivations made me reconsider some things. They aren't to consequential, but I figured they might be good to land first, before the more profound changes @thufschmitt has in the works.
2022-03-11Merge pull request #6230 from obsidiansystems/nix-build-derived-pathEelco Dolstra
Desugar `StorePathWithOutputs` in nix-build implementation
2022-03-11Desugar `StorePathWithOutputs` in nix-build implementationJohn Ericson
`DerivedPath` has replaced `StorePathWithOutputs` internally, so shrinking the usage of `StorePathWithOutputs` to just the boundary is good.
2022-03-11Deduplicate the Store downcasting with a templateJohn Ericson
2022-03-11Factor out a `LogStore` interfaceJohn Ericson
Continue progress on #5729. Just as I hoped, this uncovered an issue: the daemon protocol is missing a way to query build logs. This doesn't effect `unix://`, but does effect `ssh://`. A FIXME is left for this, so we come back to it later.
2022-03-11`GcStore::resolve` should print the URIJohn Ericson
2022-03-11Rename `requireGcStore` to `GcStore::require`John Ericson
I should have done this to begin with. This will be nicer once more Store sub-interfaces exist too, to illustrate the pattern.
2022-03-11Merge remote-tracking branch 'origin/eval-suggestions'Eelco Dolstra
2022-03-11Merge pull request #5865 from pennae/memory-friendlinessEelco Dolstra
be more memory friendly
2022-03-11StyleEelco Dolstra
2022-03-11Merge pull request #5758 from mschwaig/fix-git-workspace-dirty-detectionThéophane Hufschmitt
git fetcher: fix detection of dirty git workspaces
2022-03-09BuildResult: Remove unused drvPath fieldEelco Dolstra
2022-03-09Merge pull request #6221 from NixOS/build-paths-with-resultsEelco Dolstra
Add Store::buildPathsWithResults()
2022-03-09BuildResult: Use DerivedPathEelco Dolstra
2022-03-09add HAVE_BOEHMGC guards to batched allocation functionspennae
2022-03-09make Finally more localpennae
no need for function<> with c++17 deduction. this saves allocations and virtual calls, but has the same semantics otherwise. not going through function has the side effect of giving compilers more insight into the cleanup code, so we need a few local warning disables.
2022-03-08make Pos smallerpennae
reduces peak hep memory use on eval of our test system from 264.4MB to 242.3MB, possibly also a slight performance boost. theoretically memory use could be cut down by another eight bytes per Pos on average by turning it into a tuple containing an index into a global base position table with row and column offsets, but that doesn't seem worth the effort at this point.