feat(tvix/eval): implement optional runtime tracing

This adds a `disassembler` feature to the crate configuration that
traces the operations executed and the state of the stack at runtime.

This can be enabled by compiling with `--feature disassembler`.

This will also gain a more sensible layout of code slices eventually.

Change-Id: I34c15e1cd346ecc4362b5afba6bf82dd49359d20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6193
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
Vincent Ambo 2022-08-13 21:29:30 +03:00 committed by tazjin
parent dd0d624919
commit 57d0dbb1c6
5 changed files with 67 additions and 1 deletions

View file

@ -11,6 +11,7 @@ smol_str = "0.1"
rustyline = "10.0.0"
dirs = "4.0.0"
path-clean = "0.1"
tabwriter = { version = "1.2", optional = true }
[dev-dependencies]
criterion = "0.3.6"
@ -21,6 +22,9 @@ test-generator = "0.3.0"
# Nix implementation (at version 2.3) against Tvix.
nix_tests = []
# Enables printing compiled code and tracing the stack state at runtime.
disassembler = ["dep:tabwriter"]
[[bench]]
name = "eval"
harness = false