Skip to content

Tags: bytecodealliance/wasmtime

Tags

dev

Toggle dev's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Debugging: refactor stack frame cursor into frame handle abstraction. (

…#12566)

* Debugging: refactor stack frame cursor into frame handle abstraction.

This addresses some of the issues described #12486: we need the ability
to keep a handle to a stack frame as long as execution is frozen, and
keep multiple of these handles around, alongside the `Store`, without
any handle directly holding a borrow of the store.

The frame handles work by means of an "execution version" scheme: the
idea is that whenever any execution resumes in a given store, all
handles to existing frames could be invalidated, but if no such
execution occurs, all handles should still be valid. A tuple of
(globally unique for process lifetime) store ID, and execution version
within that store, should be sufficient to uniquely identify any
frozen-stack period during execution. This accomplishes cheap handle
invalidation without the need to track existing handles.

This PR also implements a cache of parsed frame-table data. Previously
this was lazily parsed by the cursor as it walked up a stack, but with
multiple handles hanging around, and with handles meant to be cheap to
hold and clone, and with handles being invalidated eagerly, it makes
much more sense to persist this parsed metadata at the `Store` level.
(It cannot persist at the `Engine` level because PCs are local per
store.)

* Re-bless disas tests (offsets in VMStoreContext changed).

* Handle invalidation tests.

* Review comments, and make API return `Result`s rather than panic'ing on stale handles.

* Review feedback.

* Doc-comment link fix.

* Review feedback.

* cfg-gate Activation method to `debug` feature only.

* Fix unused-import warning in no-debug cfg.

* Fix doc link (again, after rename from latest feedback).

v41.0.3

Toggle v41.0.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 41.0.3 (#12529)

[automatically-tag-and-release-this-commit]

Co-authored-by: Wasmtime Publish <[email protected]>

v41.0.2

Toggle v41.0.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 41.0.2 (#12499)

* Release Wasmtime 41.0.2

[automatically-tag-and-release-this-commit]

* Add release notes

* Pin wkg version

---------

Co-authored-by: Wasmtime Publish <[email protected]>
Co-authored-by: Alex Crichton <[email protected]>

v41.0.1

Toggle v41.0.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 41.0.1 (#12434)

[automatically-tag-and-release-this-commit]

Co-authored-by: Wasmtime Publish <[email protected]>

v40.0.3

Toggle v40.0.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 40.0.3 (#12433)

[automatically-tag-and-release-this-commit]

Co-authored-by: Wasmtime Publish <[email protected]>

v36.0.5

Toggle v36.0.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 36.0.5 (#12432)

[automatically-tag-and-release-this-commit]

Co-authored-by: Wasmtime Publish <[email protected]>

v41.0.0

Toggle v41.0.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 41.0.0 (#12373)

[automatically-tag-and-release-this-commit]

Co-authored-by: Wasmtime Publish <[email protected]>

v40.0.2

Toggle v40.0.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 40.0.2 (#12346)

[automatically-tag-and-release-this-commit]

Co-authored-by: Wasmtime Publish <[email protected]>

v39.0.2

Toggle v39.0.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 39.0.2 (#12347)

* Release Wasmtime 39.0.2

[automatically-tag-and-release-this-commit]

* Release notes.

---------

Co-authored-by: Wasmtime Publish <[email protected]>
Co-authored-by: Chris Fallin <[email protected]>

v36.0.4

Toggle v36.0.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Release Wasmtime 36.0.4 (#12348)

* Release Wasmtime 36.0.4

[automatically-tag-and-release-this-commit]

* Release notes.

---------

Co-authored-by: Wasmtime Publish <[email protected]>
Co-authored-by: Chris Fallin <[email protected]>