tvl-depot/tvix/eval/src/value
Adam Joseph edbd5055a1 feat(tvix/eval): nonrecursive nix_cmp_ordering(), fixes b/339
This commit rewrites Value::nix_cmp_ordering() into an equivalent
nonrecursive form.  Except for calls to Thunk::force(), the new form
no longer uses generators, and is async only because of the fact
that it calls Thunk::force().

I originally believed that this commit would make evaluation faster.
In fact it is slightly slower.  I believe this is due to the added
vec![] allocation.  I am investigating.

Prev-Nixpkgs-Benchmark: {"attrpath":"pkgsCross.aarch64-multiplatform.hello.outPath","peak-kbytes":"460048","system-seconds":"0.68","user-seconds":"5.73"}
This-Nixpkgs-Benchmark: {"attrpath":"pkgsCross.aarch64-multiplatform.hello.outPath","peak-kbytes":"460224","system-seconds":"0.67","user-seconds":"5.84"}
Change-Id: Ic627bc220d9c5aa3c5e68b9b8bf199837cd55af5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10212
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Autosubmit: Adam Joseph <adam@westernsemico.com>
2023-12-12 14:26:46 +00:00
..
attrs refactor(tvix/eval): simplify NixString representation(s) 2023-03-13 20:30:59 +00:00
arbitrary.rs refactor(tvix/eval): box PathBuf 2023-03-13 20:30:59 +00:00
attrs.rs feat(tvix/eval): impl DoubleEndedIter for OwnedAttrsIterator 2023-12-09 11:35:19 +00:00
builtin.rs docs(tvix/eval): fix some broken docstr references 2023-09-22 09:14:33 +00:00
function.rs docs(tvix/eval): fix some broken docstr references 2023-09-22 09:14:33 +00:00
json.rs chore(tvix): fix trivial clippy lints 2023-11-05 20:28:37 +00:00
list.rs chore(tvix): fix trivial clippy lints 2023-11-05 20:28:37 +00:00
mod.rs feat(tvix/eval): nonrecursive nix_cmp_ordering(), fixes b/339 2023-12-12 14:26:46 +00:00
path.rs refactor(tvix/eval): factor out all calls to canon_path 2022-10-13 09:07:47 +00:00
string.rs fix(tvix/eval): Return error rather than panicking on bad substring 2023-12-05 23:12:23 +00:00
thunk.rs feat(tvix/eval): nonrecursive nix_eq() 2023-12-12 14:26:46 +00:00