From 49f93b7975b2f625deab88d1227fb93ead150e1e Mon Sep 17 00:00:00 2001 From: code002lover Date: Sun, 5 May 2024 21:13:48 +0200 Subject: [PATCH] WIP update dependencies --- codegen/luajit/Cargo.toml | 2 +- codegen/luajit/src/translator.rs | 14 ++++++++++---- codegen/luau/Cargo.toml | 2 +- codegen/luau/src/translator.rs | 2 +- dev-test/Cargo.toml | 6 +++--- dev-test/tests/luajit_translate.rs | 4 ++-- dev-test/tests/luau_translate.rs | 4 ++-- dev-test/tests/target.rs | 4 ++-- wasm-ast/Cargo.toml | 2 +- wasm-ast/src/module.rs | 10 ++++++---- 10 files changed, 29 insertions(+), 21 deletions(-) diff --git a/codegen/luajit/Cargo.toml b/codegen/luajit/Cargo.toml index 2f5396e..3fd1a4a 100644 --- a/codegen/luajit/Cargo.toml +++ b/codegen/luajit/Cargo.toml @@ -4,7 +4,7 @@ version = "0.12.0" edition = "2021" [dependencies] -wasmparser = "0.107.0" +wasmparser = "0.206.0" [dependencies.wasm-ast] path = "../../wasm-ast" diff --git a/codegen/luajit/src/translator.rs b/codegen/luajit/src/translator.rs index 327f3a4..1642aba 100644 --- a/codegen/luajit/src/translator.rs +++ b/codegen/luajit/src/translator.rs @@ -41,14 +41,16 @@ fn reader_to_code(reader: OperatorsReader) -> Vec { } fn write_named_array(name: &str, len: usize, w: &mut dyn Write) -> Result<()> { - let Some(len) = len.checked_sub(1) else { return Ok(()) }; + let Some(len) = len.checked_sub(1) else { + return Ok(()); + }; writeln!(w, "local {name} = table_new({len}, 1)") } fn write_constant(init: &ConstExpr, type_info: &TypeInfo, w: &mut dyn Write) -> Result<()> { let code = reader_to_code(init.get_operators_reader()); - let func = Factory::from_type_info(type_info).create_anonymous(&code); + let func = Factory::from_type_info(type_info).create_anonymous(code.as_slice()); if let Some(Statement::SetTemporary(stat)) = func.code().code().last() { stat.value().write(&mut Manager::empty(), w) @@ -151,7 +153,11 @@ fn write_global_list(wasm: &Module, type_info: &TypeInfo, w: &mut dyn Write) -> fn write_element_list(list: &[Element], type_info: &TypeInfo, w: &mut dyn Write) -> Result<()> { for element in list { - let ElementKind::Active { table_index: index, offset_expr: init } = element.kind else { + let ElementKind::Active { + table_index: index, + offset_expr: init, + } = element.kind + else { unimplemented!("passive elements not supported") }; @@ -173,7 +179,7 @@ fn write_element_list(list: &[Element], type_info: &TypeInfo, w: &mut dyn Write) write!(w, "FUNC_LIST[{index}],")?; } } - ElementItems::Expressions(expressions) => { + ElementItems::Expressions(_, expressions) => { for init in expressions { let init = init.unwrap(); write_constant(&init, type_info, w)?; diff --git a/codegen/luau/Cargo.toml b/codegen/luau/Cargo.toml index 9295065..57ad6bd 100644 --- a/codegen/luau/Cargo.toml +++ b/codegen/luau/Cargo.toml @@ -4,7 +4,7 @@ version = "0.12.0" edition = "2021" [dependencies] -wasmparser = "0.107.0" +wasmparser = "0.206.0" [dependencies.wasm-ast] path = "../../wasm-ast" diff --git a/codegen/luau/src/translator.rs b/codegen/luau/src/translator.rs index 4ef8432..5f8def3 100644 --- a/codegen/luau/src/translator.rs +++ b/codegen/luau/src/translator.rs @@ -180,7 +180,7 @@ fn write_element_list(list: &[Element], type_info: &TypeInfo, w: &mut dyn Write) write!(w, "FUNC_LIST[{index}],")?; } } - ElementItems::Expressions(expressions) => { + ElementItems::Expressions(_, expressions) => { for init in expressions { let init = init.unwrap(); write_constant(&init, type_info, w)?; diff --git a/dev-test/Cargo.toml b/dev-test/Cargo.toml index 7a12085..14ff7fa 100644 --- a/dev-test/Cargo.toml +++ b/dev-test/Cargo.toml @@ -8,15 +8,15 @@ publish = false cargo-fuzz = true [dependencies] -libfuzzer-sys = "0.4.6" -wasm-smith = "0.12.10" +libfuzzer-sys = "0.4.7" +wasm-smith = "0.206.0" wasm-ast = { path = "../wasm-ast" } codegen-luajit = { path = "../codegen/luajit" } codegen-luau = { path = "../codegen/luau" } [dev-dependencies] test-generator = "0.3.1" -wast = "60.0.0" +wast = "206.0.0" [[bin]] name = "luajit_translate" diff --git a/dev-test/tests/luajit_translate.rs b/dev-test/tests/luajit_translate.rs index 56164b7..08df5b5 100644 --- a/dev-test/tests/luajit_translate.rs +++ b/dev-test/tests/luajit_translate.rs @@ -74,7 +74,7 @@ impl Target for LuaJIT { Self::write_call_of("assert_trap", data, w)?; writeln!(w) } - WastExecute::Get { module, global } => { + WastExecute::Get { module, global, .. } => { let name = get_name_from_id(*module); write!(w, "assert_neq(")?; @@ -114,7 +114,7 @@ impl Target for LuaJIT { writeln!(w, "}})") } - WastExecute::Get { module, global } => { + WastExecute::Get { module, global, .. } => { let name = get_name_from_id(*module); write!(w, "assert_eq(")?; diff --git a/dev-test/tests/luau_translate.rs b/dev-test/tests/luau_translate.rs index 051f1f6..ffe517f 100644 --- a/dev-test/tests/luau_translate.rs +++ b/dev-test/tests/luau_translate.rs @@ -88,7 +88,7 @@ impl Target for Luau { Self::write_call_of("assert_trap", data, w)?; writeln!(w) } - WastExecute::Get { module, global } => { + WastExecute::Get { module, global, .. } => { let name = get_name_from_id(*module); write!(w, "assert_neq(")?; @@ -128,7 +128,7 @@ impl Target for Luau { writeln!(w, "}})") } - WastExecute::Get { module, global } => { + WastExecute::Get { module, global, .. } => { let name = get_name_from_id(*module); write!(w, "assert_eq(")?; diff --git a/dev-test/tests/target.rs b/dev-test/tests/target.rs index 702cd8f..26ad76e 100644 --- a/dev-test/tests/target.rs +++ b/dev-test/tests/target.rs @@ -41,8 +41,8 @@ macro_rules! impl_write_number_nan { }; } -impl_write_number_nan!(write_f32, write_f32_nan, f32, wast::token::Float32); -impl_write_number_nan!(write_f64, write_f64_nan, f64, wast::token::Float64); +impl_write_number_nan!(write_f32, write_f32_nan, f32, wast::token::F32); +impl_write_number_nan!(write_f64, write_f64_nan, f64, wast::token::F64); #[allow(clippy::missing_const_for_fn)] fn try_into_ast_module(data: QuoteWat) -> Option { diff --git a/wasm-ast/Cargo.toml b/wasm-ast/Cargo.toml index 090b986..c0134d3 100644 --- a/wasm-ast/Cargo.toml +++ b/wasm-ast/Cargo.toml @@ -4,4 +4,4 @@ version = "0.12.0" edition = "2021" [dependencies] -wasmparser = "0.107.0" +wasmparser = "0.206.0" diff --git a/wasm-ast/src/module.rs b/wasm-ast/src/module.rs index 3d8a19c..519368f 100644 --- a/wasm-ast/src/module.rs +++ b/wasm-ast/src/module.rs @@ -2,7 +2,8 @@ use std::collections::HashMap; use wasmparser::{ BlockType, Data, Element, Export, ExternalKind, FunctionBody, Global, Import, LocalsReader, - MemoryType, Name, NameSectionReader, Parser, Payload, Result, Table, Type, TypeRef, ValType, + MemoryType, Name, NameSectionReader, Parser, Payload, RecGroup as Type, Result, Table, TypeRef, + ValType, }; #[derive(PartialEq, Eq, Clone, Copy)] @@ -255,10 +256,11 @@ impl<'a> TypeInfo<'a> { } pub(crate) fn by_type_index(&self, index: usize) -> (usize, usize) { - let Type::Func(ty) = &self.type_list[index] else { - unreachable!("type at func index must be a func type"); - }; + // let Type::Func(ty) = &self.type_list[index] else { + // unreachable!("type at func index must be a func type"); + // }; + let ty = self.type_list[index].types().next().unwrap().unwrap_func(); (ty.params().len(), ty.results().len()) }