Age | Commit message (Collapse) | Author |
|
|
|
add zipAttrsWith primop
|
|
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
|
|
nix repl: fix --show-trace and add the ability to set trace display
|
|
Fix IFD with chroot store
|
|
docker.nix: set correct permissions on /tmp (fix #5851)
|
|
|
|
|
|
|
|
Sort attrs from tables in fromTOML
|
|
This was dropped in 10a8b5d for the migration from cpptoml to toml11 but
seems to be necessary for the attrsets to work correctly.
Fixes #5833
|
|
|
|
Text representation for errors should include the trace if
--show-trace is passed.
|
|
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).
|
|
Fix accidental O(n^2 * log n) performance in NixRepl::addAttrsToScope
|
|
Only sort once, after adding all of the attrs first. This reduces my
`nix repl '<nixpkgs>'` loading time from 1.07s to 103ms.
Fixes #5823
|
|
|
|
This makes sure that values parsed from TOML have a proper size. Using
e.g. `double` caused issues on i686 where the size of `double` (32bit)
was too small to accommodate some values.
|
|
Properly return false on `builtins.pathExists /someNonAllowedPath`
|
|
Follow-up from https://github.com/NixOS/nix/pull/5807 to fix https://github.com/NixOS/nix/pull/5807#issuecomment-1000135394
|
|
Remove CPU locking
|
|
Don't insert spaces when completing attribute paths
|
|
|
|
|
|
This was already accidentally disabled in ba87b08. It also no longer
appears to be beneficial, and in fact slow things down, e.g. when
evaluating a NixOS system configuration:
elapsed time: median = 3.8170 mean = 3.8202 stddev = 0.0195 min = 3.7894 max = 3.8600 [rejected, p=0.00000, Δ=0.36929±0.02513]
|
|
Make bash completion for 'nix' work in a devshell
|
|
|
|
|
|
Add cacert to /etc/ssl/certs in the docker image
|
|
Fixes #5797
|
|
Fix IFD with CA derivations
|
|
|
|
|
|
|
|
Rewrite the string taken by the IFD-like primops to contain the actual
output paths of the derivations rather than the placeholders
Fix #5805
|
|
|
|
small perf improvements
|
|
calling GC_malloc for each value is significantly more expensive than
allocating a bunch of values at once with GC_malloc_many. "a bunch" here
is a GC block size, ie 16KiB or less.
this gives a 1.5% performance boost when evaluating our nixos system.
tested with
nix eval --raw --impure --expr 'with import <nixpkgs/nixos> {}; system'
# on master
Time (mean ± σ): 3.335 s ± 0.007 s [User: 2.774 s, System: 0.293 s]
Range (min … max): 3.315 s … 3.347 s 50 runs
# with this change
Time (mean ± σ): 3.288 s ± 0.006 s [User: 2.728 s, System: 0.292 s]
Range (min … max): 3.274 s … 3.307 s 50 runs
|
|
|
|
Fixes #5806
|
|
|
|
|
|
|
|
Ignore EPERM when unsharing FS state
|
|
nix-channel: use nix-env -i --remove-all to upgrade
|
|
Make sure that `nix-channel --update` won’t accidentaly remove one
|
|
On Docker (but not podman), unshare(CLONE_FS) fails with EPERM. So
let's ignore it and hope nothing bad happens.
Attempted fix for #5777.
|
|
|
|
Add a test case for builtins.groupBy
|