tvl-depot/users/sterni
sterni 8615322bc8 refactor(sterni/nix/utf8): use genericClosure for decoding iteration
builtins.genericClosure is a quite powerful (and undocumented) Nix
primop: It repeatedly applies a function to values it produces and
collects them into a list. Additionally individual results can be
identified via a key attribute.

Since genericClosure only ever creates a single list value internally,
we can eliminate a huge performance bottleneck when building a list in a
recursive algorithm: list concatenation. Because Nix needs to copy the
entire chunk of memory used internally to represent the list, building
big lists one element at a time grinds Nix to a halt.

After rewriting decode using genericClosure decoding the LaTeX source
of my 20 page term paper now takes 2s instead of 14min.

Change-Id: I33847e4e7dd95d7f4d78ac83eb0d74a9867bfe80
2021-11-23 14:22:24 +01:00
..
clhs-lookup feat(nix/buildLisp): add ecl 2021-08-24 22:00:15 +00:00
dot-time-man-pages feat(sterni/dot-time-man-pages): mdoc port of dotti.me 2021-04-02 09:14:28 +00:00
emacs feat(users/sterni/emacs): enable jq-mode 2021-10-11 13:25:56 +00:00
htmlman feat(users/sterni/htmlman): hyperlink .Xr macro in output 2021-03-11 14:31:19 +00:00
mblog feat(sterni/mblog): convert apple note mime msgs to html 2021-09-12 21:39:49 +00:00
nix refactor(sterni/nix/utf8): use genericClosure for decoding iteration 2021-11-23 14:22:24 +01:00
nixpkgs-crate-holes chore(nixpkgs-crate-holes): whitelist more maintainers 2021-11-16 10:37:43 +00:00
keys.nix feat(ops/nixos/whitby): add sterni user 2021-01-13 22:05:33 +00:00
OWNERS chore(sterni): init user folder 2021-01-11 11:43:33 +00:00