mirror of
https://github.com/NixOS/nix
synced 2025-07-07 22:33:57 +02:00
Add builtin function "partition"
The implementation of "partition" in Nixpkgs is O(n^2) (because of the use of ++), and for some reason was causing stack overflows in multi-threaded evaluation (not sure why). This reduces "nix-env -qa --drv-path" runtime by 0.197s and memory usage by 298 MiB (in non-Boehm mode).
This commit is contained in:
parent
c0a7b84748
commit
26d92017d3
7 changed files with 54 additions and 10 deletions
1
tests/lang/eval-okay-partition.exp
Normal file
1
tests/lang/eval-okay-partition.exp
Normal file
|
@ -0,0 +1 @@
|
|||
{ right = [ 0 2 4 6 8 10 100 102 104 106 108 110 ]; wrong = [ 1 3 5 7 9 101 103 105 107 109 ]; }
|
5
tests/lang/eval-okay-partition.nix
Normal file
5
tests/lang/eval-okay-partition.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
with import ./lib.nix;
|
||||
|
||||
builtins.partition
|
||||
(x: x / 2 * 2 == x)
|
||||
(builtins.concatLists [ (range 0 10) (range 100 110) ])
|
Loading…
Add table
Add a link
Reference in a new issue