自创建以来,wasm32-unknown-unknown目标的extern "C" ABI一直使用非标准定义。未来Rust编译器将采用官方C ABI,以解决与WebAssembly工具链标准不符的问题。这将导致生成的WebAssembly二进制文件有所不同,开发者需关注项目兼容性,并根据Rust编译器的警告进行调整。
Rust编译器将更新wasm32-unknown-unknown目标的C ABI定义,以符合WebAssembly标准。这一变更将影响生成的WebAssembly二进制文件,开发者需检查项目兼容性,并使用新工具测试项目,必要时调整代码以适应ABI变化。
Rust 1.82版本引入了wasm32-wasip2目标,支持WASI 0.2的二级平台,允许开发者使用WASI 0.2接口编写网络代码。标准库对WASI 0.2的支持仍在扩展中,预计将逐步完善。
Rust将WASI 0.2目标更名为wasm32-wasip1,并引入了新的wasm32-wasip2目标。从Rust 1.81开始,wasm32-wasip2将作为tier-2目标提供。这意味着它现在可以保证构建,并可通过Rustup进行预构建目标的安装。这也意味着生态系统的crate可以直接针对WASI 0.2进行平台特定代码的编写。但是,WASI 0.2目前仍然不完整,特别是stdlib支持有限。建议使用wasi crate或wit-bindgen生成自己的WASI规范绑定。预计在今年和明年逐步扩展Rust stdlib对WASI 0.2 API的支持。
完成下面两步后,将自动完成登录并继续当前操作。