summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/cli/src/bin.rs2
-rw-r--r--crates/parser/src/lib.rs2
-rw-r--r--crates/parser/src/module.rs2
-rw-r--r--crates/parser/src/visit.rs15
-rw-r--r--crates/tinywasm/Cargo.toml2
-rw-r--r--crates/tinywasm/src/error.rs4
-rw-r--r--crates/tinywasm/src/func.rs2
-rw-r--r--crates/tinywasm/src/instance.rs4
-rw-r--r--crates/tinywasm/src/store/table.rs3
-rw-r--r--crates/tinywasm/tests/host_func_signature_check.rs2
-rw-r--r--crates/tinywasm/tests/testsuite/run.rs24
-rw-r--r--crates/types/src/archive.rs2
-rw-r--r--crates/types/src/value.rs4
13 files changed, 42 insertions, 26 deletions
diff --git a/crates/cli/src/bin.rs b/crates/cli/src/bin.rs
index 8c0fe93..d00848e 100644
--- a/crates/cli/src/bin.rs
+++ b/crates/cli/src/bin.rs
@@ -82,7 +82,7 @@ fn main() -> Result<()> {
match args.nested {
TinyWasmSubcommand::Run(Run { wasm_file, engine, args, func }) => {
- debug!("args: {:?}", args);
+ debug!("args: {args:?}");
let path = cwd.join(wasm_file.clone());
let module = match wasm_file.ends_with(".wat") {
diff --git a/crates/parser/src/lib.rs b/crates/parser/src/lib.rs
index aa33995..f0196b6 100644
--- a/crates/parser/src/lib.rs
+++ b/crates/parser/src/lib.rs
@@ -83,6 +83,8 @@ impl Parser {
cm_nested_names: false,
cm_values: false,
cm_error_context: false,
+ cm_fixed_size_list: false,
+ cm_gc: false,
};
Validator::new_with_features(features.into())
}
diff --git a/crates/parser/src/module.rs b/crates/parser/src/module.rs
index 0e17ad9..3a3becd 100644
--- a/crates/parser/src/module.rs
+++ b/crates/parser/src/module.rs
@@ -125,7 +125,7 @@ impl ModuleReader {
self.code_type_addrs = reader.into_iter().map(|f| Ok(f?)).collect::<Result<Vec<_>>>()?;
}
CodeSectionStart { count, range, .. } => {
- debug!("Found code section ({} functions)", count);
+ debug!("Found code section ({count} functions)");
if !self.code.is_empty() {
return Err(ParseError::DuplicateSection("Code section".into()));
}
diff --git a/crates/parser/src/visit.rs b/crates/parser/src/visit.rs
index 10005c0..1635d2d 100644
--- a/crates/parser/src/visit.rs
+++ b/crates/parser/src/visit.rs
@@ -453,6 +453,21 @@ impl<'a, R: WasmModuleResources> wasmparser::VisitOperator<'a> for FunctionBuild
self.instructions.push(Instruction::RefIsNull);
}
+ fn visit_typed_select_multi(&mut self, _tys: Vec<wasmparser::ValType>) -> Self::Output {
+ self.errors.push(crate::ParseError::UnsupportedOperator(
+ "Typed select with multiple types is not supported".to_string(),
+ ));
+
+ // self.instructions.extend(tys.into_iter().map(|ty| match ty {
+ // wasmparser::ValType::I32 => Instruction::Select32,
+ // wasmparser::ValType::F32 => Instruction::Select32,
+ // wasmparser::ValType::I64 => Instruction::Select64,
+ // wasmparser::ValType::F64 => Instruction::Select64,
+ // wasmparser::ValType::V128 => Instruction::Select128,
+ // wasmparser::ValType::Ref(_) => Instruction::SelectRef,
+ // }));
+ }
+
fn visit_typed_select(&mut self, ty: wasmparser::ValType) -> Self::Output {
self.instructions.push(match ty {
wasmparser::ValType::I32 => Instruction::Select32,
diff --git a/crates/tinywasm/Cargo.toml b/crates/tinywasm/Cargo.toml
index 10a3099..427b45e 100644
--- a/crates/tinywasm/Cargo.toml
+++ b/crates/tinywasm/Cargo.toml
@@ -20,7 +20,7 @@ tinywasm-types={version="0.9.0-alpha.0", path="../types", default-features=false
libm={version="0.2", default-features=false}
[dev-dependencies]
-wasm-testsuite={version="0.5.3"}
+wasm-testsuite={version="0.5.4"}
indexmap="2.7"
wast={workspace=true}
wat={workspace=true}
diff --git a/crates/tinywasm/src/error.rs b/crates/tinywasm/src/error.rs
index 9637521..fcaac1a 100644
--- a/crates/tinywasm/src/error.rs
+++ b/crates/tinywasm/src/error.rs
@@ -211,9 +211,9 @@ impl Display for Error {
impl Display for LinkingError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
- Self::UnknownImport { module, name } => write!(f, "unknown import: {}.{}", module, name),
+ Self::UnknownImport { module, name } => write!(f, "unknown import: {module}.{name}"),
Self::IncompatibleImportType { module, name } => {
- write!(f, "incompatible import type: {}.{}", module, name)
+ write!(f, "incompatible import type: {module}.{name}")
}
}
}
diff --git a/crates/tinywasm/src/func.rs b/crates/tinywasm/src/func.rs
index 2eeabca..642377a 100644
--- a/crates/tinywasm/src/func.rs
+++ b/crates/tinywasm/src/func.rs
@@ -39,7 +39,7 @@ impl FuncHandle {
// 5. For each value type and the corresponding value, check if types match
if !(func_ty.params.iter().zip(params).enumerate().all(|(_i, (ty, param))| {
if ty != &param.val_type() {
- log::error!("param type mismatch at index {}: expected {:?}, got {:?}", _i, ty, param);
+ log::error!("param type mismatch at index {_i}: expected {ty:?}, got {param:?}");
false
} else {
true
diff --git a/crates/tinywasm/src/instance.rs b/crates/tinywasm/src/instance.rs
index eebf5ff..9a0d1e2 100644
--- a/crates/tinywasm/src/instance.rs
+++ b/crates/tinywasm/src/instance.rs
@@ -192,7 +192,7 @@ impl ModuleInstance {
pub fn exported_memory<'a>(&self, store: &'a mut Store, name: &str) -> Result<MemoryRef<'a>> {
let export = self.export_addr(name).ok_or_else(|| Error::Other(format!("Export not found: {name}")))?;
let ExternVal::Memory(mem_addr) = export else {
- return Err(Error::Other(format!("Export is not a memory: {}", name)));
+ return Err(Error::Other(format!("Export is not a memory: {name}")));
};
self.memory(store, mem_addr)
@@ -202,7 +202,7 @@ impl ModuleInstance {
pub fn exported_memory_mut<'a>(&self, store: &'a mut Store, name: &str) -> Result<MemoryRefMut<'a>> {
let export = self.export_addr(name).ok_or_else(|| Error::Other(format!("Export not found: {name}")))?;
let ExternVal::Memory(mem_addr) = export else {
- return Err(Error::Other(format!("Export is not a memory: {}", name)));
+ return Err(Error::Other(format!("Export is not a memory: {name}")));
};
self.memory_mut(store, mem_addr)
diff --git a/crates/tinywasm/src/store/table.rs b/crates/tinywasm/src/store/table.rs
index f83de9b..6192119 100644
--- a/crates/tinywasm/src/store/table.rs
+++ b/crates/tinywasm/src/store/table.rs
@@ -250,8 +250,7 @@ mod tests {
let elem = table_instance.get(i);
assert!(
elem.is_ok() && matches!(elem.unwrap(), &TableElement::Initialized(_)),
- "Element not initialized correctly at index {}",
- i
+ "Element not initialized correctly at index {i}"
);
}
}
diff --git a/crates/tinywasm/tests/host_func_signature_check.rs b/crates/tinywasm/tests/host_func_signature_check.rs
index 698ad61..9389435 100644
--- a/crates/tinywasm/tests/host_func_signature_check.rs
+++ b/crates/tinywasm/tests/host_func_signature_check.rs
@@ -147,7 +147,7 @@ fn proxy_module(func_ty: &FuncType) -> Module {
let params_text = join_surround(params, "param");
let params_gets: String = params.iter().enumerate().fold(String::new(), |mut acc, (num, _)| {
- let _ = writeln!(acc, "(local.get {num})", num = num);
+ let _ = writeln!(acc, "(local.get {num})");
acc
});
diff --git a/crates/tinywasm/tests/testsuite/run.rs b/crates/tinywasm/tests/testsuite/run.rs
index d09efdb..c46a276 100644
--- a/crates/tinywasm/tests/testsuite/run.rs
+++ b/crates/tinywasm/tests/testsuite/run.rs
@@ -31,7 +31,7 @@ impl ModuleRegistry {
}
}
fn register(&mut self, name: String, addr: ModuleInstanceAddr) {
- log::debug!("registering module: {}", name);
+ log::debug!("registering module: {name}");
self.modules.insert(name.clone(), addr);
self.last_module = Some(addr);
@@ -99,22 +99,22 @@ impl TestSuite {
});
let print_i32 = Extern::typed_func(|_ctx: tinywasm::FuncContext, arg: i32| {
- log::debug!("print_i32: {}", arg);
+ log::debug!("print_i32: {arg}");
Ok(())
});
let print_i64 = Extern::typed_func(|_ctx: tinywasm::FuncContext, arg: i64| {
- log::debug!("print_i64: {}", arg);
+ log::debug!("print_i64: {arg}");
Ok(())
});
let print_f32 = Extern::typed_func(|_ctx: tinywasm::FuncContext, arg: f32| {
- log::debug!("print_f32: {}", arg);
+ log::debug!("print_f32: {arg}");
Ok(())
});
let print_f64 = Extern::typed_func(|_ctx: tinywasm::FuncContext, arg: f64| {
- log::debug!("print_f64: {}", arg);
+ log::debug!("print_f64: {arg}");
Ok(())
});
@@ -148,7 +148,7 @@ impl TestSuite {
.define("spectest", "print_f64_f64", print_f64_f64)?;
for (name, addr) in modules {
- log::debug!("registering module: {}", name);
+ log::debug!("registering module: {name}");
imports.link_module(name, *addr)?;
}
@@ -158,7 +158,7 @@ impl TestSuite {
pub fn run_files<'a>(&mut self, tests: impl IntoIterator<Item = TestFile<'a>>) -> Result<()> {
tests.into_iter().for_each(|group| {
let name = group.name();
- println!("running group: {}", name);
+ println!("running group: {name}");
if self.1.contains(&name.to_string()) {
info!("skipping group: {name}");
self.test_group(&format!("{name} (skipped)"), name);
@@ -217,7 +217,7 @@ impl TestSuite {
.map_err(|e| eyre!("failed to parse wat module: {:?}", try_downcast_panic(e)));
match &result {
- Err(err) => debug!("failed to parse module: {:?}", err),
+ Err(err) => debug!("failed to parse module: {err:?}"),
Ok((name, module)) => module_registry.update_last_module(module.id(), name.clone()),
};
@@ -402,7 +402,7 @@ impl TestSuite {
let args = convert_wastargs(invoke.args)?;
let module = module_registry.get_idx(invoke.module);
exec_fn_instance(module, &mut store, invoke.name, &args).map_err(|e| {
- error!("failed to execute function: {:?}", e);
+ error!("failed to execute function: {e:?}");
e
})?;
Ok(())
@@ -413,7 +413,7 @@ impl TestSuite {
}
AssertReturn { span, exec, results } => {
- info!("AssertReturn: {:?}", exec);
+ info!("AssertReturn: {exec:?}");
let expected = match convert_wastret(results.into_iter()) {
Err(err) => {
test_group.add_result(
@@ -489,11 +489,11 @@ impl TestSuite {
let invoke_name = invoke.name;
let res: Result<Result<()>, _> = catch_unwind_silent(|| {
- debug!("invoke: {:?}", invoke);
+ debug!("invoke: {invoke:?}");
let args = convert_wastargs(invoke.args)?;
let module = module_registry.get_idx(invoke.module);
let outcomes = exec_fn_instance(module, &mut store, invoke.name, &args).map_err(|e| {
- error!("failed to execute function: {:?}", e);
+ error!("failed to execute function: {e:?}");
e
})?;
diff --git a/crates/types/src/archive.rs b/crates/types/src/archive.rs
index cbc22ad..b190d43 100644
--- a/crates/types/src/archive.rs
+++ b/crates/types/src/archive.rs
@@ -37,7 +37,7 @@ impl Display for TwasmError {
TwasmError::InvalidMagic => write!(f, "Invalid twasm: invalid magic number"),
TwasmError::InvalidVersion => write!(f, "Invalid twasm: invalid version"),
TwasmError::InvalidPadding => write!(f, "Invalid twasm: invalid padding"),
- TwasmError::InvalidArchive(e) => write!(f, "Invalid twasm: {}", e),
+ TwasmError::InvalidArchive(e) => write!(f, "Invalid twasm: {e}"),
}
}
}
diff --git a/crates/types/src/value.rs b/crates/types/src/value.rs
index a9498cc..b68836b 100644
--- a/crates/types/src/value.rs
+++ b/crates/types/src/value.rs
@@ -32,7 +32,7 @@ pub struct FuncRef(Option<FuncAddr>);
impl Debug for ExternRef {
fn fmt(&self, f: &mut alloc::fmt::Formatter<'_>) -> alloc::fmt::Result {
match self.0 {
- Some(addr) => write!(f, "extern({:?})", addr),
+ Some(addr) => write!(f, "extern({addr:?})"),
None => write!(f, "extern(null)"),
}
}
@@ -41,7 +41,7 @@ impl Debug for ExternRef {
impl Debug for FuncRef {
fn fmt(&self, f: &mut alloc::fmt::Formatter<'_>) -> alloc::fmt::Result {
match self.0 {
- Some(addr) => write!(f, "func({:?})", addr),
+ Some(addr) => write!(f, "func({addr:?})"),
None => write!(f, "func(null)"),
}
}