From ce84cc06bf3a6311c67e73b6675fc5c1317dec23 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Tue, 24 Nov 2020 15:29:28 +0100 Subject: [PATCH] texlive: Use lib.unique for uniqueness checks In 85605c8a296bd54e9c12e1bd1c33bf1e100d40b7 we got a really nice performance improvement. By using this implementation for texlive instantiation RSS is cut by ~2.6x with a similar wall time speedup. --- pkgs/tools/typesetting/tex/texlive/combine.nix | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix index fb3e6668a47..891495c46ca 100644 --- a/pkgs/tools/typesetting/tex/texlive/combine.nix +++ b/pkgs/tools/typesetting/tex/texlive/combine.nix @@ -31,13 +31,7 @@ let ++ lib.optional (lib.any pkgNeedsRuby splitBin.wrong) ruby; }; - # TODO: replace by buitin once it exists - fastUnique = comparator: list: with lib; - let un_adj = l: if length l < 2 then l - else optional (head l != elemAt l 1) (head l) ++ un_adj (tail l); - in un_adj (lib.sort comparator list); - - uniqueStrings = fastUnique (a: b: a < b); + uniqueStrings = list: lib.sort (a: b: a < b) (lib.unique list); mkUniqueOutPaths = pkgs: uniqueStrings (map (p: p.outPath) (builtins.filter lib.isDerivation pkgs));