feat(tvix/eval): Sketch out impure builtins

Sketch out a new set of "impure" builtins, which supplement the existing
set of "pure" builtins but are gated behind a feature flag, which allows
them to be omitted by crates depending on tvix-eval that only want pure
evaluation, such as tvixbolt.

Change-Id: I2736017b5c9b4776bbba8758e108ec84887abd66
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6655
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
This commit is contained in:
Griffin Smith 2022-09-18 16:34:41 -04:00 committed by grfn
parent 7bf1b4deea
commit 9e16d70809
3 changed files with 23 additions and 3 deletions

View file

@ -39,7 +39,7 @@ itertools = "0.10.3"
tempdir = "0.3.7"
[features]
default = [ "repl", "arbitrary" ]
default = [ "repl", "impure", "arbitrary" ]
# Enables running the Nix language test suite from the original C++
# Nix implementation (at version 2.3) against Tvix.
@ -48,6 +48,9 @@ nix_tests = []
# Enables building the binary (tvix-eval REPL)
repl = [ "dep:rustyline", "dep:clap" ]
# Enables operations in the VM which depend on the ability to perform I/O
impure = []
# Enables Arbitrary impls for internal types (required to run tests)
arbitrary = [ "proptest", "test-strategy" ]