宣布Rust 1.76.0版本

原文链接

2024年2月8日 · Rust发布团队

Rust团队很高兴地宣布Rust的新版本1.76.0。Rust是一种赋予每个人构建可靠和高效软件能力的编程语言。

如果您通过rustup安装了Rust的旧版本,您可以使用以下命令获取1.76.0版本:

ruby 复制代码
$ rustup update stable

如果您还没有安装rustup,您可以从我们网站的相应页面获取,并查看1.76.0的详细发布说明。

如果您愿意通过测试未来版本来帮助我们,您可以考虑本地更新使用beta频道(rustup default beta)或夜间频道(rustup default nightly)。请报告您可能遇到的任何错误!

1.76.0稳定版中的内容 这次发布相对较小,但如同往常,即使是渐进的改进也会使整体更加完善。本文突出了一些变化,其他变化可能还会满足更多特定需求。

ABI兼容性更新 函数指针文档中新增的ABI兼容性部分描述了函数签名成为ABI兼容的含义。其中很大一部分是参数类型和返回类型的兼容性,列出了Rust当前认为兼容的类型。大多数情况下,这份文档并没有添加任何新的保证,只是描述了兼容性的现状。

唯一的新添加是现在保证char和u32是ABI兼容的。它们一直具有相同的大小和对齐方式,但现在它们甚至在函数调用ABI中被认为是等价的,与上述文档一致。

引用的类型名称 出于调试目的,自Rust 1.38以来,any::type_name::()一直可用于返回类型T的字符串描述,但这需要一个显式的类型参数。特别是对于像闭包这样的无法命名的类型或不透明的返回类型,指定这种类型并不总是容易的。新的any::type_name_of_val(&T)提供了一种从任何类型的引用获取描述性名称的方法。

rust 复制代码
fn get_iter() -> impl Iterator<Item = i32> {
    [1, 2, 3].into_iter()
}

fn main() {
    let iter = get_iter();
    let iter_name = std::any::type_name_of_val(&iter);
    let sum: i32 = iter.sum();
    println!("The sum of the `{iter_name}` is {sum}.");
}

这将打印:

c 复制代码
The sum of the `core::array::iter::IntoIter<i32, 3>` is 6.

稳定化的APIs

  • Arc::unwrap_or_clone
  • Rc::unwrap_or_clone
  • Result::inspect
  • Result::inspect_err
  • Option::inspect
  • type_name_of_val
  • std::hash::{DefaultHasher, RandomState} 这些之前只能通过std::collections::hash_map获得。
  • ptr::{from_ref, from_mut}
  • ptr::addr_eq

其他变化 查看Rust、Cargo和Clippy中发生的所有变化。

对1.76.0的贡献者 许多人共同创造了Rust 1.76.0。没有你们所有人的帮助,我们无法完成这一切。谢谢!

相关推荐
golang学习记1 小时前
rust开发,选VS Code还是RustRover?
开发语言·后端·rust
滕州市燕猫虎计算机科技工作室个体工商户2 小时前
《Rust程序设计》学习笔记二
rust·学习笔记
滕州市燕猫虎计算机科技工作室个体工商户3 小时前
《Rust程序设计》学习笔记三
rust·学习笔记·rust程序设计
geovindu3 小时前
rust: Facade Pattern
开发语言·后端·设计模式·rust·外观模式
福大大架构师每日一题3 小时前
Rust 1.99.0发布:C 可变参数、裸函数、Cargo 配置、Rustdoc 性能与大量兼容性调整全解析
c语言·开发语言·rust
DongQiShanRen4 小时前
裁决台账双向互校(下):台账哈希链、三向对账与最小落地
人工智能·深度学习·算法·目标跟踪·自然语言处理·rust·哈希算法
行者-全栈开发5 小时前
华为云码道 CodeArts 实测:让 AI 用 Rust 写一个 Git 仓库健康度体检台「仓衡」
git·rust·tauri·桌面应用·ai 编程·华为云码道·codearts 代码智能体
miofly5 小时前
GitHub 今日推荐|lightcraft:纯 Rust 重写的 RAW 照片开发工具
rust·开源·github
geovindu1 天前
rust: Abstract Factory pattern
开发语言·后端·设计模式·rust·抽象工厂模式
Hi202402171 天前
同一个 NMS 算子,两种语言实现:CUDA C 与 Rust 生成 LLVM IR 和 Vortex 汇编的差异
c语言·汇编·rust·gpgpu·vortex·cudac