< 返回版块

Cupnfish 发表于 2024-03-21 21:21

Rust 1.77.0 版本发布

Rust 团队宣布了 Rust 编程语言的最新版本 1.77.0。这个版本虽然相对小,但包含了一系列改进,使得 Rust 语言更加强大和易用。

新特性和改进

  • C-string 字面量: Rust 现在支持 C-string 字面量(例如 c"abc"),它们会扩展为内存中以 null 字节终止的字符串,类型为 &'static CStr。这对于编写与需要 null 终止字符串的外语接口互操作的代码非常方便,所有相关的错误检查(例如,内部 null 字节的缺失)都会在编译时进行。

    let c_string: &CStr = c"Hello, world!";
    
  • 支持异步函数递归: 在 1.77 版本中,异步函数现在可以递归调用自己,只要使用某种形式的间接方式来避免函数状态的无限大小。

    async fn fib(n: u32) -> u32 {
        match n {
            0 | 1 => 1,
            _ => Box::pin(fib(n - 1)).await + Box::pin(fib(n - 2)).await,
        }
    }
    
  • 稳定化的 offset_of!: 1.77.0 版本稳定化了 offset_of! 宏,该宏提供了访问结构体字段字节偏移量的方法。这在使用类型实例之前需要字段偏移量时特别有用。

    let offset: usize = offset_of!(StructName, field);
    
  • 在非调试配置中默认启用 strip: 没有启用调试信息(例如,debug = 0)的 Cargo 配置现在默认会启用 strip = "debuginfo"

  • Clippy 新增 incompatible_msrv 检查: 为了避免开发者在编写代码时不小心使用了比声明的最小支持 Rust 版本(MSRV)更新的 API,Clippy 新增了一个 incompatible_msrv 检查。

稳定化的 API

  • array::each_refarray::each_mut
  • core::net
  • f32::round_ties_evenf64::round_ties_even
  • 一系列切片操作函数,如 slice::first_chunk, slice::last_chunk, slice::chunk_by 等。
  • Bound::map
  • File::create_new
  • Mutex::clear_poisonRwLock::clear_poison

更多详细内容: https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html

Red Hat 推进 Nova 项目,旨在替代 Nouveau 驱动

Red Hat 的显示驱动团队正在规划 Nova,这是一个用 Rust 编写的新型 Linux DRM 内核驱动程序。Nova 旨在成为 Nouveau 驱动的继任者,专为支持 GPU 系统处理器(GSP)的 NVIDIA GPU 设计,特别是 Turing 及后续系列。Nova 的开发正值 Rust 内核抽象尚未完全上游化的时期,这一挑战性的项目预计将提升性能并降低维护难度。

相关新闻链接: https://www.phoronix.com/news/Red-Hat-Nova-Rust-Abstractions

reqwest v0.12 发布,带来新特性和改进

reqwest 迎来了 v0.12 版本,这是一个为 Rust 语言打造的高级 HTTP 客户端库。此版本的主要亮点是升级到了 hyper v1,同时对一些可选功能进行了改进,如 http2charset,现在可以按需启用或禁用,从而减小编译时间和体积。尽管 HTTP/3 功能暂时被禁用,但开发团队计划尽快恢复,并探索添加其他 QUIC 后端的可能性。

相关新闻链接: https://seanmonstar.com/blog/reqwest-v012/

Rust 宏元变量表达式特性提案稳定化

Rust 语言的一个关键特性 macro_metavar_expr 的子集正在提案稳定化。这个特性包括 countignoreindexlength,它们将极大地增强宏的表达能力。稳定化这些功能将为 Rust 开发者提供更多的灵活性和强大的宏编写工具。该提案计划在 Rust 1.80 版本中实现稳定化,预计在 2024 年 6 月进入 Beta 阶段,7 月正式稳定。

相关提案链接: https://github.com/rust-lang/rust/pull/122808

Rust 周报第 539 期

本周 Rust 周报发布。

详见 This Week in Rust 539: https://this-week-in-rust.org/blog/2024/03/20/this-week-in-rust-539/


以上就是本期的主要内容。Rust 生态正在蓬勃发展,相信会带来更多惊喜。

请关注我们的更新,以便了解更多有关 Rust 的新闻和动态!

From 日报小组 Cupnfish & kimiGPT(🐮🍺)

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页