alexcrichton requested elliottt for a review on PR #8609.
alexcrichton requested wasmtime-core-reviewers for a review on PR #8609.
alexcrichton opened PR #8609 from alexcrichton:refactor-wasi
to bytecodealliance:main
:
This commit builds on the support from #8448 to remove all blanket impls from the WASI crates and instead replace them with concrete impls. This is slightly functionally different from before where impls are now on trait objects meaning dynamic dispatch is involved where previously dynamic dispatch was used. That being said the perf hit here is expected to be negligible-to-nonexistent since the implementations are large enough that the dynamic dispatch won't be the hot path.
The motivations for this commit are:
- Removes the need for an odd
skip_mut_forwarding_impls
option - but this'll be left for a bit in case others need it.- Improves incremental compile time of these crates where the crates themselves now contain all object code for all of WASI instead of forcing the final consume to codegen everything (although there's still a significant amount monomorphized).
- Improves future compatibility with refactorings of bindgen-generated-traits and such because blanket impls are pretty hard to work around where concrete impls are easier to reason about (and document).
<!--
Please make sure you include the following information:
If this work has been discussed elsewhere, please include a link to that
conversation. If it was discussed in an issue, just mention "issue #...".Explain why this change is needed. If the details are in an issue already,
this can be brief.Our development process is documented in the Wasmtime book:
https://docs.wasmtime.dev/contributing-development-process.htmlPlease ensure all communication follows the code of conduct:
https://github.com/bytecodealliance/wasmtime/blob/main/CODE_OF_CONDUCT.md
-->
pchickey submitted PR review:
Love it!
alexcrichton merged PR #8609.
Last updated: Dec 23 2024 at 12:05 UTC