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 保持最新。
相关推荐
谭光志4 小时前
Vibe Coding 时代,程序员该何去何从
前端·后端·ai编程
GoGeekBaird4 小时前
我用 BeeWeave 跑完了一次完整写作闭环
后端·github
仿生狮子6 小时前
别再说“全栈”了,AI 时代团队只认这 5 种人
前端·人工智能·后端
AOwhisky7 小时前
下一代容器来了?Docker 宣布原生支持 WebAssembly
java·运维·docker·容器·rust·wasm
Reart8 小时前
Leetcode 213.打家劫舍2(内含闲谈,打劫真是技术活,好题,716)
后端·算法
触底反弹8 小时前
🔥 RAG 到底是怎么工作的?掰开揉碎了给你讲明白!
javascript·人工智能·后端
techdashen9 小时前
Go 1.26 新增 `bytes.Buffer.Peek`:只看数据,不移动读取位置
开发语言·后端·golang
Reart9 小时前
Leetcode 198.打家劫舍(716)
后端·算法
Java编程爱好者10 小时前
Spring6.0+Boot3.0:秒级启动、万级并发的开发新姿势
后端
YYYing.10 小时前
【C++大型项目之高性能服务器框架 (七) 】Socket与ByteArray模块
服务器·c++·后端·框架·高性能·c/c++