Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
Always good to have :)
|
|
Follow-up from #5969
Fix #5982
|
|
Fixes
$ nix-instantiate --parse -E 'x: with x; _'
(x: (with x; __curPos))
|
|
|
|
Make `nix search` highlight all regexes and matches
|
|
tests: skip flake search test if no git is present
|
|
Fix segfault or stack overflow caused by large derivation fields
|
|
|
|
Make `nix why-depends` quieter by default
|
|
|
|
This removes a dynamic stack allocation, making the derivation
unparsing logic robust against overflows when large strings are
added to a derivation.
Overflow behavior depends on the platform and stack configuration.
For instance, x86_64-linux/glibc behaves as (somewhat) expected:
$ (ulimit -s 20000; nix-instantiate tests/lang/eval-okay-big-derivation-attr.nix)
error: stack overflow (possible infinite recursion)
$ (ulimit -s 40000; nix-instantiate tests/lang/eval-okay-big-derivation-attr.nix)
error: expression does not evaluate to a derivation (or a set or list of those)
However, on aarch64-darwin:
$ nix-instantiate big-attr.nix ~
zsh: segmentation fault nix-instantiate big-attr.nix
This indicates a slight flaw in the single stack protection page
approach that is not encountered with normal stack frames.
|
|
Unless `--precise` is passed, make `nix why-depends` only show the
dependencies between the store paths, without introspecting them to
find the actual references.
This also makes it ~3x faster
|
|
|
|
|
|
flakes: search up to git or filesystem boundary
|
|
|
|
|
|
Make --repair-path also repair corrupt optimised links
|
|
There already existed a smoke test for the link content length,
but it appears that there exists some corruptions pernicious enough
to replace the file content with zeros, and keeping the same length.
--repair-path now goes as far as checking the content of the link,
making it true to its name and actually repairing the path for such
coruption cases.
|
|
|
|
|
|
allow paths in flake local options
|
|
|
|
nixpkgs can save a good bit of eval memory with this primop. zipAttrsWith is
used quite a bit around nixpkgs (eg in the form of recursiveUpdate), but the
most costly application for this primop is in the module system. it improves
the implementation of zipAttrsWith from nixpkgs by not checking an attribute
multiple times if it occurs more than once in the input list, allocates less
values and set elements, and just avoids many a temporary object in general.
nixpkgs has a more generic version of this operation, zipAttrsWithNames, but
this version is only used once so isn't suitable for being the base of a new
primop. if it were to be used more we should add a second primop instead.
|
|
flake.cc: computeLocks: Only verify overrides when they could change
|
|
|
|
When we check for disappeared overrides, we can get "false positives"
for follows and overrides which are defined in the dependencies of the
flake we are locking, since they are not parsed by
parseFlakeInputs. However, at that point we already know that the
overrides couldn't have possible been changed if the input itself
hasn't changed (since we check that oldLock->originalRef == *input.ref
for the input's parent). So, to prevent this, only perform this check
when it was possible that the flake changed (e.g. the flake we're
locking, or a new input, or the input has changed and mustRefetch ==
true).
|
|
|
|
Follow-up from https://github.com/NixOS/nix/pull/5807 to fix https://github.com/NixOS/nix/pull/5807#issuecomment-1000135394
|
|
Rewrite the string taken by the IFD-like primops to contain the actual
output paths of the derivations rather than the placeholders
Fix #5805
|
|
nix-channel: use nix-env -i --remove-all to upgrade
|
|
Fix #5505
|
|
Make sure that `nix-channel --update` won’t accidentaly remove one
|
|
|
|
flakes: fix boolean and int nixConfig values
|
|
|
|
|
|
|
|
When a variable is assigned in the REPL, make sure to remove any possible reference to the old one so that we correctly pick the new one afterwards
Fix #5706
|
|
|
|
Add a :log command that shows logs for a derivation.
Closes https://github.com/NixOS/nix/issues/3504
Co-authored-by: Taeer Bar-Yam <taeer@bar-yam.me>
|
|
While parsing a flakeref, upon not finding a flake.nix, search upwards
until git or filesystem boundary.
|
|
Previously, when we were attempting to reuse the old lockfile
information in the computeLocks function, we have passed the parent of
the current input to the next computeLocks call. This was incorrect,
since the follows are resolved relative to the parent. This caused
issues when we tried to reuse oldLock but couldn't for some
reason (read: mustRefetch is true), in that case the follows were
resolved incorrectly.
Fix this by passing the correct parent, and adding some tests to
prevent this particular regression from happening again.
Closes https://github.com/NixOS/nix/issues/5697
|
|
|
|
Fix #5259
|
|
If we’re in pure eval mode, then tell that in the error message rather
than (wrongly) speaking about restricted mode.
Fix https://github.com/NixOS/nix/issues/5611
|
|
Makes lists comparable using lexicographic comparison.
Increments builtins.langVersion in order for this change to be
detectable
|
|
The eventual PATH entry needs the `.../bin` or we will not use the right
daemon.
|