diff --git a/Cargo.lock b/Cargo.lock index 8ae585749849..9acbf3529074 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3249,18 +3249,18 @@ checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" [[package]] name = "wasm-encoder" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d443c5a7daae71697d97ec12ad70b4fe8766d3a0f4db16158ac8b781365892f7" +checksum = "7e7ca71c70a6de5b10968ae4d298e548366d9cd9588176e6ff8866f3c49c96ee" dependencies = [ "leb128", ] [[package]] name = "wasm-mutate" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04ad5c8a18bf9d8d07ad9df8dea5e8ff701ab3472583a79350c3ab5b4766705" +checksum = "e8b98a1c3d9c5970ce9753e0e06c49974e01f5ab50cfca3c14010dd8bec2242d" dependencies = [ "egg", "log", @@ -3272,9 +3272,9 @@ dependencies = [ [[package]] name = "wasm-smith" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3daf8042376731e1873eae92dd609e1d0781105ffc3ffbc452f7bab719c887e2" +checksum = "7b3aa9c99fbb0df9453b0ab577a797f3fc538882b9f070fd389600b843cd8878" dependencies = [ "arbitrary", "flagset", @@ -3319,18 +3319,18 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.89.1" +version = "0.91.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5d3e08b13876f96dd55608d03cd4883a0545884932d5adf11925876c96daef" +checksum = "239cdca8b8f356af8118c522d5fea23da45b60832ed4e18ef90bb3c9d8dce24a" dependencies = [ "indexmap", ] [[package]] name = "wasmprinter" -version = "0.2.39" +version = "0.2.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9e5ee2f56cc8a5da489558114e8c118e5a8416d96aefe63dcf1b5b05b858c6" +checksum = "85b5931cf673c4bece6299719c024c08ebe52cbac7124160487a602c81e598c8" dependencies = [ "anyhow", "wasmparser", @@ -3476,7 +3476,7 @@ dependencies = [ "wasmtime-wasi-crypto", "wasmtime-wasi-nn", "wasmtime-wast", - "wast 46.0.0", + "wast 47.0.0", "wat", "windows-sys", ] @@ -3736,7 +3736,7 @@ dependencies = [ "anyhow", "log", "wasmtime", - "wast 46.0.0", + "wast 47.0.0", ] [[package]] @@ -3750,9 +3750,9 @@ dependencies = [ [[package]] name = "wast" -version = "46.0.0" +version = "47.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea0ab19660e3ea6891bba69167b9be40fad00fb1fe3dd39c5eebcee15607131b" +checksum = "117ccfc4262e62a28a13f0548a147f19ffe71e8a08be802af23ae4ea0bedad73" dependencies = [ "leb128", "memchr", @@ -3762,11 +3762,11 @@ dependencies = [ [[package]] name = "wat" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f775282def4d5bffd94d60d6ecd57bfe6faa46171cdbf8d32bd5458842b1e3e" +checksum = "7aab4e20c60429fbba9670a6cae0fff9520046ba0aa3e6d0b1cd2653bea14898" dependencies = [ - "wast 46.0.0", + "wast 47.0.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 3b6daea89c75..786d82616c71 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -145,13 +145,13 @@ cranelift = { path = "cranelift/umbrella", version = "0.89.0" } target-lexicon = { version = "0.12.3", default-features = false } anyhow = "1.0.22" -wasmparser = "0.89.0" -wat = "1.0.48" -wast = "46.0.0" -wasmprinter = "0.2.39" -wasm-encoder = "0.16.0" -wasm-smith = "0.11.4" -wasm-mutate = "0.2.7" +wasmparser = "0.91.0" +wat = "1.0.49" +wast = "47.0.0" +wasmprinter = "0.2.40" +wasm-encoder = "0.17.0" +wasm-smith = "0.11.5" +wasm-mutate = "0.2.8" windows-sys = "0.36.0" env_logger = "0.9" rustix = "0.35.10" diff --git a/cranelift/wasm/src/code_translator.rs b/cranelift/wasm/src/code_translator.rs index be9323043a15..0c93b74d4c61 100644 --- a/cranelift/wasm/src/code_translator.rs +++ b/cranelift/wasm/src/code_translator.rs @@ -94,7 +94,7 @@ use smallvec::SmallVec; use std::cmp; use std::convert::TryFrom; use std::vec::Vec; -use wasmparser::{FuncValidator, MemoryImmediate, Operator, WasmModuleResources}; +use wasmparser::{FuncValidator, MemArg, Operator, WasmModuleResources}; // Clippy warns about "align: _" but its important to document that the flags field is ignored #[cfg_attr( @@ -590,13 +590,14 @@ pub fn translate_operator( state.pushn(inst_results); } Operator::CallIndirect { - index, + type_index, table_index, table_byte: _, } => { - // `index` is the index of the function's signature and `table_index` is the index of - // the table to search the function in. - let (sigref, num_args) = state.get_indirect_sig(builder.func, *index, environ)?; + // `type_index` is the index of the function's signature and + // `table_index` is the index of the table to search the function + // in. + let (sigref, num_args) = state.get_indirect_sig(builder.func, *type_index, environ)?; let table = state.get_or_create_table(builder.func, *table_index, environ)?; let callee = state.pop1(); @@ -608,7 +609,7 @@ pub fn translate_operator( builder, TableIndex::from_u32(*table_index), table, - TypeIndex::from_u32(*index), + TypeIndex::from_u32(*type_index), sigref, callee, state.peekn(num_args), @@ -2005,18 +2006,22 @@ pub fn translate_operator( | Operator::I32x4RelaxedTruncSatF32x4U | Operator::I32x4RelaxedTruncSatF64x2SZero | Operator::I32x4RelaxedTruncSatF64x2UZero - | Operator::F32x4Fma - | Operator::F32x4Fms - | Operator::F64x2Fma - | Operator::F64x2Fms - | Operator::I8x16LaneSelect - | Operator::I16x8LaneSelect - | Operator::I32x4LaneSelect - | Operator::I64x2LaneSelect + | Operator::F32x4RelaxedFma + | Operator::F32x4RelaxedFnma + | Operator::F64x2RelaxedFma + | Operator::F64x2RelaxedFnma + | Operator::I8x16RelaxedLaneselect + | Operator::I16x8RelaxedLaneselect + | Operator::I32x4RelaxedLaneselect + | Operator::I64x2RelaxedLaneselect | Operator::F32x4RelaxedMin | Operator::F32x4RelaxedMax | Operator::F64x2RelaxedMin - | Operator::F64x2RelaxedMax => { + | Operator::F64x2RelaxedMax + | Operator::I16x8RelaxedQ15mulrS + | Operator::I16x8DotI8x16I7x16S + | Operator::I32x4DotI8x16I7x16AddS + | Operator::F32x4RelaxedDotBf16x8AddF32x4 => { return Err(wasm_unsupported!("proposed relaxed-simd operator {:?}", op)); } }; @@ -2165,7 +2170,7 @@ fn translate_unreachable_operator( /// various parameters are returned describing the valid heap address if /// execution reaches that point. fn prepare_addr( - memarg: &MemoryImmediate, + memarg: &MemArg, access_size: u32, builder: &mut FunctionBuilder, state: &mut FuncTranslationState, @@ -2342,7 +2347,7 @@ fn prepare_addr( } fn prepare_atomic_addr( - memarg: &MemoryImmediate, + memarg: &MemArg, loaded_bytes: u32, builder: &mut FunctionBuilder, state: &mut FuncTranslationState, @@ -2394,7 +2399,7 @@ fn prepare_atomic_addr( /// Translate a load instruction. fn translate_load( - memarg: &MemoryImmediate, + memarg: &MemArg, opcode: ir::Opcode, result_ty: Type, builder: &mut FunctionBuilder, @@ -2415,7 +2420,7 @@ fn translate_load( /// Translate a store instruction. fn translate_store( - memarg: &MemoryImmediate, + memarg: &MemArg, opcode: ir::Opcode, builder: &mut FunctionBuilder, state: &mut FuncTranslationState, @@ -2460,7 +2465,7 @@ fn translate_atomic_rmw( widened_ty: Type, access_ty: Type, op: AtomicRmwOp, - memarg: &MemoryImmediate, + memarg: &MemArg, builder: &mut FunctionBuilder, state: &mut FuncTranslationState, environ: &mut FE, @@ -2503,7 +2508,7 @@ fn translate_atomic_rmw( fn translate_atomic_cas( widened_ty: Type, access_ty: Type, - memarg: &MemoryImmediate, + memarg: &MemArg, builder: &mut FunctionBuilder, state: &mut FuncTranslationState, environ: &mut FE, @@ -2550,7 +2555,7 @@ fn translate_atomic_cas( fn translate_atomic_load( widened_ty: Type, access_ty: Type, - memarg: &MemoryImmediate, + memarg: &MemArg, builder: &mut FunctionBuilder, state: &mut FuncTranslationState, environ: &mut FE, @@ -2583,7 +2588,7 @@ fn translate_atomic_load( fn translate_atomic_store( access_ty: Type, - memarg: &MemoryImmediate, + memarg: &MemArg, builder: &mut FunctionBuilder, state: &mut FuncTranslationState, environ: &mut FE, diff --git a/cranelift/wasm/src/func_translator.rs b/cranelift/wasm/src/func_translator.rs index 66aecf3b95df..20fc76d7acce 100644 --- a/cranelift/wasm/src/func_translator.rs +++ b/cranelift/wasm/src/func_translator.rs @@ -406,7 +406,10 @@ mod tests { let mut validator = Validator::new(); for payload in Parser::new(0).parse_all(wat) { match validator.payload(&payload.unwrap()).unwrap() { - ValidPayload::Func(validator, body) => return (body, validator), + ValidPayload::Func(validator, body) => { + let validator = validator.into_validator(Default::default()); + return (body, validator); + } _ => {} } } diff --git a/cranelift/wasm/src/module_translator.rs b/cranelift/wasm/src/module_translator.rs index 78feed45f429..97a5d171b998 100644 --- a/cranelift/wasm/src/module_translator.rs +++ b/cranelift/wasm/src/module_translator.rs @@ -91,7 +91,9 @@ pub fn translate_module<'data>( } Payload::CodeSectionEntry(body) => { - let func_validator = validator.code_section_entry(&body)?; + let func_validator = validator + .code_section_entry(&body)? + .into_validator(Default::default()); environ.define_function_body(func_validator, body)?; } diff --git a/cranelift/wasm/src/sections_translator.rs b/cranelift/wasm/src/sections_translator.rs index e6a91e6dfb72..b48fdf38f459 100644 --- a/cranelift/wasm/src/sections_translator.rs +++ b/cranelift/wasm/src/sections_translator.rs @@ -75,9 +75,10 @@ pub fn parse_type_section<'a>( match entry? { Type::Func(wasm_func_ty) => { environ.declare_type_func(wasm_func_ty.clone().try_into()?)?; - module_translation_state - .wasm_types - .push((wasm_func_ty.params, wasm_func_ty.returns)); + module_translation_state.wasm_types.push(( + wasm_func_ty.params().to_vec().into(), + wasm_func_ty.results().to_vec().into(), + )); } } } diff --git a/crates/cranelift/src/compiler.rs b/crates/cranelift/src/compiler.rs index 6e0c15bdc4da..40be48f546eb 100644 --- a/crates/cranelift/src/compiler.rs +++ b/crates/cranelift/src/compiler.rs @@ -30,6 +30,7 @@ use std::collections::HashMap; use std::convert::TryFrom; use std::mem; use std::sync::{Arc, Mutex}; +use wasmparser::{FuncValidatorAllocations, FunctionBody}; use wasmtime_environ::{ AddressMapSection, CacheStore, CompileError, FilePos, FlagValue, FunctionBodyData, FunctionInfo, InstructionAddressMap, Module, ModuleTranslation, ModuleTypes, PtrSize, @@ -51,6 +52,7 @@ struct CompilerContext { func_translator: FuncTranslator, codegen_context: Context, incremental_cache_ctx: Option, + validator_allocations: FuncValidatorAllocations, } impl Default for CompilerContext { @@ -59,6 +61,7 @@ impl Default for CompilerContext { func_translator: FuncTranslator::new(), codegen_context: Context::new(), incremental_cache_ctx: None, + validator_allocations: Default::default(), } } } @@ -141,13 +144,13 @@ impl Compiler { fn get_function_address_map( &self, context: &Context, - data: &FunctionBodyData<'_>, + body: &FunctionBody<'_>, body_len: u32, tunables: &Tunables, ) -> FunctionAddressMap { // Generate artificial srcloc for function start/end to identify boundary // within module. - let data = data.body.get_binary_reader(); + let data = body.get_binary_reader(); let offset = data.original_position(); let len = data.bytes_remaining(); assert!((offset + len) <= u32::max_value() as usize); @@ -186,7 +189,7 @@ impl wasmtime_environ::Compiler for Compiler { &self, translation: &ModuleTranslation<'_>, func_index: DefinedFuncIndex, - mut input: FunctionBodyData<'_>, + input: FunctionBodyData<'_>, tunables: &Tunables, types: &ModuleTypes, ) -> Result, CompileError> { @@ -198,6 +201,7 @@ impl wasmtime_environ::Compiler for Compiler { mut func_translator, codegen_context: mut context, incremental_cache_ctx: mut cache_ctx, + validator_allocations, } = self.take_context(); context.func.signature = func_signature(isa, translation, types, func_index); @@ -264,9 +268,11 @@ impl wasmtime_environ::Compiler for Compiler { readonly: false, }); context.func.stack_limit = Some(stack_limit); + let FunctionBodyData { validator, body } = input; + let mut validator = validator.into_validator(validator_allocations); func_translator.translate_body( - &mut input.validator, - input.body.clone(), + &mut validator, + body.clone(), &mut context.func, &mut func_env, )?; @@ -300,7 +306,7 @@ impl wasmtime_environ::Compiler for Compiler { }; let address_transform = - self.get_function_address_map(&context, &input, code_buf.len() as u32, tunables); + self.get_function_address_map(&context, &body, code_buf.len() as u32, tunables); let ranges = if tunables.generate_native_debuginfo { Some(context.compiled_code().unwrap().value_labels_ranges.clone()) @@ -320,6 +326,7 @@ impl wasmtime_environ::Compiler for Compiler { func_translator, codegen_context: context, incremental_cache_ctx: cache_ctx, + validator_allocations: validator.into_allocations(), }); Ok(Box::new(CompiledFunction { @@ -566,6 +573,7 @@ impl Compiler { mut func_translator, codegen_context: mut context, incremental_cache_ctx: mut cache_ctx, + validator_allocations, } = self.take_context(); // The name doesn't matter here. @@ -634,6 +642,7 @@ impl Compiler { func_translator, codegen_context: context, incremental_cache_ctx: cache_ctx, + validator_allocations, }); Ok(func) } @@ -679,6 +688,7 @@ impl Compiler { mut func_translator, codegen_context: mut context, incremental_cache_ctx: mut cache_ctx, + validator_allocations, } = self.take_context(); // The name doesn't matter here. @@ -713,6 +723,7 @@ impl Compiler { func_translator, codegen_context: context, incremental_cache_ctx: cache_ctx, + validator_allocations, }); Ok(func) } diff --git a/crates/cranelift/src/compiler/component.rs b/crates/cranelift/src/compiler/component.rs index beb2ff5c424a..d8543de541bb 100644 --- a/crates/cranelift/src/compiler/component.rs +++ b/crates/cranelift/src/compiler/component.rs @@ -32,6 +32,7 @@ impl ComponentCompiler for Compiler { mut func_translator, codegen_context: mut context, mut incremental_cache_ctx, + validator_allocations, } = self.take_context(); context.func = ir::Function::with_name_signature( @@ -156,6 +157,7 @@ impl ComponentCompiler for Compiler { func_translator, codegen_context: context, incremental_cache_ctx, + validator_allocations, }); Ok(Box::new(func)) } @@ -166,6 +168,7 @@ impl ComponentCompiler for Compiler { mut func_translator, codegen_context: mut context, mut incremental_cache_ctx, + validator_allocations, } = self.take_context(); context.func = ir::Function::with_name_signature( ir::UserFuncName::user(0, 0), @@ -187,6 +190,7 @@ impl ComponentCompiler for Compiler { func_translator, codegen_context: context, incremental_cache_ctx, + validator_allocations, }); Ok(Box::new(func)) } @@ -205,6 +209,7 @@ impl ComponentCompiler for Compiler { mut func_translator, codegen_context: mut context, mut incremental_cache_ctx, + validator_allocations, } = self.take_context(); context.func = ir::Function::with_name_signature( @@ -226,6 +231,7 @@ impl ComponentCompiler for Compiler { func_translator, codegen_context: context, incremental_cache_ctx, + validator_allocations, }); Ok(Box::new(func)) } diff --git a/crates/environ/src/component/translate.rs b/crates/environ/src/component/translate.rs index 1205b66f0ddd..44764be3d16e 100644 --- a/crates/environ/src/component/translate.rs +++ b/crates/environ/src/component/translate.rs @@ -626,32 +626,6 @@ impl<'a, 'data> Translator<'a, 'data> { // Aliases of instance exports (either core or component) will be // recorded as an initializer of the appropriate type with outer // aliases handled specially via upvars and type processing. - Payload::AliasSection(s) => { - self.validator.alias_section(&s)?; - for alias in s { - let init = match alias? { - wasmparser::Alias::InstanceExport { - kind, - instance_index, - name, - } => { - let instance = ModuleInstanceIndex::from_u32(instance_index); - self.alias_module_instance_export(kind, instance, name) - } - wasmparser::Alias::Outer { - kind: wasmparser::OuterAliasKind::Type, - count, - index, - } => { - let index = TypeIndex::from_u32(index); - let ty = self.types.core_outer_type(count, index); - self.types.push_core_typedef(ty); - continue; - } - }; - self.result.initializers.push(init); - } - } Payload::ComponentAliasSection(s) => { self.validator.component_alias_section(&s)?; for alias in s { @@ -670,6 +644,14 @@ impl<'a, 'data> Translator<'a, 'data> { self.alias_component_outer(kind, count, index); continue; } + wasmparser::ComponentAlias::CoreInstanceExport { + kind, + instance_index, + name, + } => { + let instance = ModuleInstanceIndex::from_u32(instance_index); + self.alias_module_instance_export(kind, instance, name) + } }; self.result.initializers.push(init); } diff --git a/crates/environ/src/component/types.rs b/crates/environ/src/component/types.rs index e6ec9f7c09c5..b6666308d458 100644 --- a/crates/environ/src/component/types.rs +++ b/crates/environ/src/component/types.rs @@ -509,19 +509,14 @@ impl ComponentTypesBuilder { ); assert!(prev.is_none()); } - wasmparser::ModuleTypeDeclaration::Alias(alias) => match alias { - wasmparser::Alias::Outer { - kind: wasmparser::OuterAliasKind::Type, - count, - index, - } => { - let ty = self.core_outer_type(*count, TypeIndex::from_u32(*index)); - self.push_core_typedef(ty); - } - wasmparser::Alias::InstanceExport { .. } => { - unreachable!("invalid alias {alias:?}") - } - }, + wasmparser::ModuleTypeDeclaration::OuterAlias { + kind: wasmparser::OuterAliasKind::Type, + count, + index, + } => { + let ty = self.core_outer_type(*count, TypeIndex::from_u32(*index)); + self.push_core_typedef(ty); + } } } @@ -640,12 +635,12 @@ impl ComponentTypesBuilder { params: ty .params .iter() - .map(|(name, ty)| (name.map(|s| s.to_string()), self.valtype(ty))) + .map(|(_name, ty)| self.valtype(ty)) .collect(), results: ty .results .iter() - .map(|(name, ty)| (name.map(|s| s.to_string()), self.valtype(ty))) + .map(|(_name, ty)| self.valtype(ty)) .collect(), }; self.add_func_type(ty) @@ -998,9 +993,9 @@ pub struct TypeComponentInstance { pub struct TypeFunc { /// The list of optionally named parameters for this function, and their /// types. - pub params: Box<[(Option, InterfaceType)]>, + pub params: Box<[InterfaceType]>, /// The return values of this function. - pub results: Box<[(Option, InterfaceType)]>, + pub results: Box<[InterfaceType]>, } /// All possible interface types that values can have. diff --git a/crates/environ/src/fact/signature.rs b/crates/environ/src/fact/signature.rs index d01853aca19a..93b58c268e0a 100644 --- a/crates/environ/src/fact/signature.rs +++ b/crates/environ/src/fact/signature.rs @@ -37,7 +37,7 @@ impl ComponentTypesBuilder { let mut params = match self.flatten_types( &options.options, MAX_FLAT_PARAMS, - ty.params.iter().map(|(_, ty)| *ty), + ty.params.iter().copied(), ) { Some(list) => list, None => { @@ -50,7 +50,7 @@ impl ComponentTypesBuilder { let results = match self.flatten_types( &options.options, MAX_FLAT_RESULTS, - ty.results.iter().map(|(_, ty)| *ty), + ty.results.iter().map(|ty| *ty), ) { Some(list) => list, None => { diff --git a/crates/environ/src/fact/trampoline.rs b/crates/environ/src/fact/trampoline.rs index 84e690320bae..9ec24f7c6f46 100644 --- a/crates/environ/src/fact/trampoline.rs +++ b/crates/environ/src/fact/trampoline.rs @@ -313,9 +313,9 @@ impl Compiler<'_, '_> { fn translate_params(&mut self, adapter: &AdapterData, param_locals: &[(u32, ValType)]) { let src_tys = &self.types[adapter.lower.ty].params; - let src_tys = src_tys.iter().map(|(_, ty)| *ty).collect::>(); + let src_tys = src_tys.iter().copied().collect::>(); let dst_tys = &self.types[adapter.lift.ty].params; - let dst_tys = dst_tys.iter().map(|(_, ty)| *ty).collect::>(); + let dst_tys = dst_tys.iter().copied().collect::>(); let lift_opts = &adapter.lift.options; let lower_opts = &adapter.lower.options; @@ -389,9 +389,9 @@ impl Compiler<'_, '_> { result_locals: &[(u32, ValType)], ) { let src_tys = &self.types[adapter.lift.ty].results; - let src_tys = src_tys.iter().map(|(_, ty)| *ty).collect::>(); + let src_tys = src_tys.iter().map(|ty| *ty).collect::>(); let dst_tys = &self.types[adapter.lower.ty].results; - let dst_tys = dst_tys.iter().map(|(_, ty)| *ty).collect::>(); + let dst_tys = dst_tys.iter().map(|ty| *ty).collect::>(); let lift_opts = &adapter.lift.options; let lower_opts = &adapter.lower.options; diff --git a/crates/environ/src/module_environ.rs b/crates/environ/src/module_environ.rs index b029084aeb48..c7af04e57e30 100644 --- a/crates/environ/src/module_environ.rs +++ b/crates/environ/src/module_environ.rs @@ -14,9 +14,9 @@ use std::convert::{TryFrom, TryInto}; use std::path::PathBuf; use std::sync::Arc; use wasmparser::{ - CustomSectionReader, DataKind, ElementItem, ElementKind, Encoding, ExternalKind, FuncValidator, - FunctionBody, NameSectionReader, Naming, Operator, Parser, Payload, Type, TypeRef, Validator, - ValidatorResources, + CustomSectionReader, DataKind, ElementItem, ElementKind, Encoding, ExternalKind, + FuncToValidate, FunctionBody, NameSectionReader, Naming, Operator, Parser, Payload, Type, + TypeRef, Validator, ValidatorResources, }; /// Object containing the standalone environment information. @@ -90,7 +90,7 @@ pub struct FunctionBodyData<'a> { /// The body of the function, containing code and locals. pub body: FunctionBody<'a>, /// Validator for the function body - pub validator: FuncValidator, + pub validator: FuncToValidate, } #[derive(Debug, Default)] diff --git a/crates/fuzzing/src/generators/table_ops.rs b/crates/fuzzing/src/generators/table_ops.rs index 21b13e1fdcc2..e80f010695e6 100644 --- a/crates/fuzzing/src/generators/table_ops.rs +++ b/crates/fuzzing/src/generators/table_ops.rs @@ -325,7 +325,7 @@ mod tests { (import "" "make_refs" (func (;2;) (type 3))) (func (;3;) (type 1) (param externref externref externref externref externref externref externref externref externref externref) (local externref) - loop ;; label = @1 + loop ;; label = @0 call 0 call 2 call 1 diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs index d0e9d06a6578..c5617ae8b722 100644 --- a/crates/types/src/lib.rs +++ b/crates/types/src/lib.rs @@ -129,15 +129,15 @@ impl TryFrom for WasmFuncType { type Error = WasmError; fn try_from(ty: wasmparser::FuncType) -> Result { let params = ty - .params - .into_vec() - .into_iter() + .params() + .iter() + .copied() .map(WasmType::try_from) .collect::>()?; let returns = ty - .returns - .into_vec() - .into_iter() + .results() + .iter() + .copied() .map(WasmType::try_from) .collect::>()?; Ok(Self::new(params, returns)) diff --git a/crates/wasmtime/src/component/func.rs b/crates/wasmtime/src/component/func.rs index f62df418a9f7..3e95e623845c 100644 --- a/crates/wasmtime/src/component/func.rs +++ b/crates/wasmtime/src/component/func.rs @@ -246,10 +246,8 @@ impl Func { let data = &store[self.0]; let ty = &data.types[data.ty]; - Params::typecheck_named_list(&ty.params, &data.types) - .context("type mismatch with parameters")?; - Return::typecheck_named_list(&ty.results, &data.types) - .context("type mismatch with results")?; + Params::typecheck_list(&ty.params, &data.types).context("type mismatch with parameters")?; + Return::typecheck_list(&ty.results, &data.types).context("type mismatch with results")?; Ok(()) } @@ -260,7 +258,7 @@ impl Func { data.types[data.ty] .params .iter() - .map(|(_, ty)| Type::from(ty, &data.types)) + .map(|ty| Type::from(ty, &data.types)) .collect() } @@ -270,7 +268,7 @@ impl Func { data.types[data.ty] .results .iter() - .map(|(_, ty)| Type::from(ty, &data.types)) + .map(|ty| Type::from(ty, &data.types)) .collect() } diff --git a/crates/wasmtime/src/component/func/host.rs b/crates/wasmtime/src/component/func/host.rs index e3c5c520e31e..9f01202ca878 100644 --- a/crates/wasmtime/src/component/func/host.rs +++ b/crates/wasmtime/src/component/func/host.rs @@ -89,16 +89,8 @@ impl HostFunc { func: Box::new(DynamicContext { func, types: Types { - params: ty - .params - .iter() - .map(|(_, ty)| Type::from(ty, types)) - .collect(), - results: ty - .results - .iter() - .map(|(_, ty)| Type::from(ty, types)) - .collect(), + params: ty.params.iter().map(|ty| Type::from(ty, types)).collect(), + results: ty.results.iter().map(|ty| Type::from(ty, types)).collect(), }, }), }) @@ -123,8 +115,8 @@ where R: ComponentNamedList + Lower, { let ty = &types[ty]; - P::typecheck_named_list(&ty.params, types).context("type mismatch with parameters")?; - R::typecheck_named_list(&ty.results, types).context("type mismatch with results")?; + P::typecheck_list(&ty.params, types).context("type mismatch with parameters")?; + R::typecheck_list(&ty.results, types).context("type mismatch with results")?; Ok(()) } diff --git a/crates/wasmtime/src/component/func/typed.rs b/crates/wasmtime/src/component/func/typed.rs index 8cff6b1acfa7..acbce07bab43 100644 --- a/crates/wasmtime/src/component/func/typed.rs +++ b/crates/wasmtime/src/component/func/typed.rs @@ -308,10 +308,7 @@ pub unsafe trait ComponentNamedList: ComponentType { /// Performs a typecheck to ensure that this `ComponentNamedList` /// implementor matches the types of the types in `params`. #[doc(hidden)] - fn typecheck_named_list( - params: &[(Option, InterfaceType)], - types: &ComponentTypes, - ) -> Result<()>; + fn typecheck_list(params: &[InterfaceType], types: &ComponentTypes) -> Result<()>; } /// A trait representing types which can be passed to and read from components @@ -1965,14 +1962,14 @@ macro_rules! impl_component_ty_for_tuples { unsafe impl<$($t,)*> ComponentNamedList for ($($t,)*) where $($t: ComponentType),* { - fn typecheck_named_list( - names: &[(Option, InterfaceType)], + fn typecheck_list( + names: &[InterfaceType], _types: &ComponentTypes, ) -> Result<()> { if names.len() != $n { bail!("expected {} types, found {}", $n, names.len()); } - let mut names = names.iter().map(|i| &i.1); + let mut names = names.iter(); $($t::typecheck(names.next().unwrap(), _types)?;)* debug_assert!(names.next().is_none()); Ok(()) diff --git a/crates/wasmtime/src/module.rs b/crates/wasmtime/src/module.rs index 574f19dd728e..1b35f4f06a7b 100644 --- a/crates/wasmtime/src/module.rs +++ b/crates/wasmtime/src/module.rs @@ -590,7 +590,13 @@ impl Module { } } - engine.run_maybe_parallel(functions, |(mut validator, body)| validator.validate(&body))?; + engine.run_maybe_parallel(functions, |(validator, body)| { + // FIXME: it would be best here to use a rayon-specific parallel + // iterator that maintains state-per-thread to share the function + // validator allocations (`Default::default` here) across multiple + // functions. + validator.into_validator(Default::default()).validate(&body) + })?; Ok(()) } diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml index 668d36305775..587d7c9bbebf 100644 --- a/supply-chain/audits.toml +++ b/supply-chain/audits.toml @@ -212,6 +212,12 @@ criteria = "safe-to-deploy" version = "0.16.0" notes = "The Bytecode Alliance is the author of this crate." +[[audits.wasm-encoder]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.17.0" +notes = "The Bytecode Alliance is the author of this crate." + [[audits.wasm-mutate]] who = "Alex Crichton " criteria = "safe-to-deploy" @@ -230,6 +236,12 @@ criteria = "safe-to-deploy" version = "0.2.7" notes = "The Bytecode Alliance is the author of this crate." +[[audits.wasm-mutate]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.2.8" +notes = "The Bytecode Alliance is the author of this crate." + [[audits.wasm-smith]] who = "Alex Crichton " criteria = "safe-to-deploy" @@ -248,6 +260,12 @@ criteria = "safe-to-deploy" version = "0.11.4" notes = "The Bytecode Alliance is the author of this crate." +[[audits.wasm-smith]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.11.5" +notes = "The Bytecode Alliance is the author of this crate." + [[audits.wasmparser]] who = "Alex Crichton " criteria = "safe-to-deploy" @@ -272,6 +290,12 @@ criteria = "safe-to-deploy" version = "0.89.1" notes = "The Bytecode Alliance is the author of this crate." +[[audits.wasmparser]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.91.0" +notes = "The Bytecode Alliance is the author of this crate." + [[audits.wasmprinter]] who = "Alex Crichton " criteria = "safe-to-deploy" @@ -290,6 +314,12 @@ criteria = "safe-to-deploy" version = "0.2.39" notes = "The Bytecode Alliance is the author of this crate." +[[audits.wasmprinter]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "0.2.40" +notes = "The Bytecode Alliance is the author of this crate." + [[audits.wast]] who = "Alex Crichton " criteria = "safe-to-deploy" @@ -314,6 +344,12 @@ criteria = "safe-to-deploy" version = "46.0.0" notes = "The Bytecode Alliance is the author of this crate." +[[audits.wast]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +version = "47.0.0" +notes = "The Bytecode Alliance is the author of this crate." + [[audits.wat]] who = "Alex Crichton " criteria = "safe-to-deploy" @@ -332,3 +368,9 @@ criteria = "safe-to-deploy" version = "1.0.48" notes = "The Bytecode Alliance is the author of this crate." +[[audits.wat]] +who = "Alex Crichton " +criteria = "safe-to-deploy" +delta = "1.0.48 -> 1.0.49" +notes = "The Bytecode Alliance is the author of this crate." + diff --git a/supply-chain/config.toml b/supply-chain/config.toml index cb3d8ca8f558..a25b12d8e818 100644 --- a/supply-chain/config.toml +++ b/supply-chain/config.toml @@ -54,10 +54,6 @@ criteria = "safe-to-deploy" version = "0.1.8" criteria = "safe-to-deploy" -[[exemptions.autocfg]] -version = "1.1.0" -criteria = "safe-to-deploy" - [[exemptions.base64]] version = "0.13.0" criteria = "safe-to-deploy" @@ -338,10 +334,6 @@ criteria = "safe-to-deploy" version = "1.8.2" criteria = "safe-to-run" -[[exemptions.hashbrown]] -version = "0.12.1" -criteria = "safe-to-deploy" - [[exemptions.hermit-abi]] version = "0.1.19" criteria = "safe-to-deploy" @@ -506,30 +498,10 @@ criteria = "safe-to-deploy" version = "0.3.7" criteria = "safe-to-deploy" -[[exemptions.num-bigint]] -version = "0.4.3" -criteria = "safe-to-deploy" - [[exemptions.num-bigint-dig]] version = "0.7.0" criteria = "safe-to-deploy" -[[exemptions.num-integer]] -version = "0.1.45" -criteria = "safe-to-deploy" - -[[exemptions.num-iter]] -version = "0.1.43" -criteria = "safe-to-deploy" - -[[exemptions.num-rational]] -version = "0.4.1" -criteria = "safe-to-deploy" - -[[exemptions.num-traits]] -version = "0.2.15" -criteria = "safe-to-deploy" - [[exemptions.num_cpus]] version = "1.13.1" criteria = "safe-to-deploy" @@ -698,10 +670,6 @@ criteria = "safe-to-deploy" version = "2.0.1" criteria = "safe-to-deploy" -[[exemptions.quote]] -version = "1.0.18" -criteria = "safe-to-deploy" - [[exemptions.rand]] version = "0.7.3" criteria = "safe-to-deploy" @@ -782,10 +750,6 @@ criteria = "safe-to-deploy" version = "0.5.0" criteria = "safe-to-deploy" -[[exemptions.rustc_version]] -version = "0.4.0" -criteria = "safe-to-run" - [[exemptions.rustix]] version = "0.35.10" criteria = "safe-to-deploy" @@ -914,10 +878,6 @@ criteria = "safe-to-deploy" version = "1.0.92" criteria = "safe-to-deploy" -[[exemptions.synstructure]] -version = "0.12.6" -criteria = "safe-to-deploy" - [[exemptions.target-lexicon]] version = "0.12.3" criteria = "safe-to-deploy" diff --git a/supply-chain/imports.lock b/supply-chain/imports.lock index ed8df7fbfb19..eca23b5937c6 100644 --- a/supply-chain/imports.lock +++ b/supply-chain/imports.lock @@ -32,6 +32,12 @@ who = "Mike Hommey " criteria = "safe-to-deploy" delta = "0.1.56 -> 0.1.57" +[[audits.mozilla.audits.autocfg]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "1.1.0" +notes = "All code written or reviewed by Josh Stone." + [[audits.mozilla.audits.bit-set]] who = "Aria Beingessner " criteria = "safe-to-deploy" @@ -189,6 +195,42 @@ who = "Mike Hommey " criteria = "safe-to-deploy" delta = "0.5.4 -> 0.5.7" +[[audits.mozilla.audits.num-bigint]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.2.6" +notes = "All code written or reviewed by Josh Stone." + +[[audits.mozilla.audits.num-bigint]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.4.3" +notes = "All code written or reviewed by Josh Stone." + +[[audits.mozilla.audits.num-integer]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.1.45" +notes = "All code written or reviewed by Josh Stone." + +[[audits.mozilla.audits.num-iter]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.1.43" +notes = "All code written or reviewed by Josh Stone." + +[[audits.mozilla.audits.num-rational]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.4.1" +notes = "All code written or reviewed by Josh Stone." + +[[audits.mozilla.audits.num-traits]] +who = "Josh Stone " +criteria = "safe-to-deploy" +version = "0.2.15" +notes = "All code written or reviewed by Josh Stone." + [[audits.mozilla.audits.once_cell]] who = "Mike Hommey " criteria = "safe-to-deploy" @@ -209,6 +251,21 @@ who = "Mike Hommey " criteria = "safe-to-deploy" delta = "1.0.39 -> 1.0.43" +[[audits.mozilla.audits.quote]] +who = "Nika Layzell " +criteria = "safe-to-deploy" +version = "1.0.18" +notes = """ +`quote` is a utility crate used by proc-macros to generate TokenStreams +conveniently from source code. The bulk of the logic is some complex +interlocking `macro_rules!` macros which are used to parse and build the +`TokenStream` within the proc-macro. + +This crate contains no unsafe code, and the internal logic, while difficult to +read, is generally straightforward. I have audited the the quote macros, ident +formatter, and runtime logic. +""" + [[audits.mozilla.audits.quote]] who = "Mike Hommey " criteria = "safe-to-deploy" @@ -229,6 +286,15 @@ who = "Mike Hommey " criteria = "safe-to-deploy" delta = "0.6.26 -> 0.6.27" +[[audits.mozilla.audits.rustc_version]] +who = "Nika Layzell " +criteria = "safe-to-run" +version = "0.4.0" +notes = """ +Straightforward crate which runs `$RUSTC -vV` and parses the output into a +machine-interpretable form for build scripts. +""" + [[audits.mozilla.audits.ryu]] who = "Mike Hommey " criteria = "safe-to-deploy" @@ -284,6 +350,16 @@ who = "Mike Hommey " criteria = "safe-to-deploy" delta = "1.0.96 -> 1.0.99" +[[audits.mozilla.audits.synstructure]] +who = "Nika Layzell " +criteria = "safe-to-deploy" +version = "0.12.6" +notes = """ +I am the primary author of the `synstructure` crate, and its current +maintainer. The one use of `unsafe` is unnecessary, but documented and +harmless. It will be removed in the next version. +""" + [[audits.mozilla.audits.thiserror]] who = "Mike Hommey " criteria = "safe-to-deploy" diff --git a/tests/all/component_model.rs b/tests/all/component_model.rs index 325ad1f965e3..77d0157b7c0b 100644 --- a/tests/all/component_model.rs +++ b/tests/all/component_model.rs @@ -189,7 +189,7 @@ fn make_echo_component_with_params(type_definition: &str, params: &[Param]) -> S (type $Foo {type_definition}) - (func (export "echo") (param $Foo) (result $Foo) + (func (export "echo") (param "a" $Foo) (result "b" $Foo) (canon lift (core func $i "echo") (memory $i "memory") diff --git a/tests/all/component_model/func.rs b/tests/all/component_model/func.rs index cf28ea5c5012..07a930bc8a83 100644 --- a/tests/all/component_model/func.rs +++ b/tests/all/component_model/func.rs @@ -60,10 +60,10 @@ fn typecheck() -> Result<()> { (func (export "thunk") (canon lift (core func $i "thunk")) ) - (func (export "tuple-thunk") (param (tuple)) (result (tuple)) + (func (export "tuple-thunk") (param "a" (tuple)) (result (tuple)) (canon lift (core func $i "thunk")) ) - (func (export "take-string") (param string) + (func (export "take-string") (param "a" string) (canon lift (core func $i "take-string") (memory $i "memory") (realloc (func $i "realloc"))) ) (func (export "take-two-args") (param "a" s32) (param "b" (list u8)) @@ -154,14 +154,14 @@ fn integers() -> Result<()> { (func (export "ret-i32-100000") (result i32) i32.const 100000) ) (core instance $i (instantiate (module $m))) - (func (export "take-u8") (param u8) (canon lift (core func $i "take-i32-100"))) - (func (export "take-s8") (param s8) (canon lift (core func $i "take-i32-100"))) - (func (export "take-u16") (param u16) (canon lift (core func $i "take-i32-100"))) - (func (export "take-s16") (param s16) (canon lift (core func $i "take-i32-100"))) - (func (export "take-u32") (param u32) (canon lift (core func $i "take-i32-100"))) - (func (export "take-s32") (param s32) (canon lift (core func $i "take-i32-100"))) - (func (export "take-u64") (param u64) (canon lift (core func $i "take-i64-100"))) - (func (export "take-s64") (param s64) (canon lift (core func $i "take-i64-100"))) + (func (export "take-u8") (param "a" u8) (canon lift (core func $i "take-i32-100"))) + (func (export "take-s8") (param "a" s8) (canon lift (core func $i "take-i32-100"))) + (func (export "take-u16") (param "a" u16) (canon lift (core func $i "take-i32-100"))) + (func (export "take-s16") (param "a" s16) (canon lift (core func $i "take-i32-100"))) + (func (export "take-u32") (param "a" u32) (canon lift (core func $i "take-i32-100"))) + (func (export "take-s32") (param "a" s32) (canon lift (core func $i "take-i32-100"))) + (func (export "take-u64") (param "a" u64) (canon lift (core func $i "take-i64-100"))) + (func (export "take-s64") (param "a" s64) (canon lift (core func $i "take-i64-100"))) (func (export "ret-u8") (result u8) (canon lift (core func $i "ret-i32-0"))) (func (export "ret-s8") (result s8) (canon lift (core func $i "ret-i32-0"))) @@ -420,7 +420,7 @@ fn type_layers() -> Result<()> { ) ) (core instance $i (instantiate $m)) - (func (export "take-u32") (param u32) (canon lift (core func $i "take-i32-100"))) + (func (export "take-u32") (param "a" u32) (canon lift (core func $i "take-i32-100"))) ) "#; @@ -472,16 +472,16 @@ fn floats() -> Result<()> { ) (core instance $i (instantiate $m)) - (func (export "f32-to-u32") (param float32) (result u32) + (func (export "f32-to-u32") (param "a" float32) (result u32) (canon lift (core func $i "i32.reinterpret_f32")) ) - (func (export "f64-to-u64") (param float64) (result u64) + (func (export "f64-to-u64") (param "a" float64) (result u64) (canon lift (core func $i "i64.reinterpret_f64")) ) - (func (export "u32-to-f32") (param u32) (result float32) + (func (export "u32-to-f32") (param "a" u32) (result float32) (canon lift (core func $i "f32.reinterpret_i32")) ) - (func (export "u64-to-f64") (param u64) (result float64) + (func (export "u64-to-f64") (param "a" u64) (result float64) (canon lift (core func $i "f64.reinterpret_i64")) ) ) @@ -545,10 +545,10 @@ fn bools() -> Result<()> { ) (core instance $i (instantiate $m)) - (func (export "u32-to-bool") (param u32) (result bool) + (func (export "u32-to-bool") (param "a" u32) (result bool) (canon lift (core func $i "pass")) ) - (func (export "bool-to-u32") (param bool) (result u32) + (func (export "bool-to-u32") (param "a" bool) (result u32) (canon lift (core func $i "pass")) ) ) @@ -584,10 +584,10 @@ fn chars() -> Result<()> { ) (core instance $i (instantiate $m)) - (func (export "u32-to-char") (param u32) (result char) + (func (export "u32-to-char") (param "a" u32) (result char) (canon lift (core func $i "pass")) ) - (func (export "char-to-u32") (param char) (result u32) + (func (export "char-to-u32") (param "a" char) (result u32) (canon lift (core func $i "pass")) ) ) @@ -722,21 +722,21 @@ fn strings() -> Result<()> { ) (core instance $i (instantiate $m)) - (func (export "list8-to-str") (param (list u8)) (result string) + (func (export "list8-to-str") (param "a" (list u8)) (result string) (canon lift (core func $i "roundtrip") (memory $i "memory") (realloc (func $i "realloc")) ) ) - (func (export "str-to-list8") (param string) (result (list u8)) + (func (export "str-to-list8") (param "a" string) (result (list u8)) (canon lift (core func $i "roundtrip") (memory $i "memory") (realloc (func $i "realloc")) ) ) - (func (export "list16-to-str") (param (list u16)) (result string) + (func (export "list16-to-str") (param "a" (list u16)) (result string) (canon lift (core func $i "roundtrip") string-encoding=utf16 @@ -744,7 +744,7 @@ fn strings() -> Result<()> { (realloc (func $i "realloc")) ) ) - (func (export "str-to-list16") (param string) (result (list u16)) + (func (export "str-to-list16") (param "a" string) (result (list u16)) (canon lift (core func $i "roundtrip") string-encoding=utf16 @@ -1001,10 +1001,10 @@ fn some_traps() -> Result<()> { ) (core instance $i (instantiate $m)) - (func (export "take-list-unreachable") (param (list u8)) + (func (export "take-list-unreachable") (param "a" (list u8)) (canon lift (core func $i "take-list") (memory $i "memory") (realloc (func $i "realloc"))) ) - (func (export "take-string-unreachable") (param string) + (func (export "take-string-unreachable") (param "a" string) (canon lift (core func $i "take-list") (memory $i "memory") (realloc (func $i "realloc"))) ) @@ -1034,10 +1034,10 @@ fn some_traps() -> Result<()> { ) (core instance $i2 (instantiate $m2)) - (func (export "take-list-base-oob") (param (list u8)) + (func (export "take-list-base-oob") (param "a" (list u8)) (canon lift (core func $i2 "take-list") (memory $i2 "memory") (realloc (func $i2 "realloc"))) ) - (func (export "take-string-base-oob") (param string) + (func (export "take-string-base-oob") (param "a" string) (canon lift (core func $i2 "take-list") (memory $i2 "memory") (realloc (func $i2 "realloc"))) ) (func (export "take-many-base-oob") (type $t) @@ -1054,10 +1054,10 @@ fn some_traps() -> Result<()> { ) (core instance $i3 (instantiate $m3)) - (func (export "take-list-end-oob") (param (list u8)) + (func (export "take-list-end-oob") (param "a" (list u8)) (canon lift (core func $i3 "take-list") (memory $i3 "memory") (realloc (func $i3 "realloc"))) ) - (func (export "take-string-end-oob") (param string) + (func (export "take-string-end-oob") (param "a" string) (canon lift (core func $i3 "take-list") (memory $i3 "memory") (realloc (func $i3 "realloc"))) ) (func (export "take-many-end-oob") (type $t) @@ -1453,23 +1453,23 @@ fn option() -> Result<()> { ) (core instance $i (instantiate $m)) - (func (export "option-unit-to-u32") (param (option (tuple))) (result u32) + (func (export "option-unit-to-u32") (param "a" (option (tuple))) (result u32) (canon lift (core func $i "pass0")) ) - (func (export "option-u8-to-tuple") (param (option u8)) (result "a" u32) (result "b" u32) + (func (export "option-u8-to-tuple") (param "a" (option u8)) (result "a" u32) (result "b" u32) (canon lift (core func $i "pass1") (memory $i "memory")) ) - (func (export "option-u32-to-tuple") (param (option u32)) (result "a" u32) (result "b" u32) + (func (export "option-u32-to-tuple") (param "a" (option u32)) (result "a" u32) (result "b" u32) (canon lift (core func $i "pass1") (memory $i "memory")) ) - (func (export "option-string-to-tuple") (param (option string)) (result "a" u32) (result "b" string) + (func (export "option-string-to-tuple") (param "a" (option string)) (result "a" u32) (result "b" string) (canon lift (core func $i "pass2") (memory $i "memory") (realloc (func $i "realloc")) ) ) - (func (export "to-option-unit") (param u32) (result (option (tuple))) + (func (export "to-option-unit") (param "a" u32) (result (option (tuple))) (canon lift (core func $i "pass0")) ) (func (export "to-option-u8") (param "a" u32) (param "b" u32) (result (option u8)) @@ -1646,21 +1646,21 @@ fn expected() -> Result<()> { ) (core instance $i (instantiate $m)) - (func (export "take-expected-unit") (param (result)) (result u32) + (func (export "take-expected-unit") (param "a" (result)) (result u32) (canon lift (core func $i "pass0")) ) - (func (export "take-expected-u8-f32") (param (result u8 (error float32))) (result "a" u32) (result "b" u32) + (func (export "take-expected-u8-f32") (param "a" (result u8 (error float32))) (result "a" u32) (result "b" u32) (canon lift (core func $i "pass1") (memory $i "memory")) ) (type $list (list u8)) - (func (export "take-expected-string") (param (result string (error $list))) (result "a" u32) (result "b" string) + (func (export "take-expected-string") (param "a" (result string (error $list))) (result "a" u32) (result "b" string) (canon lift (core func $i "pass2") (memory $i "memory") (realloc (func $i "realloc")) ) ) - (func (export "to-expected-unit") (param u32) (result (result)) + (func (export "to-expected-unit") (param "a" u32) (result (result)) (canon lift (core func $i "pass0")) ) (func (export "to-expected-s16-f32") (param "a" u32) (param "b" u32) (result (result s16 (error float32))) @@ -1782,7 +1782,7 @@ fn fancy_list() -> Result<()> { (type $b (result (error string))) (type $input (list (tuple $a $b))) (func (export "take") - (param $input) + (param "a" $input) (result "ptr" u32) (result "len" u32) (result "list" (list u8)) @@ -2226,7 +2226,7 @@ fn lower_then_lift() -> Result<()> { let component = format!( r#" (component $c - (import "s" (func $f (param string))) + (import "s" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) @@ -2237,7 +2237,7 @@ fn lower_then_lift() -> Result<()> { (core func $f_lower (canon lower (func $f) (memory $libc "memory")) ) - (func $f2 (param string) + (func $f2 (param "a" string) (canon lift (core func $f_lower) (memory $libc "memory") (realloc (func $libc "realloc")) @@ -2266,7 +2266,7 @@ fn lower_then_lift() -> Result<()> { let component = format!( r#" (component $c - (import "s2" (func $f (param string) (result u32))) + (import "s2" (func $f (param "a" string) (result u32))) (core module $libc (memory (export "memory") 1) @@ -2277,7 +2277,7 @@ fn lower_then_lift() -> Result<()> { (core func $f_lower (canon lower (func $f) (memory $libc "memory")) ) - (func $f2 (param string) (result string) + (func $f2 (param "a" string) (result string) (canon lift (core func $f_lower) (memory $libc "memory") (realloc (func $libc "realloc")) @@ -2328,7 +2328,7 @@ fn errors_that_poison_instance() -> Result<()> { (memory (export "m") 1) ) (core instance $m2 (instantiate $m2)) - (func (export "f3") (param string) + (func (export "f3") (param "a" string) (canon lift (core func $m2 "f") (realloc (func $m2 "r")) (memory $m2 "m")) ) @@ -2398,7 +2398,7 @@ fn errors_that_poison_instance() -> Result<()> { fn run_export_with_internal_adapter() -> Result<()> { let component = r#" (component - (type $t (func (param u32) (result u32))) + (type $t (func (param "a" u32) (result u32))) (component $a (core module $m (func (export "add-five") (param i32) (result i32) diff --git a/tests/all/component_model/import.rs b/tests/all/component_model/import.rs index 145063dc915a..e6ec69dfcfb4 100644 --- a/tests/all/component_model/import.rs +++ b/tests/all/component_model/import.rs @@ -26,7 +26,7 @@ fn can_compile() -> Result<()> { &engine, format!( r#"(component - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) {libc} (core func (canon lower (func $f) (memory $libc "memory") (realloc (func $libc "realloc")))) )"# @@ -36,11 +36,11 @@ fn can_compile() -> Result<()> { &engine, format!( r#"(component - (import "f1" (func $f1 (param string) (result string))) + (import "f1" (func $f1 (param "a" string) (result string))) {libc} (core func (canon lower (func $f1) (memory $libc "memory") (realloc (func $libc "realloc")))) - (import "f2" (func $f2 (param u32) (result (list u8)))) + (import "f2" (func $f2 (param "a" u32) (result (list u8)))) (core instance $libc2 (instantiate $libc)) (core func (canon lower (func $f2) (memory $libc2 "memory") (realloc (func $libc2 "realloc")))) @@ -53,7 +53,7 @@ fn can_compile() -> Result<()> { &engine, format!( r#"(component - (import "log" (func $log (param string))) + (import "log" (func $log (param "a" string))) {libc} (core func $log_lower (canon lower (func $log) (memory $libc "memory") (realloc (func $libc "realloc")))) @@ -84,7 +84,7 @@ fn can_compile() -> Result<()> { fn simple() -> Result<()> { let component = r#" (component - (import "" (func $log (param string))) + (import "" (func $log (param "a" string))) (core module $libc (memory (export "memory") 1) @@ -231,7 +231,7 @@ fn attempt_to_leave_during_malloc() -> Result<()> { (func (export "run") (canon lift (core func $m "run")) ) - (func (export "take-string") (param string) + (func (export "take-string") (param "a" string) (canon lift (core func $m "take-string") (memory $m "memory") (realloc (func $m "realloc"))) ) ) @@ -395,10 +395,10 @@ fn stack_and_heap_args_and_rets() -> Result<()> { string string string string string string string string string)) - (import "f1" (func $f1 (param u32) (result u32))) - (import "f2" (func $f2 (param $many_params) (result u32))) - (import "f3" (func $f3 (param u32) (result string))) - (import "f4" (func $f4 (param $many_params) (result string))) + (import "f1" (func $f1 (param "a" u32) (result u32))) + (import "f2" (func $f2 (param "a" $many_params) (result u32))) + (import "f3" (func $f3 (param "a" u32) (result string))) + (import "f4" (func $f4 (param "a" $many_params) (result string))) (core module $libc {REALLOC_AND_FREE} @@ -658,7 +658,7 @@ fn bad_import_alignment() -> Result<()> { string string string string string )) - (import "unaligned-argptr" (func $unaligned_argptr (param $many_arg))) + (import "unaligned-argptr" (func $unaligned_argptr (param "a" $many_arg))) (core module $libc_panic (memory (export "memory") 1) (func (export "realloc") (param i32 i32 i32 i32) (result i32) diff --git a/tests/all/component_model/nested.rs b/tests/all/component_model/nested.rs index ee40c92862e5..101dd936a824 100644 --- a/tests/all/component_model/nested.rs +++ b/tests/all/component_model/nested.rs @@ -109,10 +109,10 @@ fn thread_options_through_inner() -> Result<()> { let component = format!( r#" (component - (import "hostfn" (func $host (param u32) (result string))) + (import "hostfn" (func $host (param "a" u32) (result string))) (component $c - (import "hostfn" (func $host (param u32) (result string))) + (import "hostfn" (func $host (param "a" u32) (result string))) (core module $libc (memory (export "memory") 1) @@ -144,7 +144,7 @@ fn thread_options_through_inner() -> Result<()> { (with "libc" (instance $libc)) )) - (func (export "run") (param u32) (result string) + (func (export "run") (param "a" u32) (result string) (canon lift (core func $m "run") (memory $m "memory") diff --git a/tests/all/component_model/strings.rs b/tests/all/component_model/strings.rs index 2d4f233a684b..9974e51aef63 100644 --- a/tests/all/component_model/strings.rs +++ b/tests/all/component_model/strings.rs @@ -103,7 +103,7 @@ fn test_roundtrip(engine: &Engine, src: &str, dst: &str) -> Result<()> { format!( r#" (component {name} - (import "echo" (func $echo (param string) (result string))) + (import "echo" (func $echo (param "a" string) (result string))) (core instance $libc (instantiate $libc)) (core func $echo (canon lower (func $echo) (memory $libc "memory") @@ -114,7 +114,7 @@ fn test_roundtrip(engine: &Engine, src: &str, dst: &str) -> Result<()> { (with "libc" (instance $libc)) (with "" (instance (export "echo" (func $echo)))) )) - (func (export "echo") (param string) (result string) + (func (export "echo") (param "a" string) (result string) (canon lift (core func $echo "echo") (memory $libc "memory") @@ -132,7 +132,7 @@ fn test_roundtrip(engine: &Engine, src: &str, dst: &str) -> Result<()> { let component = format!( r#" (component - (import "host" (func $host (param string) (result string))) + (import "host" (func $host (param "a" string) (result string))) (core module $libc (memory (export "memory") 1) @@ -213,14 +213,14 @@ fn test_ptr_out_of_bounds(engine: &Engine, src: &str, dst: &str) -> Result<()> { (memory (export "memory") 1) ) (core instance $m (instantiate $m)) - (func (export "") (param string) + (func (export "") (param "a" string) (canon lift (core func $m "") (realloc (func $m "realloc")) (memory $m "memory") string-encoding={dst}) ) ) (component $c2 - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) ) @@ -281,14 +281,14 @@ fn test_ptr_overflow(engine: &Engine, src: &str, dst: &str) -> Result<()> { (memory (export "memory") 1) ) (core instance $m (instantiate $m)) - (func (export "") (param string) + (func (export "") (param "a" string) (canon lift (core func $m "") (realloc (func $m "realloc")) (memory $m "memory") string-encoding={dst}) ) ) (component $c2 - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) ) @@ -300,7 +300,7 @@ fn test_ptr_overflow(engine: &Engine, src: &str, dst: &str) -> Result<()> { (func (export "f") (param i32) (call $f (i32.const 1000) (local.get 0))) ) (core instance $m (instantiate $m (with "" (instance (export "" (func $f)))))) - (func (export "f") (param u32) (canon lift (core func $m "f"))) + (func (export "f") (param "a" u32) (canon lift (core func $m "f"))) ) (instance $c (instantiate $c)) @@ -386,14 +386,14 @@ fn test_realloc_oob(engine: &Engine, src: &str, dst: &str) -> Result<()> { (memory (export "memory") 1) ) (core instance $m (instantiate $m)) - (func (export "") (param string) + (func (export "") (param "a" string) (canon lift (core func $m "") (realloc (func $m "realloc")) (memory $m "memory") string-encoding={dst}) ) ) (component $c2 - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) ) @@ -534,14 +534,14 @@ fn test_raw_when_encoded( (memory (export "memory") 1) ) (core instance $m (instantiate $m)) - (func (export "") (param string) + (func (export "") (param "a" string) (canon lift (core func $m "") (realloc (func $m "realloc")) (memory $m "memory") string-encoding={dst}) ) ) (component $c2 - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) (func (export "realloc") (param i32 i32 i32 i32) (result i32) i32.const 0) diff --git a/tests/misc_testsuite/component-model/adapter.wast b/tests/misc_testsuite/component-model/adapter.wast index 4acf0a5a7097..e3641b6b3991 100644 --- a/tests/misc_testsuite/component-model/adapter.wast +++ b/tests/misc_testsuite/component-model/adapter.wast @@ -35,7 +35,7 @@ ) (core instance $i (instantiate $m)) - (func (export "thunk") (param string) + (func (export "thunk") (param "a" string) (canon lift (core func $i "") (memory $i "memory") @@ -43,7 +43,7 @@ ) ) - (func (export "thunk8") (param string) + (func (export "thunk8") (param "a" string) (canon lift (core func $i "") string-encoding=utf8 @@ -52,7 +52,7 @@ ) ) - (func (export "thunk16") (param string) + (func (export "thunk16") (param "a" string) (canon lift (core func $i "") string-encoding=utf16 @@ -61,7 +61,7 @@ ) ) - (func (export "thunklatin16") (param string) + (func (export "thunklatin16") (param "a" string) (canon lift (core func $i "") string-encoding=latin1+utf16 @@ -121,7 +121,7 @@ (memory (export "memory") 0) ) (core instance $m (instantiate $m)) - (func $f (param (list (record))) + (func $f (param "a" (list (record))) (canon lift (core func $m "x") (realloc (func $m "realloc")) diff --git a/tests/misc_testsuite/component-model/fused.wast b/tests/misc_testsuite/component-model/fused.wast index 53981c1bdd4c..4f3a9d8abc12 100644 --- a/tests/misc_testsuite/component-model/fused.wast +++ b/tests/misc_testsuite/component-model/fused.wast @@ -39,14 +39,14 @@ ) ) (core instance $m (instantiate $m)) - (func $assert_true (param bool) (canon lift (core func $m "assert_true"))) - (func $assert_false (param bool) (canon lift (core func $m "assert_false"))) - (func $ret_bool (param u32) (result bool) (canon lift (core func $m "ret-bool"))) + (func $assert_true (param "a" bool) (canon lift (core func $m "assert_true"))) + (func $assert_false (param "a" bool) (canon lift (core func $m "assert_false"))) + (func $ret_bool (param "a" u32) (result bool) (canon lift (core func $m "ret-bool"))) (component $c - (import "assert-true" (func $assert_true (param bool))) - (import "assert-false" (func $assert_false (param bool))) - (import "ret-bool" (func $ret_bool (param u32) (result bool))) + (import "assert-true" (func $assert_true (param "a" bool))) + (import "assert-false" (func $assert_false (param "a" bool))) + (import "ret-bool" (func $ret_bool (param "a" u32) (result bool))) (core func $assert_true (canon lower (func $assert_true))) (core func $assert_false (canon lower (func $assert_false))) @@ -296,7 +296,7 @@ unreachable) ) (core instance $realloc (instantiate $realloc)) - (func $realloc (param (tuple u32 u32 u32 u32)) (result u32) + (func $realloc (param "a" (tuple u32 u32 u32 u32)) (result u32) (canon lift (core func $realloc "realloc")) ) (export "realloc" (func $realloc)) @@ -309,7 +309,7 @@ (func (export "foo") (param i32)) ) (core instance $m (instantiate $m)) - (func $foo (param $tuple20) + (func $foo (param "a" $tuple20) (canon lift (core func $m "foo") (memory $m "memory") @@ -318,7 +318,7 @@ ) (component $c - (import "foo" (func $foo (param $tuple20))) + (import "foo" (func $foo (param "a" $tuple20))) (core module $libc (memory (export "memory") 1) @@ -495,7 +495,7 @@ ) ) (core instance $m (instantiate $m)) - (func (export "r") (param $in) (result $out) + (func (export "r") (param "a" $in) (result $out) (canon lift (core func $m "r") (memory $m "memory")) ) ) @@ -511,7 +511,7 @@ (field "x" u8) (field "y" u32) )) - (import "r" (func $r (param $in) (result $out))) + (import "r" (func $r (param "a" $in) (result $out))) (core module $libc (memory (export "memory") 1)) (core instance $libc (instantiate $libc)) (core func $r (canon lower (func $r) (memory $libc "memory"))) @@ -631,12 +631,12 @@ i32.const 1) ) (core instance $m (instantiate $m)) - (func (export "r") (param $big) + (func (export "r") (param "a" $big) (canon lift (core func $m "r") (memory $m "memory") (realloc (func $m "realloc"))) ) ) (component $c2 - (import "r" (func $r (param $big))) + (import "r" (func $r (param "a" $big))) (core module $libc (memory (export "memory") 1) (func (export "realloc") (param i32 i32 i32 i32) (result i32) unreachable) @@ -679,12 +679,12 @@ i32.const 4) ) (core instance $m (instantiate $m)) - (func (export "r") (param $big) + (func (export "r") (param "a" $big) (canon lift (core func $m "r") (memory $m "memory") (realloc (func $m "realloc"))) ) ) (component $c2 - (import "r" (func $r (param $big))) + (import "r" (func $r (param "a" $big))) (core module $libc (memory (export "memory") 1) (func (export "realloc") (param i32 i32 i32 i32) (result i32) unreachable) @@ -728,10 +728,10 @@ ) ) (core instance $m (instantiate $m)) - (func (export "r") (param $a) (result $b) (canon lift (core func $m "r"))) + (func (export "r") (param "a" $a) (result $b) (canon lift (core func $m "r"))) ) (component $c2 - (import "r" (func $r (param $a) (result $b))) + (import "r" (func $r (param "a" $a) (result $b))) (core func $r (canon lower (func $r))) (core module $m @@ -763,10 +763,10 @@ (func (export "r") (param i32)) ) (core instance $m (instantiate $m)) - (func (export "r") (param $a) (canon lift (core func $m "r"))) + (func (export "r") (param "a" $a) (canon lift (core func $m "r"))) ) (component $c2 - (import "r" (func $r (param $a))) + (import "r" (func $r (param "a" $a))) (core func $r (canon lower (func $r))) (core module $m @@ -829,17 +829,17 @@ ) ) (core instance $m (instantiate $m)) - (func (export "u8") (param u8) (canon lift (core func $m "u"))) - (func (export "u16") (param u16) (canon lift (core func $m "u"))) - (func (export "s8") (param s8) (canon lift (core func $m "s"))) - (func (export "s16") (param s16) (canon lift (core func $m "s"))) + (func (export "u8") (param "a" u8) (canon lift (core func $m "u"))) + (func (export "u16") (param "a" u16) (canon lift (core func $m "u"))) + (func (export "s8") (param "a" s8) (canon lift (core func $m "s"))) + (func (export "s16") (param "a" s16) (canon lift (core func $m "s"))) ) (component $c2 (import "" (instance $i - (export "u8" (func (param u8))) - (export "s8" (func (param s8))) - (export "u16" (func (param u16))) - (export "s16" (func (param s16))) + (export "u8" (func (param "a" u8))) + (export "s8" (func (param "a" s8))) + (export "u16" (func (param "a" u16))) + (export "s16" (func (param "a" s16))) )) (core func $u8 (canon lower (func $i "u8"))) @@ -1121,11 +1121,11 @@ (func (export "a") (param i32) (result i32) local.get 0) ) (core instance $m (instantiate $m)) - (func (export "a") (param char) (result char) (canon lift (core func $m "a"))) + (func (export "a") (param "a" char) (result char) (canon lift (core func $m "a"))) ) (component $c2 (import "" (instance $i - (export "a" (func (param char) (result char))) + (export "a" (func (param "a" char) (result char))) )) (core func $a (canon lower (func $i "a"))) @@ -1155,7 +1155,7 @@ )) )) - (func (export "roundtrip") (param char) (canon lift (core func $m "roundtrip"))) + (func (export "roundtrip") (param "a" char) (canon lift (core func $m "roundtrip"))) ) (instance $c1 (instantiate $c1)) (instance $c2 (instantiate $c2 (with "" (instance $c1)))) @@ -1173,10 +1173,10 @@ (component $c1 (core module $m (func (export "a") (param i32))) (core instance $m (instantiate $m)) - (func (export "a") (param char) (canon lift (core func $m "a"))) + (func (export "a") (param "a" char) (canon lift (core func $m "a"))) ) (component $c2 - (import "" (instance $i (export "a" (func (param char))))) + (import "" (instance $i (export "a" (func (param "a" char))))) (core func $a (canon lower (func $i "a"))) (core module $m (import "" "a" (func $a (param i32))) @@ -1194,10 +1194,10 @@ (component $c1 (core module $m (func (export "a") (param i32))) (core instance $m (instantiate $m)) - (func (export "a") (param char) (canon lift (core func $m "a"))) + (func (export "a") (param "a" char) (canon lift (core func $m "a"))) ) (component $c2 - (import "" (instance $i (export "a" (func (param char))))) + (import "" (instance $i (export "a" (func (param "a" char))))) (core func $a (canon lower (func $i "a"))) (core module $m (import "" "a" (func $a (param i32))) @@ -1215,10 +1215,10 @@ (component $c1 (core module $m (func (export "a") (param i32))) (core instance $m (instantiate $m)) - (func (export "a") (param char) (canon lift (core func $m "a"))) + (func (export "a") (param "a" char) (canon lift (core func $m "a"))) ) (component $c2 - (import "" (instance $i (export "a" (func (param char))))) + (import "" (instance $i (export "a" (func (param "a" char))))) (core func $a (canon lower (func $i "a"))) (core module $m (import "" "a" (func $a (param i32))) @@ -1318,31 +1318,31 @@ ) ) (core instance $m (instantiate $m)) - (func (export "f0") (param $f0) (canon lift (core func $m "f0"))) - (func (export "f1") (param $f1) (canon lift (core func $m "f1"))) - (func (export "f8") (param $f8) (canon lift (core func $m "f8"))) - (func (export "f9") (param $f9) (canon lift (core func $m "f9"))) - (func (export "f16") (param $f16) (canon lift (core func $m "f16"))) - (func (export "f17") (param $f17) (canon lift (core func $m "f17"))) - (func (export "f32") (param $f32) (canon lift (core func $m "f32"))) - (func (export "f33") (param $f33) (canon lift (core func $m "f33"))) - (func (export "f64") (param $f64) (canon lift (core func $m "f64"))) - (func (export "f65") (param $f65) (canon lift (core func $m "f65"))) + (func (export "f0") (param "a" $f0) (canon lift (core func $m "f0"))) + (func (export "f1") (param "a" $f1) (canon lift (core func $m "f1"))) + (func (export "f8") (param "a" $f8) (canon lift (core func $m "f8"))) + (func (export "f9") (param "a" $f9) (canon lift (core func $m "f9"))) + (func (export "f16") (param "a" $f16) (canon lift (core func $m "f16"))) + (func (export "f17") (param "a" $f17) (canon lift (core func $m "f17"))) + (func (export "f32") (param "a" $f32) (canon lift (core func $m "f32"))) + (func (export "f33") (param "a" $f33) (canon lift (core func $m "f33"))) + (func (export "f64") (param "a" $f64) (canon lift (core func $m "f64"))) + (func (export "f65") (param "a" $f65) (canon lift (core func $m "f65"))) ) (instance $c1 (instantiate $c1)) (component $c2 (import "" (instance $i - (export "f0" (func (param $f0))) - (export "f1" (func (param $f1))) - (export "f8" (func (param $f8))) - (export "f9" (func (param $f9))) - (export "f16" (func (param $f16))) - (export "f17" (func (param $f17))) - (export "f32" (func (param $f32))) - (export "f33" (func (param $f33))) - (export "f64" (func (param $f64))) - (export "f65" (func (param $f65))) + (export "f0" (func (param "a" $f0))) + (export "f1" (func (param "a" $f1))) + (export "f8" (func (param "a" $f8))) + (export "f9" (func (param "a" $f9))) + (export "f16" (func (param "a" $f16))) + (export "f17" (func (param "a" $f17))) + (export "f32" (func (param "a" $f32))) + (export "f33" (func (param "a" $f33))) + (export "f64" (func (param "a" $f64))) + (export "f65" (func (param "a" $f65))) )) (core func $f0 (canon lower (func $i "f0"))) (core func $f1 (canon lower (func $i "f1"))) diff --git a/tests/misc_testsuite/component-model/strings.wast b/tests/misc_testsuite/component-model/strings.wast index 398ca39563ae..8583d038abe1 100644 --- a/tests/misc_testsuite/component-model/strings.wast +++ b/tests/misc_testsuite/component-model/strings.wast @@ -8,13 +8,13 @@ (memory (export "memory") 1) ) (core instance $m (instantiate $m)) - (func (export "") (param string) + (func (export "") (param "a" string) (canon lift (core func $m "") (realloc (func $m "realloc")) (memory $m "memory")) ) ) (component $c2 - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) ) @@ -44,13 +44,13 @@ (memory (export "memory") 1) ) (core instance $m (instantiate $m)) - (func (export "") (param string) + (func (export "") (param "a" string) (canon lift (core func $m "") (realloc (func $m "realloc")) (memory $m "memory")) ) ) (component $c2 - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) ) @@ -80,14 +80,14 @@ (memory (export "memory") 1) ) (core instance $m (instantiate $m)) - (func (export "") (param string) + (func (export "") (param "a" string) (canon lift (core func $m "") (realloc (func $m "realloc")) (memory $m "memory") string-encoding=utf8) ) ) (component $c2 - (import "" (func $f (param string))) + (import "" (func $f (param "a" string))) (core module $libc (memory (export "memory") 1) ) diff --git a/tests/misc_testsuite/component-model/types.wast b/tests/misc_testsuite/component-model/types.wast index 010fee3ec115..4405726f1bac 100644 --- a/tests/misc_testsuite/component-model/types.wast +++ b/tests/misc_testsuite/component-model/types.wast @@ -1,6 +1,6 @@ (component (type string) - (type (func (param string))) + (type (func (param "a" string))) (type $r (record (field "x" (record)) (field "y" string))) (type $u (union $r string)) (type $e (result $u (error u32))) @@ -8,7 +8,7 @@ (type (result (error $u))) (type (result)) - (type (func (param $e) (result (option $r)))) + (type (func (param "a" $e) (result (option $r)))) (type (variant (case "a" string) @@ -53,7 +53,7 @@ (component (type $empty (func)) - (type (func (param string) (result u32))) + (type (func (param "a" string) (result u32))) (type (component)) (core type (module)) (core type (func)) @@ -119,11 +119,11 @@ (component (core module $m (func (export "") (param i32) (result i32) local.get 0)) (core instance $m (instantiate $m)) - (func (export "i-to-b") (param u32) (result bool) (canon lift (core func $m ""))) - (func (export "i-to-u8") (param u32) (result u8) (canon lift (core func $m ""))) - (func (export "i-to-s8") (param u32) (result s8) (canon lift (core func $m ""))) - (func (export "i-to-u16") (param u32) (result u16) (canon lift (core func $m ""))) - (func (export "i-to-s16") (param u32) (result s16) (canon lift (core func $m ""))) + (func (export "i-to-b") (param "a" u32) (result bool) (canon lift (core func $m ""))) + (func (export "i-to-u8") (param "a" u32) (result u8) (canon lift (core func $m ""))) + (func (export "i-to-s8") (param "a" u32) (result s8) (canon lift (core func $m ""))) + (func (export "i-to-u16") (param "a" u32) (result u16) (canon lift (core func $m ""))) + (func (export "i-to-s16") (param "a" u32) (result s16) (canon lift (core func $m ""))) ) (assert_return (invoke "i-to-b" (u32.const 0)) (bool.const false)) (assert_return (invoke "i-to-b" (u32.const 1)) (bool.const true))