9e16d70809
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>
63 lines
1.6 KiB
TOML
63 lines
1.6 KiB
TOML
[package]
|
|
name = "tvix-eval"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
name = "tvix_eval"
|
|
|
|
[[bin]]
|
|
name = "tvix-eval"
|
|
required-features = [ "repl" ]
|
|
|
|
[dependencies]
|
|
smol_str = "0.1"
|
|
rustyline = { version = "10.0.0", optional = true }
|
|
dirs = "4.0.0"
|
|
path-clean = "0.1"
|
|
tabwriter = "1.2"
|
|
rowan = "*" # pinned by rnix
|
|
codemap = "0.1.3"
|
|
codemap-diagnostic = "0.1.1"
|
|
proptest = { version = "1.0.0", default_features = false, features = ["std", "alloc", "break-dead-code", "tempfile"], optional = true }
|
|
test-strategy = { version = "0.2.1", optional = true }
|
|
clap = { version = "3.2.22", optional = true, features = ["derive", "env"] }
|
|
|
|
# rnix has not been released in a while (as of 2022-09-18), we will
|
|
# use it from git.
|
|
[dependencies.rnix]
|
|
git = "https://github.com/nix-community/rnix-parser.git"
|
|
rev = "7d0d929c22ad27bdcc0779afe445b541d3ce9631"
|
|
|
|
[dev-dependencies]
|
|
criterion = "0.3.6"
|
|
test-generator = "0.3.0"
|
|
pretty_assertions = "1.2.1"
|
|
itertools = "0.10.3"
|
|
tempdir = "0.3.7"
|
|
|
|
[features]
|
|
default = [ "repl", "impure", "arbitrary" ]
|
|
|
|
# Enables running the Nix language test suite from the original C++
|
|
# Nix implementation (at version 2.3) against Tvix.
|
|
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" ]
|
|
|
|
[[bench]]
|
|
name = "eval"
|
|
harness = false
|
|
|
|
[profile.release-with-debug]
|
|
inherits = "release"
|
|
debug = true
|