Skip to content

Commit 5a2d2c3

Browse files
committed
Update dependencies on major version tracks
Notably update wasm-tools deps and `syn` to its 3.x.y track.
1 parent 8dba3d6 commit 5a2d2c3

12 files changed

Lines changed: 484 additions & 303 deletions

File tree

‎Cargo.lock‎

Lines changed: 371 additions & 227 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎Cargo.toml‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,18 @@ serde = { version = "1.0.228", features = ["derive"] }
4242
serde_json = { version = "1" }
4343
clap = { version = "4.6.1", features = ["derive"] }
4444
indexmap = "2.0.0"
45-
prettyplease = "0.2.20"
46-
syn = { version = "2.0.89", features = ["printing"] }
45+
prettyplease = "0.3.0"
46+
syn = { version = "3.0.5", features = ["printing"] }
4747
futures = "0.3.31"
48-
macro-string = "0.2.0"
48+
macro-string = "0.3.0"
4949

50-
wat = "1.258.0"
51-
wasmparser = "0.258.0"
52-
wasm-encoder = "0.258.0"
53-
wasm-metadata = { version = "0.258.0", default-features = false }
54-
wit-parser = "0.258.0"
55-
wit-component = "0.258.0"
56-
wasm-compose = "0.258.0"
50+
wat = "1.259.0"
51+
wasmparser = "0.259.0"
52+
wasm-encoder = "0.259.0"
53+
wasm-metadata = { version = "0.259.0", default-features = false }
54+
wit-parser = "0.259.0"
55+
wit-component = "0.259.0"
56+
wasm-compose = "0.259.0"
5757

5858
wit-bindgen-core = { path = 'crates/core', version = '0.61.1' }
5959
wit-bindgen-c = { path = 'crates/c', version = '0.61.1' }

