This repository was archived by the owner on Apr 16, 2025. It is now read-only.
Bind the new *_unchecked function APIs
#17
Merged
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 commit binds two new APIs added to
wasmtime's C API recently:wasmtime_func_new_uncheckedwamstime_func_call_uncheckedThese two functions are a more accelerated path of invoking a
WebAssembly function and having a WebAssembly function call the host.
The new APIs are generally unsafe but with the C++ bindings added here
they should at least be type-safe. The goal was to add APIs similar to
the Rust crate's
Func::wrapandFunc::typedfor statically-typedfunction calls.
Overall the performance here worked out great in that it's on-par with C
and as expected from the PR adding the
*_uncheckedvariants. This is,however, basically my first foray into templated functions in C++ and
wow is this a lot more complicated than I thought that it would be. Some
extra eyes on this would be appreciated to see if I've missed something
or if the design could be simplified.