Skip to content

Automatic adaption to 64bit architectures in guest code#1163

Merged
alexcrichton merged 3 commits into
bytecodealliance:mainfrom
cpetig:sixtyfour_bit_support
Mar 11, 2025
Merged

Automatic adaption to 64bit architectures in guest code#1163
alexcrichton merged 3 commits into
bytecodealliance:mainfrom
cpetig:sixtyfour_bit_support

Conversation

@cpetig

@cpetig cpetig commented Feb 11, 2025

Copy link
Copy Markdown
Collaborator

No description provided.

@pavelsavara

Copy link
Copy Markdown
Collaborator

cc @jsturtevant for C#

@cpetig

cpetig commented Feb 11, 2025

Copy link
Copy Markdown
Collaborator Author

Sorry for the extensive patch, basically this changes the Rust and C code generation (in this case passing a list) to

#[cfg_attr(target_pointer_width = "64", repr(align(8)))]
#[cfg_attr(target_pointer_width = "32", repr(align(4)))]
struct RetArea(
    [::core::mem::MaybeUninit<u8>; 2 * core::mem::size_of::<*const u8>()],
);
let mut ret_area = RetArea(
    [::core::mem::MaybeUninit::uninit(); 2 * core::mem::size_of::<*const u8>()],
);

*base.add(core::mem::size_of::<*const u8>()).cast::<usize>() = len0;
*base.add(0).cast::<*mut u8>() = ptr0.cast_mut();

@cpetig

cpetig commented Feb 11, 2025

Copy link
Copy Markdown
Collaborator Author

cc @jsturtevant for C#

I wasn't able to output the proper code for C# because I don't know enough of it, but Rust or C should give a good template.

@cpetig

cpetig commented Feb 11, 2025

Copy link
Copy Markdown
Collaborator Author

The publish test will be fixed by the next wasm-tools release (blocked there)

@cpetig

cpetig commented Feb 11, 2025

Copy link
Copy Markdown
Collaborator Author

Also part of #1098

@alexcrichton alexcrichton left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This all looks great to me, thanks! I'll work on getting a wasm-tools release out next week in order to merge this.

@alexcrichton

Copy link
Copy Markdown
Member

The wasm-tools update is at bytecodealliance/wasm-tools#2054 which is coupled with some extra testing in Wasmtime. I also want to do some more testing in this repository before publishing to ensure that not too much is broken here.

@alexcrichton

Copy link
Copy Markdown
Member

Ok the wasm-tools update should be going through in #1167

@alexcrichton

Copy link
Copy Markdown
Member

Ok this should be mergable after a rebase I believe.

@cpetig cpetig force-pushed the sixtyfour_bit_support branch from fd9c983 to 9787a9d Compare February 27, 2025 21:10
@cpetig cpetig force-pushed the sixtyfour_bit_support branch from e3d5b70 to 26b883c Compare March 9, 2025 14:21
@alexcrichton alexcrichton added this pull request to the merge queue Mar 11, 2025
Merged via the queue into bytecodealliance:main with commit 0e191cc Mar 11, 2025
rvolosatovs added a commit to bytecodealliance/wrpc that referenced this pull request Jun 22, 2026
Merge upstream wit-bindgen 0.41.0 into the vendored bindgen subtree.

- Bump wit-bindgen-core 0.40 -> 0.41 (wit-parser stays 0.227).
- Carry upstream's `gen` -> `r#gen` rename of the `InterfaceGenerator` field (and
  the `gen` locals in `lib.rs`) so `interface.rs`/`lib.rs` match upstream
  verbatim, including at the three `additional_derive_ignore` sites.
- Port upstream feature bytecodealliance/wit-bindgen#1199 (`additional_derives_ignore`): variants and records
  named in this kebab-case list are excluded when applying `additional_derives`,
  so a type whose payload doesn't implement an added trait (e.g. a resource
  handle vs `serde::Deserialize`) keeps the bindings compiling. The macro half
  (`crates/wit-bindgen-rust-macro`) merged cleanly; reimplemented the generator
  half against wRPC's `Opts` (new `additional_derive_ignore` field + preamble
  log) and the three derive sites in `interface.rs` (record/variant/enum), each
  gated by `!additional_derive_ignore.contains(&name.to_kebab_case())`.
