rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
96.73k stars 12.5k forks source link

Tracking issue for release notes of #128511: Document WebAssembly target feature expectations #129565

Open rustbot opened 2 weeks ago

rustbot commented 2 weeks ago

This issue tracks the release notes text for #128511.

Release notes text:

The section title will be de-duplicated by the release team with other release notes issues. Prefer to use the standard titles from previous releases. More than one section can be included if needed.

# Compatibility Notes
- The WebAssembly target features `multivalue` and `reference-types` are now
  both enabled by default. These two features both have subtle changes implied
  for generated WebAssembly binaries. For the `multivalue` feature, WebAssembly
  target support has changed when upgrading to LLVM 19. Support for generating
  functions with multiple returns no longer works and
  `-Ctarget-feature=+multivalue` has a different meaning than it did in LLVM 18
  and prior. There is no longer any supported means to generate a module that has
  a function with multiple returns in WebAssembly from Rust source code. For the
  `reference-types` feature the encoding of immediates in the `call_indirect`, a
  commonly used instruction by the WebAssembly backend, has changed. Validators
  and parsers which don't understand the `reference-types` proposal will no
  longer accept modules produced by LLVM due to this change in encoding of
  immediates. Additionally these features being enabled are encoded in the
  `target_features` custom section and may affect downstream tooling such as
  `wasm-opt` consuming the module. Generating a WebAssembly module that disables
  default features requires `-Zbuild-std` support from Cargo and more information
  can be found at
  [rust-lang/rust#128511](https://github.com/rust-lang/rust/pull/128511).

Release blog section (if any, leave blank if no section is expected):

jieyouxu commented 2 weeks ago

Candidate Wasm target changes blog post: https://github.com/rust-lang/blog.rust-lang.org/pull/1385

Intended to be sent before the LLVM 19 changes reach stable to allow people to be aware of the changes earlier, subject to T-release approval.

jieyouxu commented 2 weeks ago

cc @alexcrichton in case you want to double-check :3