Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions crates/gen-guest-c/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -990,7 +990,7 @@ impl Generator for C {
self.src.c,
"__attribute__((import_module(\"{}\"), import_name(\"{}\")))",
iface.name,
iface.mangle_funcname(func)
func.name
);
let import_name = self.names.tmp(&format!(
"__wasm_import_{}_{}",
Expand Down Expand Up @@ -1067,7 +1067,7 @@ impl Generator for C {
uwriteln!(
self.src.c,
"__attribute__((export_name(\"{}\")))",
iface.mangle_funcname(func)
func.name
);
let import_name = self.names.tmp(&format!(
"__wasm_export_{}_{}",
Expand Down
14 changes: 4 additions & 10 deletions crates/gen-guest-rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -528,13 +528,12 @@ impl Generator for RustWasm {
fn export(&mut self, iface: &Interface, func: &Function) {
let iface_name = iface.name.to_snake_case();

let name_mangled = iface.mangle_funcname(func);
let name_snake = func.name.to_snake_case();
let name = match &iface.module {
Some(module) => {
format!("{module}#{}", name_mangled)
format!("{module}#{}", func.name)
}
None => format!("{}{}", self.opts.symbol_namespace, name_mangled),
None => format!("{}{}", self.opts.symbol_namespace, func.name),
};

self.src.push_str(&format!("#[export_name = \"{name}\"]\n"));
Expand Down Expand Up @@ -1470,13 +1469,8 @@ impl Bindgen for FunctionBindgen<'_> {

Instruction::IterBasePointer => results.push("base".to_string()),

Instruction::CallWasm {
iface,
base_name: _,
mangled_name,
sig,
} => {
let func = self.declare_import(iface, mangled_name, &sig.params, &sig.results);
Instruction::CallWasm { iface, name, sig } => {
let func = self.declare_import(iface, name, &sig.params, &sig.results);

// ... then call the function with all our operands
if sig.results.len() > 0 {
Expand Down
4 changes: 2 additions & 2 deletions crates/gen-guest-teavm-java/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ impl Generator for TeaVmJava {
};

let module = &iface.name;
let name = iface.mangle_funcname(func);
let name = &func.name;

let sig = iface.wasm_signature(AbiVariant::GuestImport, func);

Expand Down Expand Up @@ -706,7 +706,7 @@ impl Generator for TeaVmJava {
assert!(!bindgen.needs_cleanup_list);

let src = bindgen.src;
let name = iface.mangle_funcname(func);
let name = &func.name;

let result_type = match &sig.results[..] {
[] => "void",
Expand Down
7 changes: 3 additions & 4 deletions crates/gen-host-js/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -674,7 +674,7 @@ impl Generator for Js {
.entry(*resource)
.or_insert(Vec::new()),
};
dst.push((iface.mangle_funcname(func), src));
dst.push((func.name.to_string(), src));
}

// As with `abi_variant` above, we're generating host-side bindings here
Expand Down Expand Up @@ -2136,14 +2136,13 @@ impl Bindgen for FunctionBindgen<'_> {

Instruction::CallWasm {
iface: _,
base_name: _,
mangled_name,
name,
sig,
} => {
self.bind_results(sig.results.len(), results);
self.src.js(&self.src_object);
self.src.js("._exports['");
self.src.js(&mangled_name);
self.src.js(&name);
self.src.js("'](");
self.src.js(&operands.join(", "));
self.src.js(");\n");
Expand Down
31 changes: 14 additions & 17 deletions crates/gen-host-wasmtime-py/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ struct Imports {
}

struct Import {
base_name: String,
mangled_name: String,
name: String,
src: Source,
wasm_ty: String,
pysig: String,
Expand All @@ -57,7 +56,7 @@ struct Exports {

struct Export {
python_type: &'static str,
base_name: String,
name: String,
}

#[derive(Default, Debug, Clone)]
Expand Down Expand Up @@ -448,8 +447,7 @@ impl Generator for WasmtimePy {
);
wasm_ty.push_str("])");
let import = Import {
base_name: func.name.clone(),
mangled_name: iface.mangle_funcname(func),
name: func.name.clone(),
src: func_body,
wasm_ty,
pysig,
Expand Down Expand Up @@ -530,7 +528,7 @@ impl Generator for WasmtimePy {
"memory".to_string(),
Export {
python_type: "wasmtime.Memory",
base_name: "memory".to_owned(),
name: "memory".to_owned(),
},
);
}
Expand All @@ -539,15 +537,15 @@ impl Generator for WasmtimePy {
name.clone(),
Export {
python_type: "wasmtime.Func",
base_name: name.clone(),
name: name.clone(),
},
);
}
exports.fields.insert(
iface.mangle_funcname(func),
func.name.clone(),
Export {
python_type: "wasmtime.Func",
base_name: func.name.clone(),
name: func.name.clone(),
},
);

Expand Down Expand Up @@ -712,8 +710,8 @@ impl Generator for WasmtimePy {
self.src.push_str(&format!(
"linker.define('{}', '{}', wasmtime.Func(store, ty, {}, access_caller = True))\n",
iface.name,
func.mangled_name,
func.base_name.to_snake_case(),
func.name,
func.name.to_snake_case(),
));
}

Expand Down Expand Up @@ -767,7 +765,7 @@ impl Generator for WasmtimePy {
for (_name, export) in exports.fields.iter() {
self.src.push_str(&format!(
"_{}: {}\n",
export.base_name.to_snake_case(),
export.name.to_snake_case(),
export.python_type
));
}
Expand Down Expand Up @@ -826,7 +824,7 @@ impl Generator for WasmtimePy {
self._{snake} = {snake}
",
name = name,
snake = export.base_name.to_snake_case(),
snake = export.name.to_snake_case(),
ty = export.python_type,
));
}
Expand Down Expand Up @@ -1694,8 +1692,7 @@ impl Bindgen for FunctionBindgen<'_> {
}
Instruction::CallWasm {
iface: _,
base_name,
mangled_name: _,
name,
sig,
} => {
if sig.results.len() > 0 {
Expand All @@ -1711,7 +1708,7 @@ impl Bindgen for FunctionBindgen<'_> {
}
builder.push_str(&self.src_object);
builder.push_str("._");
builder.push_str(&base_name.to_snake_case());
builder.push_str(&name.to_snake_case());
builder.push_str("(caller");
if operands.len() > 0 {
builder.push_str(", ");
Expand Down Expand Up @@ -1771,7 +1768,7 @@ impl Bindgen for FunctionBindgen<'_> {
name.clone(),
Export {
python_type: "wasmtime.Func",
base_name: name.clone(),
name: name.clone(),
},
);
let name = name.to_snake_case();
Expand Down
10 changes: 4 additions & 6 deletions crates/gen-host-wasmtime-rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -618,7 +618,7 @@ impl Generator for Wasmtime {
.entry(iface.name.to_string())
.or_insert(Vec::new())
.push(Import {
name: iface.mangle_funcname(func),
name: func.name.to_string(),
closure,
trait_signature,
});
Expand Down Expand Up @@ -758,8 +758,7 @@ impl Generator for Wasmtime {
format!("wasmtime::TypedFunc<{}>", cvt),
format!(
"instance.get_typed_func::<{}, _>(&mut store, \"{}\")?",
cvt,
iface.mangle_funcname(func),
cvt, func.name,
),
),
);
Expand Down Expand Up @@ -1907,8 +1906,7 @@ impl Bindgen for FunctionBindgen<'_> {

Instruction::CallWasm {
iface: _,
base_name,
mangled_name: _,
name,
sig,
} => {
if sig.results.len() > 0 {
Expand All @@ -1923,7 +1921,7 @@ impl Bindgen for FunctionBindgen<'_> {
self.push_str(") = ");
}
self.push_str("self.");
self.push_str(&to_rust_ident(base_name));
self.push_str(&to_rust_ident(name));
self.push_str(".call(");
self.push_str("&mut caller, (");
for operand in operands {
Expand Down
6 changes: 2 additions & 4 deletions crates/wit-parser/src/abi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -615,8 +615,7 @@ def_instruction! {
/// provided inline as well as the types if necessary.
CallWasm {
iface: &'a Interface,
base_name: &'a str,
mangled_name: String,
name: &'a str,
sig: &'a WasmSignature,
} : [sig.params.len()] => [sig.results.len()],

Expand Down Expand Up @@ -1154,8 +1153,7 @@ impl<'a, B: Bindgen> Generator<'a, B> {
assert_eq!(self.stack.len(), sig.params.len());
self.emit(&Instruction::CallWasm {
iface: self.iface,
base_name: &func.name,
mangled_name: self.iface.mangle_funcname(func),
name: &func.name,
sig: &sig,
});

Expand Down
1 change: 0 additions & 1 deletion crates/wit-parser/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ use std::path::{Path, PathBuf};

pub mod abi;
mod ast;
pub mod mangle;
mod sizealign;
pub use sizealign::*;

Expand Down
Loading