写点什么

Rust 1.84 已发布,包括可能会破坏工具链的 WASI 目标更名

  • 2025-03-05
    北京
  • 本文字数:946 字

    阅读完需:约 3 分钟

大小:435.31K时长:02:28
Rust 1.84 已发布,包括可能会破坏工具链的 WASI 目标更名

本文最初发布于 DEV CLASS。



Rust 团队发布了 1.84.0 稳定版,带来下一代 trait 求解器和依赖版本检查改进方面的进展。不过,如果开发人员尚未进行必要的更新,那么 WebAssembly 系统接口(WASI)目标名称的变更可能会破坏工具链。

 

新版 Rust 主要有三个特性。首先是 Cargo 解析器可以感知支持的最小 Rust 版本(MRSV)。虽然该特性在默认情况下并未启用,但现在已经稳定。Cargo 是 Rust 官方的软件包管理器。如果升级后的软件包需要新一些的 Rust 版本,那么 Cargo 现在可以自动忽略它。在软件包清单中,MSRV 使用了可选的 rust-version 字段。

 

接下来是下一代 trait 求解器的进展。新的 trait 求解器是 Rust 类型系统的一部分,用于确定类型是否以及如何实现 trait (类似于其他语言中的接口)。按照 Rust 类型团队的说法,新求解器“应能修复许多长期存在的(稳定性)Bug,赋能未来类型系统的改进,并改善编译时间”。新求解器尚未完成,但现在将用于一致性检查,确保任何给定类型的 trait 最多只有一种实现。

 

第三,Rust 正在添加用于对指针出处进行严格检查的 API,尤其是在将指针转换为整数和返回整数时。该团队解释说,这个问题本身就存在模糊性。新 API 将有利于 Miri 等工具检测 Rust 代码中的未定义行为,也有利于证明 Rust 代码的形式正确性。

 

一些开发人员在升级 Rust 时会收到错误信息,因为目标 wasm32-wasi 已不再可用。这是因为该目标在 Rust 1.71 中已更名为 was32-wasip1 [zero point 1]。解决方法是升级前进行以下操作 :

rustup target remove wasm32-wasi
复制代码

 

这背后的故事是,还有一个 wasm-wasip2 [zero point 2] 目标,与 WASI(WebAssembly 系统接口)的里程碑版本相匹配。将初始目标命名为 wasm32-wasi(当时它还是早期预览版)是个错误,这掩盖了它还是一个正在开发中的接口这一事实。去年 4 月,开发人员收到了有关更改的预警,并有 8 个月的过渡期在项目中改用新的目标名称。不可避免的是,有些开发者还没有这样做,wasm32-wasi 的消失会造成一些麻烦,不过这也可能促使开发者在可能的情况下转向更新的 warm-wasip2 目标。

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://devclass.com/2025/01/14/rust-1-84-released-including-name-change-to-wasi-target-that-may-break-toolchains/

2025-03-05 17:524524

评论

发布
暂无评论

给你一直尝试和创新的机会!走进亚马逊云科技MRC团队

亚马逊云科技 (Amazon Web Services)

《原则》(八)

Changing Lin

6月日更

项目管理与项目集管理、项目组合管理的区别?

万事ONES

项目管理 项目 PMO ONES

聚焦机器同传前沿进展,第二届机器同传研讨会将在NAACL举办

百度大脑

人工智能 机器

HTTPS协议

IT视界

学妹问,学网站开发还是打 ACM?

程序员鱼皮

Java 程序员 算法 大前端 ACM

即时通讯系列-WorkPlus简介

BeeWorks

开源 即时通讯 IM 办公自动化

不愧是清华大佬,一个联机对战游戏就把23种设计模式给抽丝剥茧了

Java架构师迁哥

别乱打日志了,这才是正确的打日志姿势!

xcbeyond

日志 规范 6月日更

深度剖析:Redis分布式锁到底安全吗?看完这篇文章彻底懂了!

Kaito

redis zookeeper 分布式 后端

为什么说产品经理也要学点技术?

LigaAI

产品经理 研发管理 技术团队 产品设计与思考

本科毕业六年,备战一个月,四面阿里巴巴定级P7

Java架构师迁哥

人人视频被迫下架:打击盗版视频网站任重道远

石头IT视角

分布式认知工业互联网如何赋能工业企业数字化转型?

CECBC

限流篇,欣赏阿里开源Sentinel

下雨喽

架构 设计 sentinel 限流

软件研发团队如何做好项目进度管理?

万事ONES

项目管理 研发管理 需求 ONES

全过程智慧教育,看北京四中网校和亚马逊云科技如何实现?| 精选案例

亚马逊云科技 (Amazon Web Services)

国内低代码产品是如何定位的?这3类,企业可自行对号入座

优秀

低代码

加快技术应用规模化 建设世界先进水平区块链产业生态

CECBC

@成都的Coder

蚂蚁集团移动开发平台 mPaaS

flutter 移动开发 mPaaS

上云就上百度智能云,百度智能计算峰会召开,AI原生云全新升级

百度大脑

AI 智能云 峰会

探讨AI人才培养新思路,2021北京智源大会百度AI人才培养论坛召开

百度大脑

AI 人才培养

iOS开发-Objective-C 中的 MVVM 模式介绍

iOSer

ios objective-c MVVM ios开发

不管是三胎还是App!指望“拉新”太难了,还是要靠老用户!

APP开发

JavaScript 中数组 sort() 方法的基本使用

编程三昧

JavaScript 大前端 数组 排序 js

🏆【声网 Agora】「PC端实现实时语音通讯4.x」

码界西柚

WebRTC RTC征文大赛 声网 6月日更

5W1H聊开源之What——开源协议有哪些?

禅道项目管理

开源

区块链+金融:当前区块链应用场景中最具活力的领域

CECBC

阿里都会问些什么?4面阿里余额宝Java高级技术岗

Java架构师迁哥

从底层原理出发,了解Linux内核之内存管理

Linux服务器开发

后端 操作系统 内存管理 Linux内核 底层原理

大陆集团携手亚马逊云科技打造创新的汽车软件平台

亚马逊云科技 (Amazon Web Services)

Rust 1.84 已发布,包括可能会破坏工具链的 WASI 目标更名_编程语言_Tim Anderson_InfoQ精选文章