【Rust日报】2025-12- 06 公告《Rust 已在 nightly 中切换到自己的 mangling 方案》

💡 原文中文,约2400字,阅读约需6分钟。
📝

内容提要

Rust 编译器将在 Nightly 版本中默认启用新的 v0 符号修饰方案,以解决旧版的缺陷,如信息丢失和不一致性。v0 方案提供更好的工具支持和可逆性,用户可在遇到问题时回退至旧版,最终计划在稳定版中启用。

🎯

关键要点

  • Rust 编译器将在 Nightly 版本中默认启用 v0 符号修饰方案。
  • v0 方案旨在解决旧版的缺陷,如信息丢失和不一致性。
  • 用户可以在遇到问题时回退至旧版符号修饰方案。
  • v0 方案能够完整编码泛型参数等信息,提供更好的工具支持。
  • 主流工具已支持 v0,但旧工具可能无法识别新符号。
  • v0 产生的符号可能比旧版更长,可能导致链接时间和二进制体积增加。
  • 用户可以通过编译参数切换回旧版方案。
  • 编译器团队将根据用户反馈修复潜在问题,最终在稳定版中启用 v0。
  • crates.io 团队删除了两个恶意库 evm-units 和 uniswap-utils。
  • 恶意库被发现包含窃取加密货币的载荷,相关用户账号已被禁用。
  • 提案引入新的 Trait 以支持自定义智能指针的投影行为。
  • Redox OS 在图形栈和桌面体验上取得重大进展,首次实现 Wayland 协议的移植。
  • Redox 还移植了 MATE 桌面环境和 WebKitGTK 浏览器引擎。
  • 硬件驱动方面,针对 Intel HD 集成显卡的初始模式设置驱动代码已合并。
  • 此次更新提升了操作系统的稳定性和开发者的维护体验。

延伸问答

Rust 编译器的 v0 符号修饰方案有什么优势?

v0 方案能够完整编码泛型参数等信息,提供更好的工具支持,且无歧义且可逆,便于从符号反推源代码结构。

用户如何在 Rust 中回退到旧版符号修饰方案?

用户可以通过编译参数 -C symbol-mangling-version=legacy 切换回旧版方案。

Rust 编译器为何需要切换到 v0 符号修饰方案?

旧版方案存在信息丢失和不一致性等缺陷,无法准确表达 Rust 特有的泛型实例化信息。

v0 符号修饰方案对工具链的兼容性有什么影响?

虽然主流工具已支持 v0,但一些旧工具可能无法识别新符号,导致用户看到乱码般的函数名。

Rust 编译器团队如何处理用户反馈?

编译器团队将根据 Nightly 用户的反馈修复潜在问题,并在确保工具支持后最终在稳定版中启用 v0。

最近 Rust 生态系统中有哪些恶意库被删除?

crates.io 团队删除了两个恶意库 evm-units 和 uniswap-utils,这些库被发现包含窃取加密货币的载荷。

➡️

继续阅读