[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"] }
serde = "1.0"
serde_json = "1.0"
regex = "1.6.0"
builtin-macros = { path = "./builtin-macros", package = "tvix-eval-builtin-macros" }
backtrace-on-stack-overflow = { version = "0.2.0", optional = true }
rnix = "0.11.0"
[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", "nix_tests", "backtrace_overflow" ]
# 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 = [ "rustyline", "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" ]
# For debugging use only; not appropriate for production use.
backtrace_overflow = [ "backtrace-on-stack-overflow" ]
[[bench]]
name = "eval"
harness = false