- Make wRPC's value-codec decoder generation edition-2024-clean: drop the
  explicit `ref mut` bindings in the three generated decoder match patterns in
  `interface.rs` (the default binding mode yields `&mut` under both editions),
  so generated bindings compile under edition 2024 as well as 2021. This is
  validated by the dual-edition `verify` carried with the test subcommand below.
- Carry upstream feature bytecodealliance/wit-bindgen#1192 (`wit-bindgen test` subcommand), vendored from
  upstream's `crates/test` into a new `wit-bindgen-wrpc-test` crate
  (`crates/wit-bindgen-test`) with the guest-Wasm-specific pieces removed. The
  CLI gains a `wit-bindgen-wrpc test` subcommand. `lib.rs`/`config.rs` track
  upstream verbatim (kept `deny_unknown_fields`); `rust.rs` keeps upstream's
  `Edition` enum and dual-edition `verify` (compiling generated bindings under
  both 2021 and 2024) but is host-adapted. Dropped as guest-Wasm: the C/WAT
  language backends and the custom external-runner (`crates/test/src/{c,wat,
  custom}.rs`), the wasmtime runner (`runner.rs`), and in `lib.rs` the wasm32
  component compilation/`convert_p1_to_component`, `wasm-compose` composition and
  `wasmparser` validation. Codegen tests run the generic `tests/codegen/*.wit`
  inputs (replacing the `codegen_tests!` macro harness, so
  `crates/wit-bindgen-{rust,go}/tests/codegen.rs` are deleted). Runtime tests
  live under `tests/runtime/rust/<name>/` with `runner`+`test` worlds; since wRPC
  bindings are `Invoke`/`Serve` RPC stubs rather than guest components, the
  `runner` (client) and `test` (server) are linked into one host binary connected
  over an in-process TCP transport and run to completion, instead of being
  composed in a component runtime. `go.rs` is wRPC-specific (upstream has no Go
  backend at this version). bytecodealliance/wit-bindgen#1199's `custom-derives` test is ported here as a
  runtime test, behaviorally proving the derives apply (and that `ignoreme` is
  excluded), alongside ports of upstream's option tests (skip, with, with-types,
  with-option-generate, alternative-bitflags, gated-features, unused-types). The
  suite is driven under `cargo test` via `tests/bindgen.rs`, which invokes the
  subcommand through `CARGO_BIN_EXE_wit-bindgen-wrpc`.

Non-carries (not applicable to wRPC, dropped from the merge):
- upstream removed Go from its own tree (bytecodealliance/wit-bindgen#1195); wRPC keeps its own
  `wit-bindgen-go` generator.
- canonical-ABI / component-async / wasm-export-attribute changes (bytecodealliance/wit-bindgen#1206/bytecodealliance/wit-bindgen#1205
  rust 2024 edition export attrs, bytecodealliance/wit-bindgen#1163 64-bit guest adaption, bytecodealliance/wit-bindgen#1185 async stack
  args, bytecodealliance/wit-bindgen#1198 p3) do not apply to wRPC's transport-stub generator.

`wit-bindgen-wrpc test` runs 172 codegen tests (86 WITs x rust/go, each rust case
verified under editions 2021 and 2024) and the runtime tests green; the whole
workspace builds; `cargo clippy --workspace` and `cargo doc --workspace` are
clean.

Assisted-by: claude:claude-opus-4-8
Upstream diff: bytecodealliance/wit-bindgen@v0.40.0...v0.41.0
rvolosatovs added a commit to bytecodealliance/wrpc that referenced this pull request Jun 23, 2026
Merge upstream wit-bindgen 0.41.0 into the vendored bindgen subtree.

- Bump wit-bindgen-core 0.40 -> 0.41 (wit-parser stays 0.227).
- Carry upstream's `gen` -> `r#gen` rename of the `InterfaceGenerator` field (and
  the `gen` locals in `lib.rs`) so `interface.rs`/`lib.rs` match upstream
  verbatim, including at the three `additional_derive_ignore` sites.
- Port upstream feature bytecodealliance/wit-bindgen#1199 (`additional_derives_ignore`): variants and records
  named in this kebab-case list are excluded when applying `additional_derives`,
  so a type whose payload doesn't implement an added trait (e.g. a resource
  handle vs `serde::Deserialize`) keeps the bindings compiling. The macro half
  (`crates/wit-bindgen-rust-macro`) merged cleanly; reimplemented the generator
  half against wRPC's `Opts` (new `additional_derive_ignore` field + preamble
  log) and the three derive sites in `interface.rs` (record/variant/enum), each
  gated by `!additional_derive_ignore.contains(&name.to_kebab_case())`.
