Repository navigation
Conversation
djolertrk
force-pushed
the
feat/frame-start-end
branch
from
September 24, 2026 16:23
ca4d008 to
d3c890a
Compare
Collaborator
Author
|
The VM branch https://github.com/walnuthq/miden-vm/tree/feat/frame-start-end, and the PR 0xMiden/miden-vm#3941 |
djolertrk
force-pushed
the
feat/frame-start-end
branch
2 times, most recently
from
September 29, 2026 12:38
fc97aef to
4701620
Compare
Use assembler-generated frame metadata for local and DAP backtraces and step-out behavior. Stop using legacy compiler frame events to construct the call stack, while accepting those events as no-ops. Preserve physical invocation identity and attach inherited inline scopes to their callers. Add event-free frame and return-boundary regressions. Use the sibling VM checkout for the new version 4 debug-info contract, and adapt execution output handling to its VM 0.34 API. Replace these local dependency paths with a published revision before sharing the PR.
Check exact frame names, order, and counts for tail calls, recursion, adjacent invocations, and static and dynamic calls without frame events. Deserialize package fixtures in DAP tests to exercise the wire contract. Fix DAP step-out to compare invocation identities instead of only stack depth, so consecutive calls at the same depth are not skipped. Validation: 342 workspace tests and 29 non-Python lit tests pass, along with Clippy and formatting checks against the local VM 0.34 checkout.
Replace sibling VM path dependencies with the walnuthq/miden-vm feat/frame-start-end branch. Pin the resolved revision in Cargo.lock so CI can build the frame metadata integration without a local checkout. Verify all 26 VM packages resolve from Git, the workspace check passes, and all three DAP stack-trace regressions pass.
Use the VM's cached resolver to recover frames from existing debug metadata without requiring new serialized procedure-frame ranges. Label inferred frames in local and DAP backtraces and explain that optimized callers may be missing. Refresh frame evidence while preserving invocation identity, and update regression coverage. Validated against the local VM implementation using a temporary Cargo patch; the fork dependency still needs the corresponding VM update.
Add lit regressions for conditional branches, loop invocations, nested exec/dynexec unwinding, identical procedure bodies, and session reload. Assert frame identity, ordering, inference labels, and final results.
Update split test modules for metadata-driven frame tracking and DAP frame identities. Remove obsolete event-based call-depth assertions, keeping regression coverage for replay ignoring legacy frame events.
djolertrk
force-pushed
the
feat/frame-start-end
branch
from
September 30, 2026 09:45
4701620 to
6262523
Compare
Contributor
|
Line coverage: 78.51% (8,740 / 11,133 lines). Required: 75%. |
Collaborator
|
Closing as superceded by #162 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This replaces event-based frame tracking with the VM’s frame resolver, using existing debug info and execution state. No new package metadata is needed.
Optimized
execframes sometimes require a best-effort guess, so we label those [inferred]. Callers we can’t identify are left out rather than shown as reliable frames.