wiggle: make wasmtime a mandatory dep, get rid of own Trap enum (#5137)
* wiggle: no longer need to guard wasmtime integration behind a feature this existed so we could use wiggle in lucet, but lucet is long EOL * replace wiggle::Trap with wiggle::wasmtime_crate::Trap * wiggle tests: unwrap traps because we cant assert_eq on them * wasi-common: emit a wasmtime::Trap instead of a wiggle::Trap formally add a dependency on wasmtime here to make it obvious, though we do now have a transitive one via wiggle no matter what (and therefore can get rid of the default-features=false on the wiggle dep) * wasi-nn: use wasmtime::Trap instead of wiggle::Trap there's no way the implementation of this func is actually a good idea, it will panic the host process on any error, but I'll ask @mtr to fix that * wiggle test-helpers examples: fixes * wasi-common cant cross compile to wasm32-unknown-emscripten anymore this was originally for the WASI polyfill for web targets. Those days are way behind us now. * wasmtime wont compile for armv7-unknown-linux-gnueabihf either
This commit is contained in:
@@ -91,7 +91,7 @@ fn _define_func(
|
||||
ctx: &mut (impl #(#bounds)+*),
|
||||
memory: &dyn #rt::GuestMemory,
|
||||
#(#abi_params),*
|
||||
) -> Result<#abi_ret, #rt::Trap> {
|
||||
) -> Result<#abi_ret, #rt::wasmtime_crate::Trap> {
|
||||
use std::convert::TryFrom as _;
|
||||
#mk_span
|
||||
_span.in_scope(|| {
|
||||
@@ -109,7 +109,7 @@ fn _define_func(
|
||||
ctx: &'a mut (impl #(#bounds)+*),
|
||||
memory: &'a dyn #rt::GuestMemory,
|
||||
#(#abi_params),*
|
||||
) -> impl std::future::Future<Output = Result<#abi_ret, #rt::Trap>> + 'a {
|
||||
) -> impl std::future::Future<Output = Result<#abi_ret, #rt::wasmtime_crate::Trap>> + 'a {
|
||||
use std::convert::TryFrom as _;
|
||||
use #rt::tracing::Instrument as _;
|
||||
#mk_span
|
||||
|
||||
@@ -43,7 +43,7 @@ pub fn generate(doc: &witx::Document, names: &Names, settings: &CodegenSettings)
|
||||
let abi_typename = names.type_ref(&errtype.abi_type(), anon_lifetime());
|
||||
let user_typename = errtype.typename();
|
||||
let methodname = names.user_error_conversion_method(&errtype);
|
||||
quote!(fn #methodname(&mut self, e: super::#user_typename) -> Result<#abi_typename, #rt::Trap>;)
|
||||
quote!(fn #methodname(&mut self, e: super::#user_typename) -> Result<#abi_typename, #rt::wasmtime_crate::Trap>;)
|
||||
});
|
||||
let user_error_conversion = quote! {
|
||||
pub trait UserErrorConversion {
|
||||
|
||||
@@ -45,7 +45,7 @@ pub fn define_module_trait(names: &Names, m: &Module, settings: &CodegenSettings
|
||||
});
|
||||
|
||||
let result = match f.results.len() {
|
||||
0 if f.noreturn => quote!(#rt::Trap),
|
||||
0 if f.noreturn => quote!(#rt::wasmtime_crate::Trap),
|
||||
0 => quote!(()),
|
||||
1 => {
|
||||
let (ok, err) = match &**f.results[0].tref.type_() {
|
||||
|
||||
@@ -121,11 +121,7 @@ fn generate_func(
|
||||
let (mem , ctx) = mem.data_and_store_mut(&mut caller);
|
||||
let ctx = get_cx(ctx);
|
||||
let mem = #rt::wasmtime::WasmtimeGuestMemory::new(mem);
|
||||
match #abi_func(ctx, &mem #(, #arg_names)*) #await_ {
|
||||
Ok(r) => Ok(<#ret_ty>::from(r)),
|
||||
Err(#rt::Trap::String(err)) => Err(#rt::wasmtime_crate::Trap::new(err)),
|
||||
Err(#rt::Trap::I32Exit(err)) => Err(#rt::wasmtime_crate::Trap::i32_exit(err)),
|
||||
}
|
||||
Ok(<#ret_ty>::from(#abi_func(ctx, &mem #(, #arg_names)*) #await_ ?))
|
||||
};
|
||||
|
||||
match asyncness {
|
||||
|
||||
Reference in New Issue
Block a user