summaryrefslogtreecommitdiff
path: root/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
diff options
context:
space:
mode:
authorGuillaume Bouchard <guillaum.bouchard@gmail.com>2022-10-04 12:09:35 +0200
committerGuillaume Bouchard <guillaum.bouchard@gmail.com>2022-10-07 18:03:42 +0200
commit98715e1b1acda26f0cd86dc2b74abd1672af8644 (patch)
treecd6ad53b61e16edf59b91c873d9bc1e62328f890 /pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
parentf3500ee0293e230bc06b6636f5fa012cfbff5f81 (diff)
lib.closePropagation: Remove the quadratic behavior in lib.closePropagation
The code of `lib.closePropagation` was internally using a recursion on the dependencies and returns all the derivation directly or indirectly referenced by buildInputs. `lib.closeProgation` is implemented in pure nix and uses an unique function for list which is quadratic and does "true" equality, which needs deep set comparison. Instead, we use the `builtins.genericClosure` which is implemented as a builtin and uses a more efficient sorting feature. Note that `genericClosure` needs a `key` to discriminate the values, we used the `outPath` which is unique and orderable. On benchmarks, it performs up to 15x time faster on a benchmark related to haskellPackages.ghcWithPackages.
Diffstat (limited to 'pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch')
0 files changed, 0 insertions, 0 deletions