Rust:新版本 1.91.1 版本修复解析

Rust 1.91.1:紧急修正 Wasm 链接风险与平台兼容性

发布日期: 2025 年 11 月 10 日 官方博客原文: Announcing Rust 1.91.1

一、 综述:精准修复两大回归(Regressions)

Rust 1.91.1 是一个专门针对 1.91.0 版本引入的两个严重错误而发布的补丁版本。它的任务非常明确:

  1. 挽救 Wasm 运行时的安全性:修复了可能导致"静默数据损坏"或"崩溃"的链接错误。
  2. 恢复 illumos 平台的工程能力 :修复了在该操作系统上由于 File::lock 报错导致的 Cargo 无法并行构建的问题。

二、 核心更新深度解析

1. 修复 Wasm 的链接器与运行时错误

原文参考: Wasm linker and runtime errors

这是本次补丁中最关键的安全修复。在 Wasm 环境中,符号是通过"名称"和"模块名"双重识别的。

  • 问题所在: 在 1.91.0 中,#[link(wasm_import_module = "...")] 属性出现回归。当从多个不同的 Rust crate 导入相同的符号名称时,编译器可能会搞混它们所属的模块。

  • 后果: * 链接失败: 报"导入模块不匹配(Import module mismatch)"错误。

    • 致命隐患: 在运行时调用了错误的函数 。这会导致未定义行为(UB),包括程序直接崩溃或更可怕的静默数据损坏。
  • 修复方案: 1.91.1 修正了该属性的处理逻辑,确保了多模块 Wasm 开发的符号隔离。

  • 详情参考: Issue #148347

2. 修复 illumos 上的 Cargo 构建目录锁定故障

原文参考: Broken Cargo target directory locking on illumos

Cargo 会锁定 target/ 目录以防止多个 Cargo 进程互相踩踏(例如你同时在两个终端跑构建)。

  • 技术背景: Rust 1.89.0 稳定了标准库的 File::lock 方法。在 1.91.0 中,Cargo 切换到了这个标准库实现。
  • 回归原因: 由于代码实现上的疏忽,File::lock 在 illumos 目标平台上始终返回 Unsupported 错误。
  • 影响: 这导致 Cargo 无法在 illumos 上锁定构建目录,使得并发构建变得极不稳定。
  • 修复方案: 1.91.1 在标准库中为 illumos 启用了正确的函数族支持,从而修复了 Cargo 的锁定机制。

三、 总结与建议:哪些人必须立即升级?

虽然 1.91.1 只有两个修复,但其涉及的都是底层稳定性的"地基"。

1. 针对不同开发者的行动指南

  • WebAssembly (Wasm) 开发者: 必须立即升级。 如果你在开发复杂的 Wasm 应用,特别是涉及跨 crate 调用的,1.91.0 可能潜伏着数据损坏的风险。
  • illumos 用户: 强烈建议升级。 解决 Cargo 的锁定问题能显著提升你在该平台上的开发稳定性。
  • 其他平台(Linux/macOS/Windows)开发者: 如果你不涉及 Wasm 开发,此版本对你的影响微乎其微。但本着"能升就升"的原则,建议使用 rustup update stable 保持最新。
相关推荐
Thneonl1 小时前
全集群钟差 300 毫秒会发生什么:证书悄悄过期,日志倒流
运维·后端
金銀銅鐵1 小时前
[Java] 借助GUI展示class文件的版本号
后端·python·ai编程
马剑威(威哥爱编程)1 小时前
【AI全栈后端12-12】Spring Boot 3.x 到 4.x 迁移实操:Jakarta 11、Jackson 3 与 AI 2.0
java·开发语言·spring boot·后端
136096757232 小时前
一台 4 核 8G 已经跑了 6 个站点,我是怎么把第 7 个塞进去的
后端
对象存储与RustFS2 小时前
JuiceFS + 对象存储:把 S3 变成 POSIX 文件系统实测
后端·rust·开源
她的男孩2 小时前
企业接口照样拦得住:独立 Flyway、@RequiresFeature 与离线许可证
java·spring boot·后端
十年Java程序媛2 小时前
Lambda 与函数式接口|别只会复制 ()->{},底层规则和坑一次性讲清
java·spring boot·后端
yunwei372 小时前
eBPF 入门开发实践教程一:Hello World,基本框架和开发流程
linux·后端·性能优化
全栈Agent 小李2 小时前
【无标题】
前端·后端·agent·ai编程·全栈·cursor·mcp