03a3189a3d
Implement an *initial* version of builtins.match, using the rust `regex` crate for regular expressions. The rust regex crate definitely has different semantics than nix's regular expressions - but we'd like to see how far we can get before the incompatibility starts to matter. This consciously leaves out any sort of memo for compiled regular expressions (which upstream nix also has) for the sake of expediency - in the future we should implement that so we don't have to compile the same regular expression multiple times. Change-Id: I5b718635831ec83397940e417a9047c4342b6fa1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6989 Tested-by: BuildkiteCI Reviewed-by: Adam Joseph <adam@westernsemico.com> Reviewed-by: tazjin <tazjin@tvl.su>
65 lines
1.7 KiB
TOML
65 lines
1.7 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"] }
|
|
serde_json = "1.0.86"
|
|
regex = "1.6.0"
|
|
|
|
# rnix has not been released in a while (as of 2022-09-23), we will
|
|
# use it from git.
|
|
[dependencies.rnix]
|
|
git = "https://github.com/nix-community/rnix-parser.git"
|
|
rev = "85a045afd33e073a3eab4c0ea2f515b6bed557ab"
|
|
|
|
[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
|