首页
/ Rust 1.85.0 版本发布:异步闭包稳定化与2024版次到来

Rust 1.85.0 版本发布:异步闭包稳定化与2024版次到来

2025-05-31 08:03:16作者:曹令琨Iris

Rust是一种系统编程语言,以其内存安全、并发性和高性能著称。它通过所有权系统和借用检查器等创新特性,在保证安全性的同时不牺牲性能。Rust语言每六周发布一个新版本,持续改进语言特性和工具链。

语言特性更新

Rust 1.85.0版本带来了多项重要的语言特性改进。最引人注目的是2024版次(edition)的稳定化,这是继2015、2018和2021之后的第四个版次。新版次引入了一系列语法改进和特性增强,使代码更加简洁和安全。

异步闭包功能在此版本中正式稳定。异步闭包允许开发者像编写普通闭包一样编写异步代码块,语法更加直观。这项特性基于RFC 3668实现,为异步编程提供了更优雅的语法支持。

诊断系统新增了#[diagnostic::do_not_recommend]属性,编译器开发者可以使用它来标记某些不建议的解决方案。此外,新版本还增加了对函数指针比较的警告,以及组合使用#[no_mangle]#[export_name]属性时的lint检查。

编译器改进

编译器方面,移除了不稳定的-Zpolymorphize标志。这个标志原本用于实验性的多态化优化,现在已被更成熟的优化策略取代。这一变化反映了Rust编译器持续优化的进程。

平台支持增强

平台支持方面,powerpc64le-unknown-linux-musl目标平台被提升为第二级支持,并包含主机工具。这意味着该平台将获得更完善的支持和更频繁的测试,适合生产环境使用。

标准库更新

标准库有多项值得注意的改进。panic信息现在会显示包含library/前缀的路径,使错误来源更加清晰。std::env::home_dir()在Windows平台上的行为有所调整,现在会忽略非标准的$HOME环境变量,以提供更一致的行为。

异步编程相关的AsyncFn*特性被添加到所有版次的预导入模块中,简化了异步代码的编写。标准库还新增了多个实用的API,如浮点数和整数的中点计算方法、任务调度相关的Waker::noop等。

稳定化的API

此版本稳定了大量API,包括内存布局计算、哈希表构建、浮点数操作等实用功能。特别值得注意的是,许多原本只能在运行时使用的API现在可以在常量上下文中使用,如mem::size_of_valmem::swap等,这为编译期计算提供了更多可能性。

Cargo工具改进

Cargo构建工具也获得了多项增强。新增了对配置中使用关键字的未来不兼容警告,并支持原始标识符(raw-idents)。尾随标志的优先级处理更加合理,构建脚本现在可以访问CARGO_CFG_FEATURE环境变量,为条件编译提供了更多信息。

文档系统优化

Rust文档生成工具rustdoc现在会在impl块折叠时显示第一行文档注释,即使impl块被折叠也能快速了解其用途,提高了文档的可读性。

兼容性注意事项

开发者需要注意几个兼容性变化。test配置不再被编译器视为已知配置,而是需要显式声明。std::env::home_dir()在Windows上的行为变化可能会影响依赖特定行为的代码。此外,core::ffi::c_char的类型定义在一些嵌入式平台上有所调整,以更好地匹配C语言的char类型。

Solaris平台的最低支持版本提高到11.4,而AIX平台的默认代码模型改为large。这些变化可能会影响特定平台上的代码生成和行为。

内部优化

虽然不影响公开接口,但Rust编译器内部进行了多项性能优化。x86_64 Linux目标平台现在使用LTO(链接时优化)构建C/C++代码(如jemalloc),这可以带来更好的运行时性能。

Rust 1.85.0版本在语言特性、工具链和平台支持等方面都有显著进步,特别是异步闭包的稳定化和2024版次的引入,为开发者提供了更强大的工具和更优雅的语法。这些改进继续巩固Rust作为现代系统编程语言的地位,平衡了性能、安全性和开发体验。

登录后查看全文
热门项目推荐
相关项目推荐