aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-03-08force-inline a few much-used functionspennae
these functions are called a whole lot, and they're all comparatively small. always inlining them gives ~0.7% performance boost on eval. before: Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello Time (mean ± σ): 6.935 s ± 0.052 s [User: 5.852 s, System: 0.853 s] Range (min … max): 6.808 s … 7.026 s 20 runs Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix Time (mean ± σ): 329.8 ms ± 2.7 ms [User: 299.0 ms, System: 30.8 ms] Range (min … max): 326.6 ms … 336.5 ms 20 runs Benchmark 3: nix flakes eval --raw --impure --file expr.nix Time (mean ± σ): 2.655 s ± 0.038 s [User: 2.364 s, System: 0.220 s] Range (min … max): 2.574 s … 2.737 s 20 runs after: Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello Time (mean ± σ): 6.912 s ± 0.036 s [User: 5.823 s, System: 0.856 s] Range (min … max): 6.849 s … 6.980 s 20 runs Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix Time (mean ± σ): 325.1 ms ± 2.5 ms [User: 293.2 ms, System: 31.8 ms] Range (min … max): 322.2 ms … 332.8 ms 20 runs Benchmark 3: nix flakes eval --raw --impure --file expr.nix Time (mean ± σ): 2.636 s ± 0.024 s [User: 2.352 s, System: 0.226 s] Range (min … max): 2.574 s … 2.681 s 20 runs
2022-03-08cache singleton Envs just like Valuespennae
vast majority of envs is this size. before: Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello Time (mean ± σ): 6.946 s ± 0.041 s [User: 5.875 s, System: 0.835 s] Range (min … max): 6.834 s … 7.005 s 20 runs Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix Time (mean ± σ): 330.3 ms ± 2.5 ms [User: 299.2 ms, System: 30.9 ms] Range (min … max): 327.5 ms … 337.7 ms 20 runs Benchmark 3: nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system' Time (mean ± σ): 2.671 s ± 0.035 s [User: 2.370 s, System: 0.232 s] Range (min … max): 2.597 s … 2.749 s 20 runs after: Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello Time (mean ± σ): 6.935 s ± 0.052 s [User: 5.852 s, System: 0.853 s] Range (min … max): 6.808 s … 7.026 s 20 runs Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix Time (mean ± σ): 329.8 ms ± 2.7 ms [User: 299.0 ms, System: 30.8 ms] Range (min … max): 326.6 ms … 336.5 ms 20 runs Benchmark 3: nix flakes eval --raw --impure --file expr.nix Time (mean ± σ): 2.655 s ± 0.038 s [User: 2.364 s, System: 0.220 s] Range (min … max): 2.574 s … 2.737 s 20 runs
2022-03-08remove GC_PTR_STORE_AND_DIRTYpennae
turns out it's only necessary for MANUAL_VDB, which nix doesn't use. omitting them gives a slight performance improvement on eval. before: Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello Time (mean ± σ): 6.988 s ± 0.061 s [User: 5.935 s, System: 0.845 s] Range (min … max): 6.865 s … 7.075 s 20 runs Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix Time (mean ± σ): 332.6 ms ± 3.9 ms [User: 299.6 ms, System: 32.9 ms] Range (min … max): 328.1 ms … 339.1 ms 20 runs Benchmark 3: nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system' Time (mean ± σ): 2.681 s ± 0.049 s [User: 2.382 s, System: 0.228 s] Range (min … max): 2.607 s … 2.776 s 20 runs after: Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello Time (mean ± σ): 6.946 s ± 0.041 s [User: 5.875 s, System: 0.835 s] Range (min … max): 6.834 s … 7.005 s 20 runs Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix Time (mean ± σ): 330.3 ms ± 2.5 ms [User: 299.2 ms, System: 30.9 ms] Range (min … max): 327.5 ms … 337.7 ms 20 runs Benchmark 3: nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system' Time (mean ± σ): 2.671 s ± 0.035 s [User: 2.370 s, System: 0.232 s] Range (min … max): 2.597 s … 2.749 s 20 runs
2022-03-03Fix segfault in headerCallback()Eelco Dolstra
https://hydra.nixos.org/build/168594664
2022-03-03Merge pull request #6198 from edolstra/coerce-store-pathEelco Dolstra
Add EvalState::coerceToStorePath() helper
2022-03-03Use C++11-style initializerEelco Dolstra
Co-authored-by: John Ericson <git@JohnEricson.me>
2022-03-02Add EvalState::coerceToStorePath() helperEelco Dolstra
This is useful whenever we want to evaluate something to a store path (e.g. in get-drvs.cc). Extracted from the lazy-trees branch (where we can require that a store path must come from a store source tree accessor).
2022-03-02Merge pull request #6197 from edolstra/nix-profile-caEelco Dolstra
nix profile: Support CA derivations
2022-03-02nix profile test: Restart daemonEelco Dolstra
Fixes nix-daemon: src/libstore/sqlite.cc:97: nix::SQLiteStmt::Use::Use(nix::SQLiteStmt&): Assertion `stmt.stmt' failed. which happens because the daemon doesn't properly handle the case where ca-derivations isn't enabled at daemon startup.
2022-03-02Remove obsolete todoEelco Dolstra
2022-03-02Silence kill outputEelco Dolstra
2022-03-02tests/common.sh.in: Add enableFeatures helperEelco Dolstra
2022-03-02mk/run_test.sh: Add missing backslashEelco Dolstra
2022-03-02nix profile: Add a test for non-flake packagesEelco Dolstra
2022-03-02nix profile: Support CA derivationsEelco Dolstra
2022-03-02Move installables-related operationsEelco Dolstra
2022-03-02Merge pull request #6194 from edolstra/nix-profileEelco Dolstra
Add basic tests for 'nix profile'
2022-03-02Add basic tests for 'nix profile'Eelco Dolstra
Fixes #6193.
2022-03-02Merge pull request #4345 from bjornfor/installer-configurable-uid-gidEelco Dolstra
installer: allow overriding nix user GID and UIDs
2022-03-02StyleEelco Dolstra
2022-03-02tests: Rename nix-profile.sh -> bash-profile.shEelco Dolstra
2022-03-02Remove stray debug lineEelco Dolstra
2022-03-02Merge pull request #6189 from obsidiansystems/build-result-headerEelco Dolstra
Move `BuildResult` defintion to its own header
2022-03-02Merge pull request #6190 from andersk/belEelco Dolstra
filterANSIEscapes: Ignore BEL character
2022-03-01filterANSIEscapes: Ignore BEL characterAnders Kaseorg
GCC is not as good at music as it seems to think it is. Fixes #4546. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2022-03-01Move `BuildResult` defintion to its own headerJohn Ericson
Just like we did for `ValidPathInfo` in d92d4f85a5c8a2a2385c084500a8b6bd54b54e6c.
2022-03-01installer: allow overriding nix user GID and UIDsBjørn Forsman
Needed to resolve conflict in case the default GID and UIDs are in use.
2022-03-01Merge pull request #6187 from thufschmitt/allow-the-darwin-tests-to-be-flakyEelco Dolstra
Acknowledge that the macOS tests are flaky
2022-03-01Acknowledge that the macOS tests are flakyregnat
Restart the tests (at most once) on `unexpected EOF` errors. This is truly ugly, but might prevent half of the CI runs to fail because of https://github.com/NixOS/nix/issues/3605
2022-03-01Merge pull request #6185 from hercules-ci/fetchTree-reuse-local-pathsEelco Dolstra
fetchTree: Use isValidPath, add comment
2022-03-01fetchTree: Use isValidPath, add commentRobert Hensing
2022-03-01fetch{url,Tarball}: Remove 'narHash' attributeEelco Dolstra
This was introduced in #6174. However fetch{url,Tarball} are legacy and we shouldn't have an undocumented attribute that does the same thing as one that already exists ('sha256').
2022-03-01Merge pull request #6183 from obsidiansystems/sort-configEelco Dolstra
Move some stuff from `Settings` to a new `FetchSettings`.
2022-03-01Merge pull request #6174 from hercules-ci/fetchTree-reuse-local-pathsThéophane Hufschmitt
fetchTree: Do not re-fetch paths already present + refactor
2022-03-01Move some stuff from `Settings` to a new `FetchSettings`.John Ericson
Starting work on #5638 The exact boundary between `FetchSettings` and `EvalSettings` is not clear to me, but that's fine. First lets clean out `libstore`, and then worry about what, if anything, should be the separation between those two.
2022-02-28Add EvalState::allowAndSetStorePathString helperRobert Hensing
This switches addPath from `printStorePath` to `toRealPath`.
2022-02-28fetchTree: Do not re-fetch paths already presentRobert Hensing
2022-02-28Merge pull request #6179 from NixOS/properly-start-the-daemon-in-testsThéophane Hufschmitt
tests: Fix the start of the daemon
2022-02-28tests: Fix the start of the daemonregnat
- Make sure that it starts even without the `nix-command` xp feature - Fail if it doesn’t manage to start This fixes a 30s wait for every test in `init.sh` as the daemon couldn’t start, but the code was just waiting 30s and continuing as if everything was all right.
2022-02-28Merge pull request #6178 from edolstra/fix-darwinEelco Dolstra
Fix Darwin build
2022-02-28Fix clang warningEelco Dolstra
2022-02-28Fix Darwin buildEelco Dolstra
Fixes #6169
2022-02-28Merge pull request #6072 from Ma27/fix-nix-why-depends-non-preciseThéophane Hufschmitt
nix/why-depends: fix output when not using `--precise`
2022-02-28Merge pull request #6123 from abathur/fix_6122Domen Kožar
install-darwin: fix mount permission edge-case
2022-02-25Remove std::string alias (for real this time)Eelco Dolstra
Also use std::string_view in a few more places.
2022-02-25xml-writer: Remove std aliasesEelco Dolstra
2022-02-25Merge pull request #6164 from kamadorueda/issue-5859Théophane Hufschmitt
refactor: remove verbose-build from docs
2022-02-25refactor: remove verbose-build from docsKevin Amado
- From what I see it is an implementation detail but is no longer configurable from the settings
2022-02-25ExprAttrs::show(): Show attrs in sorted orderEelco Dolstra
Issue #6160.
2022-02-24Merge pull request #6089 from edolstra/dot-defaultEelco Dolstra
Replace defaultBla.$system with bla.$system.default