tvl-depot/tvix/eval/Cargo.toml
Vincent Ambo 91465dc78e refactor(tvix/eval): persistent, memory-sharing OrdMap for NixAttrs
This uses the `im::OrdMap` for `NixAttrs` to enable sharing of memory
between different iterations of a map.

This slightly speeds up eval, but not significantly. Future work might
include benchmarking whether using a `HashMap` and only ordering in
cases where order is actually required would help.

This switches to a fork of `im` that fixes some bugs with its OrdMap
implementation.

Change-Id: I2f6a5ff471b6d508c1e8a98b13f889f49c0d9537
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7676
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-12-29 17:44:56 +00:00

59 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"
[dependencies]
backtrace-on-stack-overflow = { version = "0.2.0", optional = true }
builtin-macros = { path = "./builtin-macros", package = "tvix-eval-builtin-macros" }
codemap = "0.1.3"
codemap-diagnostic = "0.1.1"
dirs = "4.0.0"
imbl = "2.0"
path-clean = "0.1"
proptest = { version = "1.0.0", default_features = false, features = ["std", "alloc", "break-dead-code", "tempfile"], optional = true }
regex = "1.6.0"
rnix = "0.11.0"
rowan = "*" # pinned by rnix
serde = "1.0"
serde_json = "1.0"
smol_str = "0.1"
tabwriter = "1.2"
test-strategy = { version = "0.2.1", optional = true }
[dev-dependencies]
criterion = "0.4"
pretty_assertions = "1.2.1"
itertools = "0.10.3"
tempdir = "0.3.7"
[dev-dependencies.test-generator]
# This fork of test-generator adds support for cargo workspaces, see
# also https://github.com/frehberg/test-generator/pull/14
git = "https://github.com/JamesGuthrie/test-generator.git"
rev = "82e799979980962aec1aa324ec6e0e4cad781f41"
[features]
default = [ "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 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