Rust 1.93.0 稳定版本现已正式上线,本次更新涵盖多项重要改进与新增功能:
musl 库升级至 1.2.5 版本
所有 *-linux-musl 目标平台现已默认集成 musl 1.2.5。此次升级主要面向此前使用 musl 1.2.3 的静态链接构建环境,包括 x86_64、aarch64 和 powerpc64le 等架构。新版本不仅整合了多项错误修复与性能优化,还引入了一项对 Rust 生态具有兼容性影响的变更。
本次升级的关键动因在于 musl DNS 解析器的全面重构——该改进始于 1.2.4,并在 1.2.5 中进一步完善并修复若干边界问题。当通过 musl targets 构建完全静态链接的可执行文件时,网络通信(尤其是涉及超长 DNS 响应或递归解析场景)的稳定性与健壮性将显著增强。
不过需注意:musl 1.2.4 移除了部分被 Rust libc crate 长期依赖的旧兼容符号。该兼容性问题已在 libc crate 0.2.146(发布于 2025 年 6 月,距今已逾两年半)中完成修复。鉴于当前生态中该版本已被广泛采用,Rust 团队决定在本次稳定版中同步启用对应调整。
更多信息请参考先前发布的相关说明。
全局分配器支持线程局部存储(TLS)
Rust 1.93 对标准库底层实现进行了重构,使纯 Rust 编写的全局分配器能够安全调用标准库中的 std::thread::current 及 thread_local! 宏。该改动通过在分配器关键路径中切换至系统原生分配器,有效规避了潜在的重入(reentrancy)风险。
简言之,开发者现在可在自定义全局分配器中放心使用标准库提供的线程局部存储机制,而无需担心内存分配逻辑引发的死锁或未定义行为。
具体技术细节请查阅官方文档。
为 asm! 宏内联添加 cfg 属性支持
asm!(
// 或 global_asm! / naked_asm!
"nop",
#[cfg(target_feature = "sse2")]
"nop",
// ...
#[cfg(target_feature = "sse2")]
a = const 123, // 仅在启用 sse2 时生效
);稳定化 API 列表
]>::assume_init_drop ]>::assume_init_ref ]>::assume_init_mut ]>::write_copy_of_slice ]>::write_clone_of_slice String::into_raw_parts Vec::into_raw_parts <in>::unchecked_neg</in> <in>::unchecked_shl</in> <in>::unchecked_shr</in> <un>::unchecked_shl</un> <un>::unchecked_shr</un> ::as_array ::as_mut_array ::as_array ::as_mut_array VecDeque::pop_front_if VecDeque::pop_back_if Duration::from_nanos_u128 c
har::MAX_LEN_UTF8 char::MAX_LEN_UTF16 std::fmt::from_fn std::fmt::FromFn