sui-bytecode 0.1.202

Bytecode compiler and VM for the sui Rust-native Nix evaluator
Documentation
[package]
name = "sui-bytecode"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "Bytecode compiler and VM for the sui Rust-native Nix evaluator"
keywords = ["nix", "bytecode", "vm", "compiler", "evaluator"]
categories = ["compilers"]

[dependencies]
rnix.workspace = true
rowan.workspace = true
serde_json.workspace = true
sha2.workspace = true
sui-compat.workspace = true
sui-intern.workspace = true
sui-spec.workspace = true
thiserror.workspace = true

[dev-dependencies]
# PATH-ONLY (no version) on purpose: this breaks a PUBLISH-TIME CYCLE. sui-eval
# depends on sui-bytecode (normal), and sui-bytecode's tests use sui-eval as the
# semantic oracle. A *versioned* dev-dep here (`sui-eval.workspace = true`) makes
# `cargo publish` of sui-bytecode demand sui-eval already be on crates.io — which
# it can't be, because sui-eval needs sui-bytecode first. Deadlock: the whole
# sui-bytecode→sui-eval→sui-daemon→… subgraph never publishes (the drip aborts
# "no progress; circular dep", 2026-07-22). cargo STRIPS a path-only (versionless)
# dev-dep on publish, so sui-bytecode publishes without referencing sui-eval,
# then sui-eval publishes, then the rest. Local builds/tests still resolve it by
# path. Do NOT restore `.workspace = true` here.
sui-eval = { path = "../sui-eval" }
pretty_assertions.workspace = true
criterion.workspace = true
tempfile.workspace = true

[[bench]]
name = "vm_perf"
harness = false

[[bench]]
name = "real_eval"
harness = false

[lints.clippy]
pedantic = "warn"