diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-07-23 16:32:52 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2015-07-23 16:49:13 +0200 |
commit | f14dab05d635711daef90639f84ef3170abb216c (patch) | |
tree | ef8379c724272138ddd8ff0a68a1bc0f3d20fce6 /lib | |
parent | 3cd5fd8bb3fc4b824e89cb800716989a332f20f1 (diff) | |
download | nixpkgs-f14dab05d635711daef90639f84ef3170abb216c.tar nixpkgs-f14dab05d635711daef90639f84ef3170abb216c.tar.gz nixpkgs-f14dab05d635711daef90639f84ef3170abb216c.tar.bz2 nixpkgs-f14dab05d635711daef90639f84ef3170abb216c.tar.lz nixpkgs-f14dab05d635711daef90639f84ef3170abb216c.tar.xz nixpkgs-f14dab05d635711daef90639f84ef3170abb216c.tar.zst nixpkgs-f14dab05d635711daef90639f84ef3170abb216c.zip |
optionAttrSetToDocList: O(n^2) -> O(n)
This shaves about 10% off memory consumption of NixOS evaluation.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/options.nix | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/options.nix b/lib/options.nix index bfc5b5fa2ae..bb72ad6d125 100644 --- a/lib/options.nix +++ b/lib/options.nix @@ -83,7 +83,7 @@ rec { optionAttrSetToDocList = optionAttrSetToDocList' []; optionAttrSetToDocList' = prefix: options: - fold (opt: rest: + concatMap (opt: let docOption = rec { name = showOption opt.loc; @@ -101,8 +101,7 @@ rec { let ss = opt.type.getSubOptions opt.loc; in if ss != {} then optionAttrSetToDocList' opt.loc ss else []; in - # FIXME: expensive, O(n^2) - [ docOption ] ++ subOptions ++ rest) [] (collect isOption options); + [ docOption ] ++ subOptions) (collect isOption options); /* This function recursively removes all derivation attributes from |