Bump dependencies

wasm-smith: 0.11.0 -> 0.12.0
wasmparser: 0.86.0 -> 0.99.0
wast: 42.0.0 -> 52.0.2
This commit is contained in:
wackbyte
2023-01-26 23:22:02 -05:00
parent 2f8eadad6c
commit 7066e2ebd8
11 changed files with 104 additions and 96 deletions
+18 -22
View File
@@ -5,8 +5,8 @@ use std::{
use wasm_ast::module::{Module, TypeInfo};
use wast::{
core::{Expression, Instruction},
AssertExpression, WastExecute, WastInvoke, Wat,
core::{WastArgCore, WastRetCore},
WastArg, WastExecute, WastInvoke, WastRet, Wat,
};
use target::{get_name_from_id, Target};
@@ -18,26 +18,22 @@ static ASSERTION: &str = include_str!("luajit_assert.lua");
struct LuaJIT;
impl LuaJIT {
fn write_expression(data: &Expression, w: &mut dyn Write) -> Result<()> {
let data = &data.instrs;
assert_eq!(data.len(), 1, "Only one instruction supported");
match &data[0] {
Instruction::I32Const(v) => write!(w, "{v}"),
Instruction::I64Const(v) => write!(w, "{v}LL"),
Instruction::F32Const(v) => target::write_f32(f32::from_bits(v.bits), w),
Instruction::F64Const(v) => target::write_f64(f64::from_bits(v.bits), w),
_ => panic!("Unsupported instruction"),
fn write_arg(data: &WastArg, w: &mut dyn Write) -> Result<()> {
match data {
WastArg::Core(WastArgCore::I32(v)) => write!(w, "{v}"),
WastArg::Core(WastArgCore::I64(v)) => write!(w, "{v}LL"),
WastArg::Core(WastArgCore::F32(v)) => target::write_f32(f32::from_bits(v.bits), w),
WastArg::Core(WastArgCore::F64(v)) => target::write_f64(f64::from_bits(v.bits), w),
_ => panic!("Unsupported expression"),
}
}
fn write_simple_expression(data: &AssertExpression, w: &mut dyn Write) -> Result<()> {
fn write_ret(data: &WastRet, w: &mut dyn Write) -> Result<()> {
match data {
AssertExpression::I32(v) => write!(w, "{v}"),
AssertExpression::I64(v) => write!(w, "{v}LL"),
AssertExpression::F32(v) => target::write_f32_nan(v, w),
AssertExpression::F64(v) => target::write_f64_nan(v, w),
WastRet::Core(WastRetCore::I32(v)) => write!(w, "{v}"),
WastRet::Core(WastRetCore::I64(v)) => write!(w, "{v}LL"),
WastRet::Core(WastRetCore::F32(v)) => target::write_f32_nan(v, w),
WastRet::Core(WastRetCore::F64(v)) => target::write_f64_nan(v, w),
_ => panic!("Unsupported expression"),
}
}
@@ -51,7 +47,7 @@ impl LuaJIT {
data.args.iter().try_for_each(|v| {
write!(w, ", ")?;
Self::write_expression(v, w)
Self::write_arg(v, w)
})?;
write!(w, ")")
@@ -101,7 +97,7 @@ impl Target for LuaJIT {
fn write_assert_return(
data: &mut WastExecute,
result: &[AssertExpression],
result: &[WastRet],
w: &mut dyn Write,
) -> Result<()> {
match data {
@@ -112,7 +108,7 @@ impl Target for LuaJIT {
write!(w, "}}, {{")?;
for v in result {
Self::write_simple_expression(v, w)?;
Self::write_ret(v, w)?;
write!(w, ", ")?;
}
@@ -124,7 +120,7 @@ impl Target for LuaJIT {
write!(w, "assert_eq(")?;
write!(w, r#"loaded["{name}"].global_list["{global}"].value"#)?;
write!(w, ", ")?;
Self::write_simple_expression(&result[0], w)?;
Self::write_ret(&result[0], w)?;
writeln!(w, ")")
}
WastExecute::Wat(_) => panic!("Wat not supported"),
+18 -22
View File
@@ -5,8 +5,8 @@ use std::{
use wasm_ast::module::{Module, TypeInfo};
use wast::{
core::{Expression, Instruction},
AssertExpression, WastExecute, WastInvoke, Wat,
core::{WastArgCore, WastRetCore},
WastArg, WastExecute, WastInvoke, WastRet, Wat,
};
use target::{get_name_from_id, Target};
@@ -31,26 +31,22 @@ impl Luau {
write!(w, "rt.i64.from_u32({data_1}, {data_2})")
}
fn write_expression(data: &Expression, w: &mut dyn Write) -> Result<()> {
let data = &data.instrs;
assert_eq!(data.len(), 1, "Only one instruction supported");
match &data[0] {
Instruction::I32Const(v) => Self::write_i32(*v, w),
Instruction::I64Const(v) => Self::write_i64(*v, w),
Instruction::F32Const(v) => target::write_f32(f32::from_bits(v.bits), w),
Instruction::F64Const(v) => target::write_f64(f64::from_bits(v.bits), w),
_ => panic!("Unsupported instruction"),
fn write_arg(data: &WastArg, w: &mut dyn Write) -> Result<()> {
match data {
WastArg::Core(WastArgCore::I32(v)) => Self::write_i32(*v, w),
WastArg::Core(WastArgCore::I64(v)) => Self::write_i64(*v, w),
WastArg::Core(WastArgCore::F32(v)) => target::write_f32(f32::from_bits(v.bits), w),
WastArg::Core(WastArgCore::F64(v)) => target::write_f64(f64::from_bits(v.bits), w),
_ => panic!("Unsupported expression"),
}
}
fn write_simple_expression(data: &AssertExpression, w: &mut dyn Write) -> Result<()> {
fn write_ret(data: &WastRet, w: &mut dyn Write) -> Result<()> {
match data {
AssertExpression::I32(v) => Self::write_i32(*v, w),
AssertExpression::I64(v) => Self::write_i64(*v, w),
AssertExpression::F32(v) => target::write_f32_nan(v, w),
AssertExpression::F64(v) => target::write_f64_nan(v, w),
WastRet::Core(WastRetCore::I32(v)) => Self::write_i32(*v, w),
WastRet::Core(WastRetCore::I64(v)) => Self::write_i64(*v, w),
WastRet::Core(WastRetCore::F32(v)) => target::write_f32_nan(v, w),
WastRet::Core(WastRetCore::F64(v)) => target::write_f64_nan(v, w),
_ => panic!("Unsupported expression"),
}
}
@@ -64,7 +60,7 @@ impl Luau {
data.args.iter().try_for_each(|v| {
write!(w, ", ")?;
Self::write_expression(v, w)
Self::write_arg(v, w)
})?;
write!(w, ")")
@@ -114,7 +110,7 @@ impl Target for Luau {
fn write_assert_return(
data: &mut WastExecute,
result: &[AssertExpression],
result: &[WastRet],
w: &mut dyn Write,
) -> Result<()> {
match data {
@@ -125,7 +121,7 @@ impl Target for Luau {
write!(w, "}}, {{")?;
for v in result {
Self::write_simple_expression(v, w)?;
Self::write_ret(v, w)?;
write!(w, ", ")?;
}
@@ -137,7 +133,7 @@ impl Target for Luau {
write!(w, "assert_eq(")?;
write!(w, r#"loaded["{name}"].global_list["{global}"].value"#)?;
write!(w, ", ")?;
Self::write_simple_expression(&result[0], w)?;
Self::write_ret(&result[0], w)?;
writeln!(w, ")")
}
WastExecute::Wat(_) => panic!("Wat not supported"),
+5 -5
View File
@@ -7,8 +7,8 @@ use std::{
use wasm_ast::module::Module as AstModule;
use wast::{
core::Module as WaModule, parser::ParseBuffer, token::Id, AssertExpression, QuoteWat, Wast,
WastDirective, WastExecute, WastInvoke, Wat,
core::Module as WaModule, parser::ParseBuffer, token::Id, QuoteWat, Wast, WastDirective,
WastExecute, WastInvoke, WastRet, Wat,
};
macro_rules! impl_write_number_nan {
@@ -23,8 +23,8 @@ macro_rules! impl_write_number_nan {
}
}
pub fn $name_nan(data: &wast::NanPattern<$pattern>, w: &mut dyn Write) -> Result<()> {
use wast::NanPattern;
pub fn $name_nan(data: &wast::core::NanPattern<$pattern>, w: &mut dyn Write) -> Result<()> {
use wast::core::NanPattern;
match data {
NanPattern::CanonicalNan => write!(w, "LUA_NAN_CANONICAL"),
@@ -65,7 +65,7 @@ pub trait Target: Sized {
fn write_assert_return(
data: &mut WastExecute,
result: &[AssertExpression],
result: &[WastRet],
w: &mut dyn Write,
) -> Result<()>;