Age | Commit message (Collapse) | Author | Files | Lines |
|
With this change the runtime trace contains much more exact
information about the context of the computation (entering/exiting
calls etc.)
This is in large part due to moving the tracer to be a field on the VM
itself, which enables consistent ordering of traces across the
execution, and tracing an execution with its *input* instead
of *output* stack.
Change-Id: Ibe525e6e7d869756501e52bef1a441619ce7332c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6419
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
|
|
If the disassembler feature is enabled, make sure that an Rc of the
codemap is available through the chunk.
Change-Id: I700f27ab665a704f73457b19bd2d7efc93828a16
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6414
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
|
|
As noticed by sterni in cl/6195
Change-Id: Ie9c1e80e2e709284fa8412334af9188d999f64dc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6361
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
|
|
This makes for a much nicer view of an execution if `--feature
disassembler` is set, for example:
tvix-repl> let value = [ 1 2 { a = 1; } ]; in value ++ [ 1 ]
=== compiled bytecode (11 operations) ===
02 OpConstant(1)
02 OpConstant(2)
02 OpConstant("a")
02 OpConstant(1)
02 OpAttrs(1)
02 OpList(3)
02 OpGetLocal(0)
02 OpConstant(1)
02 OpList(1)
02 OpConcat
02 OpCloseScope(1)
=== runtime trace ===
0001 OpConstant(ConstantIdx(0)) [ 1 ]
0002 OpConstant(ConstantIdx(1)) [ 1 2 ]
0003 OpConstant(ConstantIdx(2)) [ 1 2 "a" ]
0004 OpConstant(ConstantIdx(3)) [ 1 2 "a" 1 ]
0005 OpAttrs(1) [ 1 2 { a = 1; } ]
0006 OpList(3) [ [ 1 2 { a = 1; } ] ]
0007 OpGetLocal(0) [ [ 1 2 { a = 1; } ] [ 1 2 { a = 1; } ] ]
0008 OpConstant(ConstantIdx(4)) [ [ 1 2 { a = 1; } ] [ 1 2 { a = 1; } ] 1 ]
0009 OpList(1) [ [ 1 2 { a = 1; } ] [ 1 2 { a = 1; } ] [ 1 ] ]
0010 OpConcat [ [ 1 2 { a = 1; } ] [ 1 2 { a = 1; } 1 ] ]
0011 OpCloseScope(1) [ [ 1 2 { a = 1; } 1 ] ]
=> [ 1 2 { a = 1; } 1 ] :: list
Change-Id: If79c7fd1f0f18255ddb3763c1ba585fda8041b1b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6195
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
|
|
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>
|