- Make wRPC's value-codec decoder generation edition-2024-clean: drop the
  explicit `ref mut` bindings in the three generated decoder match patterns in
  `interface.rs` (the default binding mode yields `&mut` under both editions),
  so generated bindings compile under edition 2024 as well as 2021. This is
  validated by the dual-edition `verify` carried with the test subcommand below.
- Carry upstream feature bytecodealliance/wit-bindgen#1192 (`wit-bindgen test` subcommand), vendored from
  upstream's `crates/test` into a new `wit-bindgen-wrpc-test` crate
  (`crates/wit-bindgen-test`) with the guest-Wasm-specific pieces removed. The
  CLI gains a `wit-bindgen-wrpc test` subcommand. `lib.rs`/`config.rs` track
  upstream verbatim (kept `deny_unknown_fields`); `rust.rs` keeps upstream's
  `Edition` enum and dual-edition `verify` (compiling generated bindings under
  both 2021 and 2024) but is host-adapted. Dropped as guest-Wasm: the C/WAT
  language backends and the custom external-runner (`crates/test/src/{c,wat,
  custom}.rs`), the wasmtime runner (`runner.rs`), and in `lib.rs` the wasm32
  component compilation/`convert_p1_to_component`, `wasm-compose` composition and
  `wasmparser` validation. Codegen tests run the generic `tests/codegen/*.wit`
  inputs (replacing the `codegen_tests!` macro harness, so
  `crates/wit-bindgen-{rust,go}/tests/codegen.rs` are deleted). Runtime tests
  live under `tests/runtime/rust/<name>/` with `runner`+`test` worlds; since wRPC
  bindings are `Invoke`/`Serve` RPC stubs rather than guest components, the
  `runner` (client) and `test` (server) are linked into one host binary connected
  over an in-process TCP transport and run to completion, instead of being
  composed in a component runtime. `go.rs` is wRPC-specific (upstream has no Go
  backend at this version). bytecodealliance/wit-bindgen#1199's `custom-derives` test is ported here as a
  runtime test, behaviorally proving the derives apply (and that `ignoreme` is
  excluded), alongside ports of upstream's option tests (skip, with, with-types,
  with-option-generate, alternative-bitflags, gated-features, unused-types). The
  suite is driven under `cargo test` via `tests/bindgen.rs`, which invokes the
  subcommand through `CARGO_BIN_EXE_wit-bindgen-wrpc`.

Non-carries (not applicable to wRPC, dropped from the merge):
- upstream removed Go from its own tree (bytecodealliance/wit-bindgen#1195); wRPC keeps its own
  `wit-bindgen-go` generator.
- canonical-ABI / component-async / wasm-export-attribute changes (bytecodealliance/wit-bindgen#1206/bytecodealliance/wit-bindgen#1205
  rust 2024 edition export attrs, bytecodealliance/wit-bindgen#1163 64-bit guest adaption, bytecodealliance/wit-bindgen#1185 async stack
  args, bytecodealliance/wit-bindgen#1198 p3) do not apply to wRPC's transport-stub generator.

`wit-bindgen-wrpc test` runs 172 codegen tests (86 WITs x rust/go, each rust case
verified under editions 2021 and 2024) and the runtime tests green; the whole
workspace builds; `cargo clippy --workspace` and `cargo doc --workspace` are
clean.

Assisted-by: claude:claude-opus-4-8
Upstream diff: bytecodealliance/wit-bindgen@v0.40.0...v0.41.0
rvolosatovs added a commit to bytecodealliance/wrpc that referenced this pull request Jun 23, 2026
Merge upstream wit-bindgen 0.41.0 into the vendored bindgen subtree.

- Bump wit-bindgen-core 0.40 -> 0.41 (wit-parser stays 0.227).
- Carry upstream's `gen` -> `r#gen` rename of the `InterfaceGenerator` field (and
  the `gen` locals in `lib.rs`) so `interface.rs`/`lib.rs` match upstream
  verbatim, including at the three `additional_derive_ignore` sites.
- Port upstream feature bytecodealliance/wit-bindgen#1199 (`additional_derives_ignore`): variants and records
  named in this kebab-case list are excluded when applying `additional_derives`,
  so a type whose payload doesn't implement an added trait (e.g. a resource
  handle vs `serde::Deserialize`) keeps the bindings compiling. The macro half
  (`crates/wit-bindgen-rust-macro`) merged cleanly; reimplemented the generator
  half against wRPC's `Opts` (new `additional_derive_ignore` field + preamble
  log) and the three derive sites in `interface.rs` (record/variant/enum), each
  gated by `!additional_derive_ignore.contains(&name.to_kebab_case())`.
