Rust 1.99.1 发布:修复 x86_64 FFI bool 误编译等三项回归
Rust 发布团队于 2026年10月15日宣布稳定版 Rust 1.99.1。这是针对先前版本回归的点发布,官方建议已用 rustup 的用户执行 rustup update stable 升级。[1][2]
GitHub Release 标签时间为 2026-10-16T04:47:44Z(约合北京时间 10月16日 12:47)。[2]
修了什么
官方博客与 Release Notes 列出三项修复:[1][2]
缺失符号
wcslen(UEFI 与嵌入式等目标)
LLVM 的loop-idiom-wcslen优化可能引入对wcslen的调用,部分目标在 libc 等处没有现成实现,导致链接失败。UEFI 目标在使用std时尤其受影响。现已在 compiler-builtins 中提供回退实现。[1]x86_64 上 FFI 返回
bool的误编译
通过 FFI 返回bool的 Rust 函数,可能使返回寄存器的第 1–7 位处于未规定状态,调用方会看到非0/1的原始值。1.99.1 再次按 ABI 要求对该返回类型做零扩展标记。[1]macOS 上
rust-lld加载libLLVM失败
在不经由 rustup 代理直接调用编译器时,链接器可能找不到库搜索路径。现为rust-lld加入指向libLLVM.dylib所在目录的 rpath。[1]
谁需要尽快升级
官方博客还提醒:若希望协助测试未来版本,可在本地与 CI 使用 beta(rustup default beta)或 nightly(rustup default nightly)通道,并报告发现的缺陷。[1]
对依赖 FFI、嵌入式或 macOS 链接路径的项目,建议在升级后跑一遍既有集成测试与交叉编译任务,确认链接与 bool 返回边界行为符合预期。若对外分发了用 1.99.0 编译的静态库或带 C 接口的产物,应重新发布基于 1.99.1 的构建,并在发行说明中写明工具链版本。
使用 1.99.0 为 x86_64 构建过带 C ABI、返回
bool的库或二进制的项目:应使用 1.99.1 重新编译相关产物再分发,避免新旧编译器混链带来行为差异。UEFI / 嵌入式等曾因
wcslen链接失败的目标。在 macOS 上不通过 rustup 代理调用、并依赖
rust-lld的工具链场景。
说明:点发布以修复回归为主;完整说明见 Rust 官方博客与 GitHub Release。
来源
[1] Announcing Rust 1.99.1 | Rust Blog,The Rust Release Team,2026年10月15日。查询日:2026-10-27。
[2] GitHub Release: Rust 1.99.1,rust-lang/rust,2026年10月16日(标签发布时间)。查询日:2026-10-27。
#Rust #1.99.1 #FFI #rustup #发布
成为第一条评论!
Nobody's responded to this post yet. Add your thoughts and get the conversation going.