Age | Commit message (Collapse) | Author |
|
|
|
|
|
use LOWDOWN_LIBS variable
|
|
flakes: document nixConfig option
|
|
fixes: #5931
|
|
canonPath: fix missing slash when resolving links
|
|
|
|
Fixes #6017
|
|
|
|
we'll retain the old coerceToString interface that returns a string, but callers
that don't need the returned value to outlive the Value it came from can save
copies by using the new interface instead. for values that weren't stringy we'll
pass a new buffer argument that'll be used for storage and shouldn't be
inspected.
|
|
once a string has been forced we already have dynamic storage allocated for it,
so we can easily reuse that storage instead of copying.
|
|
|
|
It’s totally valid to have entries in `NIX_PATH` that aren’t valid paths
(they can even be arbitrary urls or `channel:<channel-name>`).
Fix #5998 and #5980
|
|
|
|
nix store ping: Report Nix daemon version
|
|
Co-authored-by: Cole Helbling <cole.e.helbling@outlook.com>
|
|
Fixes #5952.
|
|
Fixes #5988.
|
|
Remove unused Rust stuff
|
|
Add try/catch to queryJSON for assertion and errors
|
|
In particular we were still compiling rust-ffi.cc even though we're
not using it.
|
|
Follow-up from #5969
Fix #5982
|
|
|
|
Stop-gap measure to fix #5975.
|
|
Fixes
$ nix-instantiate --parse -E 'x: with x; _'
(x: (with x; __curPos))
|
|
|
|
|
|
Make `nix search` highlight all regexes and matches
|
|
allocate a GC root value for the Value cache pointer
|
|
nix-shell: use clean rm, not any aliases/functions
|
|
Fix segfault or stack overflow caused by large derivation fields
|
|
|
|
|
|
keeping it as a simple data member means it won't be scanned by the GC, so
eventually the GC will collect a cache that is still referenced (resulting in
use-after-free of cache elements).
fixes #5962
|
|
|
|
The signature was also changed so the function now accepts a vector
instead of an iterator
|
|
If we want to be careful about hitting the stack protector page, we should use `-fstack-check` instead.
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
|
|
This no longer worked correctly because 'path' is uninitialised when
an exception occurs, leading to errors like
… while importing ''
at /nix/store/rrzz5b1pshvzh1437ac9nkl06br81lkv-source/flake.nix:352:13:
So move the adding of the error context into realisePath().
|
|
Add back `copyClosure` for plain `StorePath`s
|
|
Fix the build with nlohmann/json 3.10.4+
|
|
Make `nix why-depends` quieter by default
|
|
Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
|
|
This was removed in 2e199673a523fa81de31ffdd2a25976ce0814631 when
`copyPath` transitioned to use `RealisedPath`. But then in
e9848beca704d27a13e28b4403251725bd485bb2 we added it back just for
`realisedPath`.
I think it is a good utility function --- one can easily imagine it
becoming optimized in the future, and copying paths *violating* the
closure is a very niche feature.
So if we have `copyPaths` for both sorts of paths, I think we should
have `copyClosure` for both sorts too.
|
|
|
|
This has been unused since 170e86dff5724264e0d3d25b9af1bd42df6aec74
CC @thufschmitt
|
|
|
|
|
|
if we defer the duplicate argument check for lambda formals we can use more
efficient data structures for the formals set, and we can get rid of the
duplication of formals names to boot. instead of a list of formals we've seen
and a set of names we'll keep a vector instead and run a sort+dupcheck step
before moving the parsed formals into a newly created lambda. this improves
performance on search and rebuild by ~1%, pure parsing gains more (about 4%).
this does reorder lambda arguments in the xml output, but the output is still
stable. this shouldn't be a problem since argument order is not semantically
important anyway.
before
nix search --no-eval-cache --offline ../nixpkgs hello
Time (mean ± σ): 8.550 s ± 0.060 s [User: 6.470 s, System: 1.664 s]
Range (min … max): 8.435 s … 8.666 s 20 runs
nix eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
Time (mean ± σ): 346.7 ms ± 2.1 ms [User: 312.4 ms, System: 34.2 ms]
Range (min … max): 343.8 ms … 353.4 ms 20 runs
nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'
Time (mean ± σ): 2.720 s ± 0.031 s [User: 2.415 s, System: 0.231 s]
Range (min … max): 2.662 s … 2.780 s 20 runs
after
nix search --no-eval-cache --offline ../nixpkgs hello
Time (mean ± σ): 8.462 s ± 0.063 s [User: 6.398 s, System: 1.661 s]
Range (min … max): 8.339 s … 8.542 s 20 runs
nix eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
Time (mean ± σ): 329.1 ms ± 1.4 ms [User: 296.8 ms, System: 32.3 ms]
Range (min … max): 326.1 ms … 330.8 ms 20 runs
nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'
Time (mean ± σ): 2.687 s ± 0.035 s [User: 2.392 s, System: 0.228 s]
Range (min … max): 2.626 s … 2.754 s 20 runs
|
|
Although this will leave gaps in the stack, the performance impact
of those should be insignificant and we get a simpler solution
this way.
|
|
|