‎crates/c/src/lib.rs‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ impl WorldGenerator for C {
179179
.rename_world
180180
.clone()
181181
.unwrap_or_else(|| resolve.worlds[world].name.clone());
182-
self.sizes.fill(resolve);
182+
self.sizes.fill(resolve)?;
183183
self.world_id = Some(world);
184184

185185
let mut interfaces = HashMap::new();
@@ -239,7 +239,7 @@ impl WorldGenerator for C {
239239
world: WorldId,
240240
funcs: &[(&str, &Function)],
241241
_files: &mut Files,
242-
) {
242+
) -> Result<()> {
243243
let name = &resolve.worlds[world].name;
244244
let mut r#gen = self.interface(resolve, true, Some("$root"));
245245
r#gen.define_function_types(funcs);
@@ -253,6 +253,7 @@ impl WorldGenerator for C {
253253
}
254254

255255
r#gen.r#gen.src.append(&r#gen.src);
256+
Ok(())
256257
}
257258

258259
fn export_interface(
@@ -308,14 +309,15 @@ impl WorldGenerator for C {
308309
_world: WorldId,
309310
types: &[(&str, TypeId)],
310311
_files: &mut Files,
311-
) {
312+
) -> Result<()> {
312313
let mut r#gen = self.interface(resolve, true, Some("$root"));
313314
let mut live = LiveTypes::default();
314315
for (_, id) in types {
315316
live.add_type_id(resolve, *id);
316317
}
317318
r#gen.define_live_types(live);
318319
r#gen.r#gen.src.append(&r#gen.src);
320+
Ok(())
319321
}
320322

321323
fn finish(&mut self, resolve: &Resolve, id: WorldId, files: &mut Files) -> Result<()> {

‎crates/core/src/lib.rs‎

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ pub trait WorldGenerator {
5151
}
5252
}
5353
if !types.is_empty() {
54-
self.import_types(resolve, id, &types, files);
54+
self.import_types(resolve, id, &types, files)?;
5555
}
5656
if !funcs.is_empty() {
57-
self.import_funcs(resolve, id, &funcs, files);
57+
self.import_funcs(resolve, id, &funcs, files)?;
5858
}
5959
funcs.clear();
6060

61-
self.finish_imports(resolve, id, files);
61+
self.finish_imports(resolve, id, files)?;
6262

6363
// First generate bindings for any freestanding functions, if any. If
6464
// these refer to types defined in the world they need to refer to the
@@ -93,8 +93,14 @@ pub trait WorldGenerator {
9393
true
9494
}
9595

96-
fn finish_imports(&mut self, resolve: &Resolve, world: WorldId, files: &mut Files) {
96+
fn finish_imports(
97+
&mut self,
98+
resolve: &Resolve,
99+
world: WorldId,
100+
files: &mut Files,
101+
) -> Result<()> {
97102
let _ = (resolve, world, files);
103+
Ok(())
98104
}
99105

100106
fn preprocess(&mut self, resolve: &Resolve, world: WorldId) -> Result<()> {
@@ -129,7 +135,7 @@ pub trait WorldGenerator {
129135
world: WorldId,
130136
funcs: &[(&str, &Function)],
131137
files: &mut Files,
132-
);
138+
) -> Result<()>;
133139
fn export_funcs(
134140
&mut self,
135141
resolve: &Resolve,
@@ -143,7 +149,7 @@ pub trait WorldGenerator {
143149
world: WorldId,
144150
types: &[(&str, TypeId)],
145151
files: &mut Files,
146-
);
152+
) -> Result<()>;
147153
fn finish(&mut self, resolve: &Resolve, world: WorldId, files: &mut Files) -> Result<()>;
148154
}
149155

‎crates/cpp/src/lib.rs‎

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use anyhow::bail;
1+
use anyhow::{Result, bail};
22
use heck::{ToPascalCase, ToShoutySnakeCase, ToSnakeCase, ToUpperCamelCase};
33
use indexmap::{IndexMap, IndexSet};
44
use std::{
@@ -331,11 +331,11 @@ impl Cpp {
331331
name: Option<&'a WorldKey>,
332332
in_guest_import: bool,
333333
wasm_import_module: Option<String>,
334-
) -> CppInterfaceGenerator<'a> {
334+
) -> Result<CppInterfaceGenerator<'a>> {
335335
let mut sizes = SizeAlign::default();
336-
sizes.fill(resolve);
336+
sizes.fill(resolve)?;
337337

338-
CppInterfaceGenerator {
338+
Ok(CppInterfaceGenerator {
339339
_src: Source::default(),
340340
r#gen: self,
341341
resolve,
@@ -344,7 +344,7 @@ impl Cpp {
344344
sizes,
345345
in_guest_import,
346346
wasm_import_module,
347-
}
347+
})
348348
}
349349

350350
fn clang_format(code: &mut String) {
@@ -549,7 +549,7 @@ impl WorldGenerator for Cpp {
549549
let store = self.start_new_file(None);
550550
let wasm_import_module = resolve.name_world_key(name);
551551
let binding = Some(name);
552-
let mut r#gen = self.interface(resolve, binding, true, Some(wasm_import_module));
552+
let mut r#gen = self.interface(resolve, binding, true, Some(wasm_import_module))?;
553553
r#gen.interface = Some(id);
554554
let namespace = namespace(resolve, &TypeOwner::Interface(id), false, &*r#gen.r#gen);
555555
let docs = resolve.interfaces[id].docs.contents.as_deref();
@@ -605,7 +605,7 @@ impl WorldGenerator for Cpp {
605605
self.update_instance_name(resolve, name, id);
606606
let wasm_import_module = resolve.name_world_key(name);
607607
let binding = Some(name);
608-
let mut r#gen = self.interface(resolve, binding, false, Some(wasm_import_module));
608+
let mut r#gen = self.interface(resolve, binding, false, Some(wasm_import_module))?;
609609
r#gen.interface = Some(id);
610610
let namespace = namespace(resolve, &TypeOwner::Interface(id), true, &*r#gen.r#gen);
611611
let docs = resolve.interfaces[id].docs.contents.as_deref();
@@ -632,11 +632,12 @@ impl WorldGenerator for Cpp {
632632
world: WorldId,
633633
funcs: &[(&str, &Function)],
634634
_files: &mut Files,
635-
) {
635+
) -> Result<()> {
636636
let name = WorldKey::Name("$root".to_string()); //WorldKey::Name(resolve.worlds[world].name.clone());
637637
let wasm_import_module = resolve.name_world_key(&name);
638638
let binding = Some(name);
639-
let mut r#gen = self.interface(resolve, binding.as_ref(), true, Some(wasm_import_module));
639+
let mut r#gen =
640+
self.interface(resolve, binding.as_ref(), true, Some(wasm_import_module))?;
640641
let namespace = namespace(resolve, &TypeOwner::World(world), false, &*r#gen.r#gen);
641642

642643
for (_name, func) in funcs.iter() {
@@ -645,6 +646,7 @@ impl WorldGenerator for Cpp {
645646
r#gen.generate_function(func, &TypeOwner::World(world), AbiVariant::GuestImport);
646647
}
647648
}
649+
Ok(())
648650
}
649651

650652
fn export_funcs(
@@ -656,7 +658,7 @@ impl WorldGenerator for Cpp {
656658
) -> anyhow::Result<()> {
657659
let name = WorldKey::Name(resolve.worlds[world].name.clone());
658660
let binding = Some(name);
659-
let mut r#gen = self.interface(resolve, binding.as_ref(), false, None);
661+
let mut r#gen = self.interface(resolve, binding.as_ref(), false, None)?;
660662
let namespace = namespace(resolve, &TypeOwner::World(world), true, &*r#gen.r#gen);
661663

662664
for (_name, func) in funcs.iter() {
@@ -674,11 +676,12 @@ impl WorldGenerator for Cpp {
674676
_world: WorldId,
675677
types: &[(&str, TypeId)],
676678
_files: &mut Files,
677-
) {
678-
let mut r#gen = self.interface(resolve, None, true, Some("$root".to_string()));
679+
) -> Result<()> {
680+
let mut r#gen = self.interface(resolve, None, true, Some("$root".to_string()))?;
679681
for (name, id) in types.iter() {
680682
r#gen.define_type(name, *id);
681683
}
684+
Ok(())
682685
}
683686

684687
fn finish(

‎crates/csharp/src/world_generator.rs‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::csharp_ident::ToCSharpIdent;
22
use crate::function::ResourceInfo;
33
use crate::interface::{InterfaceFragment, InterfaceGenerator, InterfaceTypeAndFragments};
44
use crate::{CSharpRuntime, Opts};
5+
use anyhow::Result;
56
use heck::ToUpperCamelCase;
67
use indexmap::IndexMap;
78
use std::collections::{HashMap, HashSet};
@@ -170,7 +171,7 @@ impl WorldGenerator for CSharp {
170171
}
171172
});
172173
self.name = name.to_string();
173-
self.sizes.fill(resolve);
174+
self.sizes.fill(resolve)?;
174175
Ok(())
175176
}
176177

@@ -229,7 +230,7 @@ impl WorldGenerator for CSharp {
229230
world: WorldId,
230231
funcs: &[(&str, &Function)],
231232
_files: &mut Files,
232-
) {
233+
) -> Result<()> {
233234
self.import_funcs_called = true;
234235

235236
let name = &format!("{}-world", resolve.worlds[world].name).to_upper_camel_case();
@@ -255,6 +256,7 @@ impl WorldGenerator for CSharp {
255256
}
256257

257258
r#gen.add_world_fragment(Some(Direction::Import));
259+
Ok(())
258260
}
259261

260262
fn export_interface(
@@ -364,7 +366,7 @@ impl WorldGenerator for CSharp {
364366
world: WorldId,
365367
types: &[(&str, TypeId)],
366368
_files: &mut Files,
367-
) {
369+
) -> Result<()> {
368370
let name = &format!("{}-world", resolve.worlds[world].name).to_upper_camel_case();
369371
let name = &format!("{name}.I{name}Imports");
370372
let mut r#gen = self.interface(resolve, name, Direction::Import, false);
@@ -379,12 +381,13 @@ impl WorldGenerator for CSharp {
379381
r#gen.csharp_gen.world_resources = new_resources;
380382

381383
r#gen.add_world_fragment(Some(Direction::Import));
384+
Ok(())
382385
}
383386

384387
fn finish(&mut self, resolve: &Resolve, id: WorldId, files: &mut Files) -> anyhow::Result<()> {
385388
if !self.import_funcs_called {
386389
// Ensure that we emit type declarations for any top-level imported resource types:
387-
self.import_funcs(resolve, id, &[], files);
390+
self.import_funcs(resolve, id, &[], files)?;
388391
}
389392

390393
let world = &resolve.worlds[id];

‎crates/d/src/lib.rs‎

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -341,11 +341,11 @@ impl D {
341341
direction: Option<Direction>,
342342
name: Option<&'a WorldKey>,
343343
wasm_import_module: Option<&'a str>,
344-
) -> DInterfaceGenerator<'a> {
344+
) -> Result<DInterfaceGenerator<'a>> {
345345
let mut sizes = SizeAlign::default();
346-
sizes.fill(resolve);
346+
sizes.fill(resolve)?;
347347

348-
DInterfaceGenerator {
348+
Ok(DInterfaceGenerator {
349349
src: Source::default(),
350350
stub_src: Source::default(),
351351
stubs: Vec::default(),
@@ -361,7 +361,7 @@ impl D {
361361

362362
return_pointer_area_size: Default::default(),
363363
return_pointer_area_align: Default::default(),
364-
}
364+
})
365365
}
366366

367367
fn lookup_interface_fqn(&self, id: InterfaceId, direction: Option<Direction>) -> Option<&str> {
@@ -497,7 +497,7 @@ impl WorldGenerator for D {
497497
Some(Direction::Import),
498498
Some(name),
499499
Some(&wasm_import_module),
500-
);
500+
)?;
501501
r#gen.fqn = &fqn;
502502
r#gen.interface = Some(id);
503503
r#gen.prologue();
@@ -545,16 +545,17 @@ impl WorldGenerator for D {
545545
_world: WorldId,
546546
types: &[(&str, TypeId)],
547547
_files: &mut Files,
548-
) {
548+
) -> Result<()> {
549549
let fqn = self.world_fqn.clone();
550-
let mut r#gen = self.interface(resolve, Some(Direction::Import), None, Some("$root"));
550+
let mut r#gen = self.interface(resolve, Some(Direction::Import), None, Some("$root"))?;
551551
r#gen.fqn = &fqn;
552552

553553
for (name, id) in types.iter() {
554554
r#gen.define_type(name, *id);
555555
}
556556

557557
self.type_imports_src = take(&mut r#gen.src);
558+
Ok(())
558559
}
559560

560561
fn import_funcs(
@@ -563,16 +564,17 @@ impl WorldGenerator for D {
563564
_world: WorldId,
564565
funcs: &[(&str, &Function)],
565566
_files: &mut Files,
566-
) {
567+
) -> Result<()> {
567568
let fqn = self.world_fqn.clone();
568-
let mut r#gen = self.interface(resolve, Some(Direction::Import), None, Some("$root"));
569+
let mut r#gen = self.interface(resolve, Some(Direction::Import), None, Some("$root"))?;
569570
r#gen.fqn = &fqn;
570571

571572
for (_name, func) in funcs {
572573
r#gen.import_func(func);
573574
}
574575

575576
self.function_imports_src = take(&mut r#gen.src);
577+
Ok(())
576578
}
577579

578580
fn export_interface(
@@ -598,7 +600,7 @@ impl WorldGenerator for D {
598600
Some(Direction::Export),
599601
Some(name),
600602
Some(&wasm_import_module),
601-
);
603+
)?;
602604
r#gen.fqn = &fqn;
603605
r#gen.interface = Some(id);
604606
r#gen.prologue();
@@ -749,7 +751,7 @@ impl WorldGenerator for D {
749751
_files: &mut Files,
750752
) -> Result<()> {
751753
let fqn = self.world_fqn.clone();
752-
let mut r#gen = self.interface(resolve, Some(Direction::Export), None, Some("$root"));
754+
let mut r#gen = self.interface(resolve, Some(Direction::Export), None, Some("$root"))?;
753755
r#gen.fqn = &fqn;
754756

755757
for (_name, func) in funcs {
@@ -788,7 +790,7 @@ impl WorldGenerator for D {
788790

789791
let wasm_import_module = resolve.name_world_key(&name);
790792
let mut r#gen =
791-
self.interface(resolve, None, Some(&name), Some(&wasm_import_module));
793+
self.interface(resolve, None, Some(&name), Some(&wasm_import_module))?;
792794
r#gen.fqn = &fqn;
793795
r#gen.interface = Some(id);
794796
r#gen.prologue();

0 commit comments

Comments
 (0)