- Make wRPC's value-codec decoder generation edition-2024-clean: drop the
  explicit `ref mut` bindings in the three generated decoder match patterns in
  `interface.rs` (the default binding mode yields `&mut` under both editions),
  so generated bindings compile under edition 2024 as well as 2021. This is
  validated by the dual-edition `verify` carried with the test subcommand below.
- Carry upstream feature bytecodealliance/wit-bindgen#1192 (`wit-bindgen test` subcommand), vendored from
  upstream's `crates/test` into a new `wit-bindgen-wrpc-test` crate
  (`crates/wit-bindgen-test`) with the guest-Wasm-specific pieces removed. The
  CLI gains a `wit-bindgen-wrpc test` subcommand. `lib.rs`/`config.rs` track
  upstream verbatim (kept `deny_unknown_fields`); `rust.rs` keeps upstream's
  `Edition` enum and dual-edition `verify` (compiling generated bindings under
  both 2021 and 2024) but is host-adapted. Dropped as guest-Wasm: the C/WAT
  language backends and the custom external-runner (`crates/test/src/{c,wat,
  custom}.rs`), the wasmtime runner (`runner.rs`), and in `lib.rs` the wasm32
  component compilation/`convert_p1_to_component`, `wasm-compose` composition and
  `wasmparser` validation. Codegen tests run the generic `tests/codegen/*.wit`
  inputs (replacing the `codegen_tests!` macro harness, so
  `crates/wit-bindgen-{rust,go}/tests/codegen.rs` are deleted). Runtime tests
  live under `tests/runtime/rust/<name>/` with `runner`+`test` worlds; since wRPC
  bindings are `Invoke`/`Serve` RPC stubs rather than guest components, the
  `runner` (client) and `test` (server) are linked into one host binary connected
  over an in-process TCP transport and run to completion, instead of being
  composed in a component runtime. `go.rs` is wRPC-specific (upstream has no Go
  backend at this version). bytecodealliance/wit-bindgen#1199's `custom-derives` test is ported here as a
  runtime test, behaviorally proving the derives apply (and that `ignoreme` is
  excluded), alongside ports of upstream's option tests (skip, with, with-types,
  with-option-generate, alternative-bitflags, gated-features, unused-types). The
  suite is driven under `cargo test` via `tests/bindgen.rs`, which invokes the
  subcommand through `CARGO_BIN_EXE_wit-bindgen-wrpc`.

Non-carries (not applicable to wRPC, dropped from the merge):
- upstream removed Go from its own tree (bytecodealliance/wit-bindgen#1195); wRPC keeps its own
  `wit-bindgen-go` generator.
- canonical-ABI / component-async / wasm-export-attribute changes (bytecodealliance/wit-bindgen#1206/bytecodealliance/wit-bindgen#1205
  rust 2024 edition export attrs, bytecodealliance/wit-bindgen#1163 64-bit guest adaption, bytecodealliance/wit-bindgen#1185 async stack
  args, bytecodealliance/wit-bindgen#1198 p3) do not apply to wRPC's transport-stub generator.

`wit-bindgen-wrpc test` runs 172 codegen tests (86 WITs x rust/go, each rust case
verified under editions 2021 and 2024) and the runtime tests green; the whole
workspace builds; `cargo clippy --workspace` and `cargo doc --workspace` are
clean.

Assisted-by: claude:claude-opus-4-8
Upstream diff: bytecodealliance/wit-bindgen@v0.40.0...v0.41.0
rvolosatovs added a commit to bytecodealliance/wrpc that referenced this pull request Jun 23, 2026
Merge upstream wit-bindgen 0.41.0 into the vendored bindgen subtree.

- Bump wit-bindgen-core 0.40 -> 0.41 (wit-parser stays 0.227).
- Carry upstream's `gen` -> `r#gen` rename of the `InterfaceGenerator` field (and
  the `gen` locals in `lib.rs`) so `interface.rs`/`lib.rs` match upstream
  verbatim, including at the three `additional_derive_ignore` sites.
- Port upstream feature bytecodealliance/wit-bindgen#1199 (`additional_derives_ignore`): variants and records
  named in this kebab-case list are excluded when applying `additional_derives`,
  so a type whose payload doesn't implement an added trait (e.g. a resource
  handle vs `serde::Deserialize`) keeps the bindings compiling. The macro half
  (`crates/wit-bindgen-rust-macro`) merged cleanly; reimplemented the generator
  half against wRPC's `Opts` (new `additional_derive_ignore` field + preamble
  log) and the three derive sites in `interface.rs` (record/variant/enum), each
  gated by `!additional_derive_ignore.contains(&name.to_kebab_case())`.
