【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,这些库被发现包含窃取加密货币的载荷。
➡️