Rust团队发布Rust新版本1.75,这个版本其中一个重要更新是在特征(Traits)中支持使用async fn与- impl Trait,不过,这项更新目前仍是初始版本,还存在一些限制。另外,开发团队也持续更新编译器,强化应用程序的性能。

Rust异步工作组持续朝向在特征中支持async fn的目标前进,而在Rust 1.75有了重大进展,包括在特征中支持- impl Trait表示法以及async fn。特征在Rust中是一个核心语言功能,主要用于定义和共享行为,其功能类似其他语言的接口,但具有更多的功能和灵活性。

允许在特征中使用异步函数async fn的意义,代表着改善异步程序代码的组织和可读性,过去开发者要在特征中定义异步函数,需要采用间接迂回的方法,这通常导致程序代码过于冗长和复杂,而通过在特征中支持async fn,开发者可以直接定义异步函数,使程序代码更加直觉易于理解和维护。

此外,通过使用回传位置的impl Trait,开发者可以在特征中定义回传特定特征类型的方法,这不仅提升了泛型程序设计的灵活性,还使得程序设计更具抽象性,有助于开发者编写更加模块化的程序代码,简化异步操作管理。

简单来说,Rust在特征中支持async fn和回传位置的- impl Trait,主要目的是要提高异步函数的支持,增加泛型程序设计的灵活性,解决之前直接在特征定义中直接使用async fn,所出现的限制和警告问题。

这些改进让开发者可以更有效地使用多线程和工作窃取执行器(Work-Stealing Executor),而Rust计划未来还要进一步扩展其多态性和灵活性,通过提供工具支持动态分派(Dynamic Dispatch)。

Rust编译器也在Rust 1.75获得性能改进,首先,开发团队在二进制发布版本应用BOLT工具,使得基准测试平均执行时间改善2%,官方提到,BOLT工具优化大部分包含rustc程序代码的librustc_driver.so函数库布局,能够改善缓存利用效率。此外,开发团队还使用-Ccodegen-units=1编译器选项编译rustc,进一步分析和优化编译器程序代码,使得rustc平均执行时间改善1.5%,让编译器得以编译程序可以更快速。