59056cf705
Default to always leaking strings, and copying strings by copying pointers rather than cloning the underlying allocation. This (somewhat bafflingly) doesn't seem to affect any benchmarks, but paves the way for some tricks around string allocation that do. Unfortunately, we can't do this (yet?) for contextful strings, for reasons I don't currently understand but which I will address later, when I address contextful strings more holistically. I've left a flag in here to disable this, both to test the cloning logic for strings for when/if we decide to bring this back, and to allow people who care more about memory usage than perf to disable leaking. Change-Id: Iec44bcbfe9b3d20389d2450b9a551792a79b9b26 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12045 Autosubmit: aspen <root@gws.fyi> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
68 lines
1.8 KiB
TOML
68 lines
1.8 KiB
TOML
[package]
|
|
name = "tvix-eval"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[lib]
|
|
name = "tvix_eval"
|
|
|
|
[dependencies]
|
|
builtin-macros = { path = "./builtin-macros", package = "tvix-eval-builtin-macros" }
|
|
bytes = "1.4.0"
|
|
bstr = { version = "1.8.0", features = ["serde"] }
|
|
codemap = "0.1.3"
|
|
codemap-diagnostic = "0.1.1"
|
|
dirs = "4.0.0"
|
|
genawaiter = { version = "0.99.1", default_features = false }
|
|
imbl = { version = "3.0", features = [ "serde" ] }
|
|
itertools = "0.12.0"
|
|
lazy_static = "1.4.0"
|
|
lexical-core = { version = "0.8.5", features = ["format", "parse-floats"] }
|
|
os_str_bytes = { version = "6.3", features = ["conversions"] }
|
|
path-clean = "0.1"
|
|
proptest = { version = "1.3.0", default_features = false, features = ["std", "alloc", "tempfile"], optional = true }
|
|
regex = "1.6.0"
|
|
rnix = "0.11.0"
|
|
rowan = "*" # pinned by rnix
|
|
serde = { version = "1.0", features = [ "rc", "derive" ] }
|
|
serde_json = "1.0"
|
|
smol_str = "0.2.0"
|
|
tabwriter = "1.2"
|
|
test-strategy = { version = "0.2.1", optional = true }
|
|
toml = "0.6.0"
|
|
sha2 = "0.10.8"
|
|
sha1 = "0.10.6"
|
|
md-5 = "0.10.6"
|
|
data-encoding = "2.6.0"
|
|
|
|
[dev-dependencies]
|
|
criterion = "0.5"
|
|
itertools = "0.12.0"
|
|
pretty_assertions = "1.2.1"
|
|
rstest = "0.19.0"
|
|
tempfile = "3.3.0"
|
|
|
|
[target.'cfg(not(target_env = "msvc"))'.dev-dependencies]
|
|
tikv-jemallocator = "0.5"
|
|
|
|
[features]
|
|
default = ["impure", "arbitrary", "nix_tests"]
|
|
|
|
# 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", "imbl/proptest"]
|
|
|
|
# Don't leak strings (enable this if you care about peak memory usage of eval)
|
|
#
|
|
# This is intended as a stop-gap until we have a garbage collector
|
|
no_leak = []
|
|
|
|
[[bench]]
|
|
name = "eval"
|
|
harness = false
|