alexcrichton opened issue #9026:
This started out as https://github.com/bytecodealliance/wasmtime/issues/9015 but I'm evolving this now to be about Pulley specifically. Current thinking is that Pulley will not be compatible with
-Zmiri-strict-provenance, but changes are necessary to make it compatible with-Zmiri-permissive-provenance. I believe the concrete of changes are:
- The
ptr: *mut u8field ofXRegValUnionmust be replaced with ausizevalue- The
new_ptrconstructor will useexpose_provenanceand load/store usize- The
get_ptraccessor will usewith_exposed_provenancewith theusizefield- When entering the interpreter Wasmtime will be require to call
expose_provenanceon any pointers that Pulley may access. This notably affects theVMContextfield and any transitive pointers that it contains. This can probably be done during the construction ofVMContextitself.Right now
expose_provenanceandwith_exposed_provenanceare unstable so I don't believe that this is actionable at this time, but I wanted to write this down for later.cc @fitzgen
alexcrichton commented on issue #9026:
Ralf also pointed to https://github.com/rust-lang/unsafe-code-guidelines/issues/497 which has some interesting discussion and I believe reaches a similar conclusion.
fitzgen commented on issue #9026:
Ralf also pointed to rust-lang/unsafe-code-guidelines#497 which has some interesting discussion and I believe reaches a similar conclusion.
This comment from Ralf, in particular, seems to summarize our recent discussions: https://github.com/rust-lang/unsafe-code-guidelines/issues/497#issuecomment-2003100550
alexcrichton added the pulley label to Issue #9026.
github-actions[bot] commented on issue #9026:
Subscribe to Label Action
cc @fitzgen
<details>
This issue or pull request has been labeled: "pulley"Thus the following users have been cc'd because of the following labels:
- fitzgen: pulley
To subscribe or unsubscribe from this label, edit the <code>.github/subscribe-to-label.json</code> configuration file.
Learn more.
</details>
alexcrichton closed issue #9026:
This started out as https://github.com/bytecodealliance/wasmtime/issues/9015 but I'm evolving this now to be about Pulley specifically. Current thinking is that Pulley will not be compatible with
-Zmiri-strict-provenance, but changes are necessary to make it compatible with-Zmiri-permissive-provenance. I believe the concrete of changes are:
- The
ptr: *mut u8field ofXRegValUnionmust be replaced with ausizevalue- The
new_ptrconstructor will useexpose_provenanceand load/store usize- The
get_ptraccessor will usewith_exposed_provenancewith theusizefield- When entering the interpreter Wasmtime will be require to call
expose_provenanceon any pointers that Pulley may access. This notably affects theVMContextfield and any transitive pointers that it contains. This can probably be done during the construction ofVMContextitself.Right now
expose_provenanceandwith_exposed_provenanceare unstable so I don't believe that this is actionable at this time, but I wanted to write this down for later.cc @fitzgen
alexcrichton commented on issue #9026:
This is now resolved with a combination of https://github.com/bytecodealliance/wasmtime/pull/10043 and https://github.com/bytecodealliance/wasmtime/pull/10096
Last updated: Dec 06 2025 at 06:05 UTC