QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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:523989

评论

发布
暂无评论

40个问题让你快速掌握Java多线程的精髓

华为云开发者联盟

Java 多线程 synchronized Thread Semaphore

身边的最优化问题

PeterOne

人工智能 算法

Leveldb解读之四:Compaction

Jowin

leveldb

手把手教你写一个经典躲避游戏

HZFEStudio

大前端 游戏 canvas

亲爱的开发者,您收到一个启动智能世界的魔方

白洞计划

合约交易所跟单,合约跟单社区开发

ISO/IEC 5055:软件代码质量的标尺

华为云开发者联盟

软件 代码质量 源代码 ISO/IEC 软件质量模型

使用 rocketmq-spring-boot-starter 来配置、发送和消费 RocketMQ 消息

阿里巴巴云原生

容器 开发者 云原生 中间件 API

编程实战:如何管理代码里的常量

华为云开发者联盟

常量 代码 web开发 final常量类 复用常量

Coinbase上市意味着什么?

猫Buboo

RocketMQ NameServer工作原理与源码解析

HByte

RocketMQ

马斯克的狗狗币实验

猫Buboo

2021最全网页视频下载攻略 【建议收藏】

科技猫

软件 工具 网站 分享 视频处理

扩展 GRTN:云原生趋势下的 RTC 架构演进

阿里云CloudImagine

阿里云 云原生 RTC SRS流媒体服务器

Pytorch数据加载

Sakura

4月日更

B站HR炫耀资产、贬低面试者?无独有偶,校招污点事件记录帮你避雷

北游学Java

Java 面试

区块链食品溯源--为食品溯源认证

13530558032

区块链电子签章应用平台--助推企业数字化转型升级

13530558032

如何推进一个“以行动为导向的”事件驱动架构?

VoltDB

数据库 数据分析 实时数据分析 事件驱动架构

LeetCode题解:73. 矩阵置零,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

面对大规模 K8s 集群,如何先于用户发现问题?

阿里巴巴云原生

容器 云原生 k8s 监控 调度

What's new in dubbo-go v1.5.6

阿里巴巴云原生

开发者 云原生 dubbo 中间件 Go 语言

几个快速提升工作效率的小工具(Listary等)分享一下(强烈建议收藏)

码农飞哥

Python基础语法和数据类型最全总结

华为云开发者联盟

Python

浅谈BSS3.0产品“守成”之策下 • 运维提升篇

鲸品堂

软件 运维 提升

量化策略系统搭建,马丁策略交易

架构实战营 - 架构设计文档模板

华仔

架构设计 文档模板

源中瑞智慧党建系统,打造党建管理系模式

13530558032

用C++ 和OpenCV 实现视频目标检测(YOLOv4模型)

博文视点Broadview

闲来无事,写脚本,install_wordpress

ilinux

游戏测试-战斗内核的自动化测试

行者AI

人工智能

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