diff --git a/Cargo.lock b/Cargo.lock index f71327f..1ea0206 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4074,7 +4074,7 @@ dependencies = [ "wac-types", "warg-client", "warg-protocol", - "wasmprinter 0.239.0", + "wasmprinter 0.244.0", "wat", "wit-component", "wit-parser", @@ -4095,10 +4095,10 @@ dependencies = [ "serde_json", "thiserror", "wac-types", - "wasm-encoder 0.239.0", + "wasm-encoder 0.244.0", "wasm-metadata", - "wasmparser 0.239.0", - "wasmprinter 0.239.0", + "wasmparser 0.244.0", + "wasmprinter 0.244.0", "wat", "wit-component", "wit-parser", @@ -4125,10 +4125,10 @@ dependencies = [ "tokio", "wac-graph", "wac-resolver", - "wasm-encoder 0.239.0", + "wasm-encoder 0.244.0", "wasm-metadata", - "wasmparser 0.239.0", - "wasmprinter 0.239.0", + "wasmparser 0.244.0", + "wasmprinter 0.244.0", ] [[package]] @@ -4154,7 +4154,7 @@ dependencies = [ "warg-crypto", "warg-protocol", "warg-server", - "wasmprinter 0.239.0", + "wasmprinter 0.244.0", "wat", "wit-component", "wit-parser", @@ -4169,8 +4169,8 @@ dependencies = [ "indexmap 2.12.0", "semver", "serde 1.0.228", - "wasm-encoder 0.239.0", - "wasmparser 0.239.0", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", ] [[package]] @@ -4472,29 +4472,19 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.239.0" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be00faa2b4950c76fe618c409d2c3ea5a3c9422013e079482d78544bb2d184c" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" dependencies = [ "leb128fmt", - "wasmparser 0.239.0", -] - -[[package]] -name = "wasm-encoder" -version = "0.240.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06d642d8c5ecc083aafe9ceb32809276a304547a3a6eeecceb5d8152598bc71f" -dependencies = [ - "leb128fmt", - "wasmparser 0.240.0", + "wasmparser 0.244.0", ] [[package]] name = "wasm-metadata" -version = "0.239.0" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20b3ec880a9ac69ccd92fbdbcf46ee833071cf09f82bb005b2327c7ae6025ae2" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", "auditable-serde", @@ -4505,8 +4495,8 @@ dependencies = [ "serde_json", "spdx", "url", - "wasm-encoder 0.239.0", - "wasmparser 0.239.0", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", ] [[package]] @@ -4535,9 +4525,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.239.0" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9d90bb93e764f6beabf1d02028c70a2156a6583e63ac4218dd07ef733368b0" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ "bitflags 2.5.0", "hashbrown 0.15.2", @@ -4546,17 +4536,6 @@ dependencies = [ "serde 1.0.228", ] -[[package]] -name = "wasmparser" -version = "0.240.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b722dcf61e0ea47440b53ff83ccb5df8efec57a69d150e4f24882e4eba7e24a4" -dependencies = [ - "bitflags 2.5.0", - "indexmap 2.12.0", - "semver", -] - [[package]] name = "wasmprinter" version = "0.2.80" @@ -4569,33 +4548,33 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.239.0" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3981f3d51f39f24f5fc90f93049a90f08dbbca8deba602cd46bb8ca67a94718" +checksum = "09390d7b2bd7b938e563e4bff10aa345ef2e27a3bc99135697514ef54495e68f" dependencies = [ "anyhow", "termcolor", - "wasmparser 0.239.0", + "wasmparser 0.244.0", ] [[package]] name = "wast" -version = "240.0.0" +version = "244.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0efe1c93db4ac562b9733e3dca19ed7fc878dba29aef22245acf84f13da4a19" +checksum = "b2e7b9f9e23311275920e3d6b56d64137c160cf8af4f84a7283b36cfecbf4acb" dependencies = [ "bumpalo", "leb128fmt", "memchr", "unicode-width 0.2.0", - "wasm-encoder 0.240.0", + "wasm-encoder 0.244.0", ] [[package]] name = "wat" -version = "1.240.0" +version = "1.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec9b6eab7ecd4d639d78515e9ea491c9bacf494aa5eda10823bd35992cf8c1e" +checksum = "bbf35b87ed352f9ab6cd0732abde5a67dd6153dfd02c493e61459218b19456fa" dependencies = [ "wast", ] @@ -4869,9 +4848,9 @@ dependencies = [ [[package]] name = "wit-component" -version = "0.239.0" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a866b19dba2c94d706ec58c92a4c62ab63e482b4c935d2a085ac94caecb136" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", "bitflags 2.5.0", @@ -4880,18 +4859,18 @@ dependencies = [ "serde 1.0.228", "serde_derive", "serde_json", - "wasm-encoder 0.239.0", + "wasm-encoder 0.244.0", "wasm-metadata", - "wasmparser 0.239.0", + "wasmparser 0.244.0", "wat", "wit-parser", ] [[package]] name = "wit-parser" -version = "0.239.0" +version = "0.244.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55c92c939d667b7bf0c6bf2d1f67196529758f99a2a45a3355cc56964fd5315d" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", @@ -4902,7 +4881,7 @@ dependencies = [ "serde_derive", "serde_json", "unicode-xid", - "wasmparser 0.239.0", + "wasmparser 0.244.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index c9ca638..7b48a51 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -63,13 +63,13 @@ wac-parser = { path = "crates/wac-parser", version = "0.9.0-dev", default-featur wac-resolver = { path = "crates/wac-resolver", version = "0.9.0-dev", default-features = false } wac-graph = { path = "crates/wac-graph", version = "0.9.0-dev" } wac-types = { path = "crates/wac-types", version = "0.9.0-dev" } -wit-parser = "0.239.0" -wasmparser = "0.239.0" -wit-component = "0.239.0" -wasm-encoder = "0.239.0" -wasmprinter = "0.239.0" -wasm-metadata = "0.239.0" -wat = "1.238.0" +wit-parser = "0.244.0" +wasmparser = "0.244.0" +wit-component = "0.244.0" +wasm-encoder = "0.244.0" +wasmprinter = "0.244.0" +wasm-metadata = "0.244.0" +wat = "1.244.0" anyhow = "1.0.81" clap = { version = "4.5.4", features = ["derive"] } semver = { version = "1.0.22", features = ["serde"] } diff --git a/crates/wac-graph/src/encoding.rs b/crates/wac-graph/src/encoding.rs index c3c0f05..55b3c3b 100644 --- a/crates/wac-graph/src/encoding.rs +++ b/crates/wac-graph/src/encoding.rs @@ -50,7 +50,7 @@ impl Encodable { fn ty(&mut self) -> ComponentTypeEncoder { match self { - Encodable::Builder(t) => t.ty().1, + Encodable::Builder(t) => t.ty(None).1, Encodable::Instance(t) => t.ty(), Encodable::Component(t) => t.ty(), } @@ -58,7 +58,7 @@ impl Encodable { fn core_type(&mut self) -> ComponentCoreTypeEncoder { match self { - Encodable::Builder(t) => t.core_type().1, + Encodable::Builder(t) => t.core_type(None).1, Encodable::Instance(t) => t.core_type(), Encodable::Component(t) => t.core_type(), } @@ -79,7 +79,7 @@ impl Encodable { fn alias(&mut self, alias: Alias) { match self { Encodable::Builder(t) => { - t.alias(alias); + t.alias(None, alias); } Encodable::Instance(t) => { t.alias(alias); @@ -399,7 +399,7 @@ impl<'a> TypeEncoder<'a> { match state.pop() { Encodable::Component(ty) => { - let (index, encoder) = state.builder().ty(); + let (index, encoder) = state.builder().ty(None); encoder.component(&ty); log::debug!("encoded interface definition of `{iid}` to type index {index}",); index @@ -420,7 +420,7 @@ impl<'a> TypeEncoder<'a> { match state.pop() { Encodable::Component(ty) => { - let (index, encoder) = state.builder().ty(); + let (index, encoder) = state.builder().ty(None); encoder.component(&ty); log::debug!("encoded world definition of `{world_id}` to type index {index}"); index diff --git a/crates/wac-graph/src/graph.rs b/crates/wac-graph/src/graph.rs index 67e03f3..28ab8dc 100644 --- a/crates/wac-graph/src/graph.rs +++ b/crates/wac-graph/src/graph.rs @@ -1754,7 +1754,7 @@ impl<'a> CompositionGraphEncoder<'a> { *index } else { let index = if options.define_components { - state.builder().component_raw(package.bytes()) + state.builder().component_raw(None, package.bytes()) } else { let encoder = TypeEncoder::new(&self.0.types); let ty = encoder.component(state, package.ty()); @@ -1798,7 +1798,9 @@ impl<'a> CompositionGraphEncoder<'a> { package = package.name(), ); - let index = state.builder().instantiate(component_index, arguments); + let index = state + .builder() + .instantiate(None, component_index, arguments); log::debug!( "instantiation of package `{package}` encoded to instance index {index}", @@ -1828,11 +1830,14 @@ impl<'a> CompositionGraphEncoder<'a> { kind = kind.desc(&self.0.types), ); - let index = state.builder().alias(Alias::InstanceExport { - instance, - kind: kind.into(), - name: export, - }); + let index = state.builder().alias( + None, + Alias::InstanceExport { + instance, + kind: kind.into(), + name: export, + }, + ); log::debug!( "alias of export `{export}` encoded to {kind} index {index}", diff --git a/crates/wac-types/src/core.rs b/crates/wac-types/src/core.rs index c5a1914..87de30d 100644 --- a/crates/wac-types/src/core.rs +++ b/crates/wac-types/src/core.rs @@ -341,6 +341,9 @@ impl From for HeapType { wasmparser::HeapType::Concrete(index) => { Self::Concrete(index.as_module_index().unwrap()) } + wasmparser::HeapType::Exact(_) => { + todo!("wasmparser::HeapType::Exact"); + } } } } diff --git a/crates/wac-types/src/package.rs b/crates/wac-types/src/package.rs index 587d920..af6a923 100644 --- a/crates/wac-types/src/package.rs +++ b/crates/wac-types/src/package.rs @@ -758,6 +758,9 @@ impl<'a> TypeConverter<'a> { let ty = self.component_val_type(*ty)?; ValueType::Defined(self.types.add_defined_type(DefinedType::List(ty))) } + wasmparser::component_types::ComponentDefinedType::Map(_, _) => { + todo!("wasmparser::component_types::ComponentDefinedType::Map"); + } }; self.cache.insert(key, Entity::Type(Type::Value(ty))); @@ -807,6 +810,9 @@ impl<'a> TypeConverter<'a> { wasmparser::types::EntityType::Memory(ty) => ty.into(), wasmparser::types::EntityType::Global(ty) => ty.into(), wasmparser::types::EntityType::Tag(ty) => CoreExtern::Tag(self.func_type(ty)), + wasmparser::types::EntityType::FuncExact(_) => { + todo!("wasmparser::types::EntityType::FuncExact") + } } }