tvl-depot/users
sterni b810c46a45 feat(users/sterni/nix/utf8): pure nix utf-8 decoder
users.sterni.nix.utf8 implements UTF-8 decoding in pure nix. We
implement the decoding as a simple state machine which is fed one byte
at a time. Decoding whole strings is possible by subsequently calling
step. This is done in decode which uses builtins.foldl' to get around
recursion restrictions and a neat trick using builtins.deepSeq puck
showed me limiting the size of the thunks in a foldl' (which can also
cause a stack overflow).

This makes decoding arbitrarily large UTF-8 files into codepoints using
nix theoretically possible, but it is not really practical: Decoding a
36KB LaTeX file I had lying around takes ~160s on my laptop.

Change-Id: Iab8c973dac89074ec280b4880a7408e0b3d19bc7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2590
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-03-05 11:07:41 +00:00
..
cynthia feat(cynthia): add SSH CA 2020-09-27 23:14:12 +00:00
edef fix(edef/keys): add readTree header 2020-08-05 02:21:47 +00:00
ericvolp12 chore(users/ericvolp12): Create ericvolp12 user directory and OWNERS file 2020-06-16 02:37:07 +00:00
eta feat(whitby): add eta 2020-08-17 22:27:25 +00:00
firefly feat(users/firefly): initialize with key for as 2020-09-28 13:41:40 +00:00
glittershark feat(gs/system): Add config for laptop battery 2021-02-24 17:46:04 +00:00
isomer chore(whitby): Move isomer's SSH key to user directory 2020-07-23 19:32:15 +00:00
lukegb chore(lukegb): add keys.clouvider-lon01-nix 2020-11-30 23:18:39 +00:00
Profpatsch feat(users/Profpatsch/advent-of-code): 2020 day 04 2021-03-01 23:26:25 +00:00
qyliss feat(whitby): Add SSH key for qyliss 2020-07-23 19:37:09 +00:00
riking feat(u/riking/dotfiles): add tmux.conf 2021-03-01 22:31:13 +00:00
sterni feat(users/sterni/nix/utf8): pure nix utf-8 decoder 2021-03-05 11:07:41 +00:00
tazjin feat(tazjin/rlox): Implement expression statements 2021-03-03 10:51:05 +00:00
tvlbot.jpg chore(users/tazjin): Add avatar for tvlbot 2020-06-14 22:23:04 +00:00