tvl-depot/corp/tvixbolt
Vincent Ambo 5d73c06b1a refactor(tvix/eval): use im::Vector for NixList representation
This is a persistent, structurally sharing data structure which is
more efficient in some of our use-cases. I have verified the
efficiency improvement using `hyperfine` repeatedly over expressions
on nixpkgs.

Lists are not the most performance-critical structure in Nix (that
would be attribute sets), but we can already see a small (~5-10%)
improvement.

Note that there are a handful of cases where we still go via `Vec`
that need to be fixed, most notable for `builtins.sort` which can not
currently be implemented directly using `im::Vector` because of a
restrictive type bound.

Change-Id: I237cc50cbd7629a046e5a5e4601fbb40355e551d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7670
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-12-29 12:27:59 +00:00
..
src refactor(tvixbolt): use new tvix_eval API 2022-12-21 13:23:38 +00:00
.gitignore chore(corp/tvixbolt): gitignore trunk's dist folder 2022-09-20 10:59:32 +00:00
Cargo.lock refactor(tvix/eval): use im::Vector for NixList representation 2022-12-29 12:27:59 +00:00
Cargo.toml refactor(tvix/eval): use im::Vector for NixList representation 2022-12-29 12:27:59 +00:00
default.nix refactor(tvix): build Rust projects using crate2nix 2022-12-15 17:26:45 +00:00
index.css feat(corp/tvixbolt): add some additional information on the page 2022-09-04 18:50:06 +00:00
index.html feat(corp/tvixbolt): add an ad in the footer 2022-09-13 12:47:18 +00:00