- Make wRPC's value-codec decoder generation edition-2024-clean: drop the
  explicit `ref mut` bindings in the three generated decoder match patterns in
  `interface.rs` (the default binding mode yields `&mut` under both editions),
  so generated bindings compile under edition 2024 as well as 2021. This is
  validated by the dual-edition `verify` carried with the test subcommand below.
- Carry upstream feature bytecodealliance/wit-bindgen#1192 (`wit-bindgen test` subcommand), vendored from
  upstream's `crates/test` into a new `wit-bindgen-wrpc-test` crate
  (`crates/wit-bindgen-test`) with the guest-Wasm-specific pieces removed. The
  CLI gains a `wit-bindgen-wrpc test` subcommand. `lib.rs`/`config.rs` track
  upstream verbatim (kept `deny_unknown_fields`); `rust.rs` keeps upstream's
  `Edition` enum and dual-edition `verify` (compiling generated bindings under
  both 2021 and 2024) but is host-adapted. Dropped as guest-Wasm: the C/WAT
  language backends and the custom external-runner (`crates/test/src/{c,wat,
  custom}.rs`), the wasmtime runner (`runner.rs`), and in `lib.rs` the wasm32
  component compilation/`convert_p1_to_component`, `wasm-compose` composition and
  `wasmparser` validation. Codegen tests run the generic `tests/codegen/*.wit`
  inputs (replacing the `codegen_tests!` macro harness, so
  `crates/wit-bindgen-{rust,go}/tests/codegen.rs` are deleted). Runtime tests
  live under `tests/runtime/rust/<name>/` with `runner`+`test` worlds; since wRPC
  bindings are `Invoke`/`Serve` RPC stubs rather than guest components, the
  `runner` (client) and `test` (server) are linked into one host binary connected
  over an in-process TCP transport and run to completion, instead of being
  composed in a component runtime. `go.rs` is wRPC-specific (upstream has no Go
  backend at this version). bytecodealliance/wit-bindgen#1199's `custom-derives` test is ported here as a
  runtime test, behaviorally proving the derives apply (and that `ignoreme` is
  excluded), alongside ports of upstream's option tests (skip, with, with-types,
  with-option-generate, alternative-bitflags, gated-features, unused-types). The
  suite is driven under `cargo test` via `tests/bindgen.rs`, which invokes the
  subcommand through `CARGO_BIN_EXE_wit-bindgen-wrpc`.

Non-carries (not applicable to wRPC, dropped from the merge):
- upstream removed Go from its own tree (bytecodealliance/wit-bindgen#1195); wRPC keeps its own
  `wit-bindgen-go` generator.
- canonical-ABI / component-async / wasm-export-attribute changes (bytecodealliance/wit-bindgen#1206/bytecodealliance/wit-bindgen#1205
  rust 2024 edition export attrs, bytecodealliance/wit-bindgen#1163 64-bit guest adaption, bytecodealliance/wit-bindgen#1185 async stack
  args, bytecodealliance/wit-bindgen#1198 p3) do not apply to wRPC's transport-stub generator.

`wit-bindgen-wrpc test` runs 172 codegen tests (86 WITs x rust/go, each rust case
verified under editions 2021 and 2024) and the runtime tests green; the whole
workspace builds; `cargo clippy --workspace` and `cargo doc --workspace` are
clean.

Assisted-by: claude:claude-opus-4-8
Upstream diff: bytecodealliance/wit-bindgen@v0.40.0...v0.41.0
rvolosatovs added a commit to bytecodealliance/wrpc that referenced this pull request Jun 23, 2026
Merge upstream wit-bindgen 0.41.0 into the vendored bindgen subtree.

- Bump wit-bindgen-core 0.40 -> 0.41 (wit-parser stays 0.227).
- Carry upstream's `gen` -> `r#gen` rename of the `InterfaceGenerator` field (and
  the `gen` locals in `lib.rs`) so `interface.rs`/`lib.rs` match upstream
  verbatim, including at the three `additional_derive_ignore` sites.
- Port upstream feature bytecodealliance/wit-bindgen#1199 (`additional_derives_ignore`): variants and records
  named in this kebab-case list are excluded when applying `additional_derives`,
  so a type whose payload doesn't implement an added trait (e.g. a resource
  handle vs `serde::Deserialize`) keeps the bindings compiling. The macro half
  (`crates/wit-bindgen-rust-macro`) merged cleanly; reimplemented the generator
  half against wRPC's `Opts` (new `additional_derive_ignore` field + preamble
  log) and the three derive sites in `interface.rs` (record/variant/enum), each
  gated by `!additional_derive_ignore.contains(&name.to_kebab_case())`.
