snix/tvix/eval/src/value
Vincent Ambo 44acffc688 refactor(tvix/eval): builtins now contain closures
For some upcoming builtins (notably, import) we need to capture
arguments in the builtin's implementation.

To allow this, we can no longer use function pointers for builtins,
but must use a reference-counted closure object instead.

Unfortunately this adds an extra pointer operation to every builtin
call. We should benchmark this later against having a split builtin
representation.

Change-Id: I109d98d0e25998870542f47573eb1ec2e546f2a2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6856
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2022-10-06 15:22:32 +00:00
..
attrs test(tvix/eval): Make proptests a bit smaller 2022-09-20 23:41:58 +00:00
arbitrary.rs test(tvix/eval): Make proptests a bit smaller 2022-09-20 23:41:58 +00:00
attrs.rs chore(tvix/eval): remove existing nested key implementation 2022-09-29 11:47:47 +00:00
builtin.rs refactor(tvix/eval): builtins now contain closures 2022-10-06 15:22:32 +00:00
function.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
list.rs refactor(tvix/eval): implement IntoIterator for NixList 2022-10-03 07:53:21 +00:00
mod.rs chore(tvix/eval): remove existing nested key implementation 2022-09-29 11:47:47 +00:00
string.rs test(tvix/eval): Add proptests covering trait impls for String 2022-09-17 19:51:16 +00:00
thunk.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00