rust团队发布了Rust 1.93版本,这是一款专门用于创建快速、安全系统级软件的编程语言最新版本。此次更新改进了musl C标准库实现中涉及DNS解析器的操作,预计linux二进制文件在网络操作方面将更加可靠。
Rust 1.93于1月22日正式发布。已通过rustup安装旧版本Rust的开发者可以运行rust update stable命令进行升级。
主要更新内容
在Rust 1.93中,*-linux-musl目标平台将搭载musl 1.2.5版本。这主要影响x86_64、aarch64和powerpc64le的静态musl构建,这些平台此前使用的是musl 1.2.3版本。Rust团队表示,对于Rust生态系统而言,此次更新的主要动机是获得musl DNS解析器的重大改进,这些改进在1.2.4版本中发布,并在1.2.5版本中修复了相关错误。
当使用musl目标进行静态链接时,此次更新应该使便携式Linux二进制文件在执行网络操作时更加可靠,特别是在面对大型DNS记录和递归名称服务器时表现更佳。
然而,更新的musl库也带来了一个破坏性变更:移除了Rust libc crate之前使用的多个传统兼容性符号。针对这个问题的修复已在2023年6月的libc 0.2.146版本中发布(距今已有2.5年)。团队认为这个修复已经得到了充分传播,因此准备在Rust目标中实施这一变更。
技术改进与新功能
此外,Rust 1.93还调整了标准库的内部结构,允许用Rust编写的全局分配器使用std的thread_local!和std::thread::current,通过使用系统分配器来避免重入性问题。
在Rust 1.93中,cfg属性现在可以应用于asm!块内的单个语句。cfg属性根据配置谓词有条件地包含其附加的表单。
最后,Rust1.93稳定了23个API。此版本延续了上个月发布的Rust 1.92版本的改进,该版本将未来兼容性检查设为默认拒绝模式,在检测到问题时会导致编译错误。
Q&A
Q1:Rust 1.93版本有哪些主要改进?
A:Rust 1.93主要升级了musl库至1.2.5版本,显著改进了DNS解析器性能,使Linux二进制文件在网络操作方面更加可靠。同时调整了标准库内部结构,允许全局分配器更好地使用线程本地存储,并稳定了23个API。
Q2:如何升级到Rust 1.93版本?
A:已通过rustup安装旧版本Rust的开发者可以运行"rust update stable"命令直接升级到Rust 1.93版本。升级过程简单便捷,无需额外复杂配置。
Q3:musl库升级会对现有项目产生影响吗?
A:musl库升级主要影响使用静态链接的便携式Linux二进制文件,会提升网络操作的可靠性。不过存在一个破坏性变更,即移除了传统兼容性符号,但相关修复已在2023年6月发布,大部分项目应该已经适配。