- Make wRPC's value-codec decoder generation edition-2024-clean: drop the
  explicit `ref mut` bindings in the three generated decoder match patterns in
  `interface.rs` (the default binding mode yields `&mut` under both editions),
  so generated bindings compile under edition 2024 as well as 2021. This is
  validated by the dual-edition `verify` carried with the test subcommand below.
- Carry upstream feature bytecodealliance/wit-bindgen#1192 (`wit-bindgen test` subcommand), vendored from
  upstream's `crates/test` into a new `wit-bindgen-wrpc-test` crate
  (`crates/wit-bindgen-test`) with the guest-Wasm-specific pieces removed. The
  CLI gains a `wit-bindgen-wrpc test` subcommand. `lib.rs`/`config.rs` track
  upstream verbatim (kept `deny_unknown_fields`); `rust.rs` keeps upstream's
  `Edition` enum and dual-edition `verify` (compiling generated bindings under
  both 2021 and 2024) but is host-adapted. Dropped as guest-Wasm: the C/WAT
  language backends and the custom external-runner (`crates/test/src/{c,wat,
  custom}.rs`), the wasmtime runner (`runner.rs`), and in `lib.rs` the wasm32
  component compilation/`convert_p1_to_component`, `wasm-compose` composition and
  `wasmparser` validation. Codegen tests run the generic `tests/codegen/*.wit`
  inputs (replacing the `codegen_tests!` macro harness, so
  `crates/wit-bindgen-{rust,go}/tests/codegen.rs` are deleted). Runtime tests
  live under `tests/runtime/rust/<name>/` with `runner`+`test` worlds; since wRPC
  bindings are `Invoke`/`Serve` RPC stubs rather than guest components, the
  `runner` (client) and `test` (server) are linked into one host binary connected
  over an in-process TCP transport and run to completion, instead of being
  composed in a component runtime. `go.rs` is wRPC-specific (upstream has no Go
  backend at this version). bytecodealliance/wit-bindgen#1199's `custom-derives` test is ported here as a
  runtime test, behaviorally proving the derives apply (and that `ignoreme` is
  excluded), alongside ports of upstream's option tests (skip, with, with-types,
  with-option-generate, alternative-bitflags, gated-features, unused-types). The
  suite is driven under `cargo test` via `tests/bindgen.rs`, which invokes the
  subcommand through `CARGO_BIN_EXE_wit-bindgen-wrpc`.

Non-carries (not applicable to wRPC, dropped from the merge):
- upstream removed Go from its own tree (bytecodealliance/wit-bindgen#1195); wRPC keeps its own
  `wit-bindgen-go` generator.
- canonical-ABI / component-async / wasm-export-attribute changes (bytecodealliance/wit-bindgen#1206/bytecodealliance/wit-bindgen#1205
  rust 2024 edition export attrs, bytecodealliance/wit-bindgen#1163 64-bit guest adaption, bytecodealliance/wit-bindgen#1185 async stack
  args, bytecodealliance/wit-bindgen#1198 p3) do not apply to wRPC's transport-stub generator.

`wit-bindgen-wrpc test` runs 172 codegen tests (86 WITs x rust/go, each rust case
verified under editions 2021 and 2024) and the runtime tests green; the whole
workspace builds; `cargo clippy --workspace` and `cargo doc --workspace` are
clean.

Assisted-by: claude:claude-opus-4-8
Upstream diff: bytecodealliance/wit-bindgen@v0.40.0...v0.41.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants