通告: Rust 1.75.0

原文链接

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

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

sql 复制代码
rustup update stable

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

如果你想帮助我们测试未来的版本,你可能会考虑本地更新到beta频道(rustup default beta)或夜间频道(rustup default nightly)。请报告你可能遇到的任何bug!

1.75.0稳定版中的内容:

async fn和trait中的返回位置impl Trait

如上周宣布的,Rust 1.75支持在trait中使用async fn-> impl Trait。然而,这个初始版本带有一些在公告帖子中描述的限制。

预计这些限制将在未来的版本中被取消。

指针字节偏移API

原始指针(*const T*mut T)主要支持以T为单位的操作。例如,<*const T>::add(1)会将指针的地址增加size_of::<T>()字节。在某些情况下,使用字节偏移更为方便,这些新API避免了调用者首先需要转换为*const u8/*mut u8

  • pointer::byte_add
  • pointer::byte_offset
  • pointer::byte_offset_from
  • pointer::byte_sub
  • pointer::wrapping_byte_add
  • pointer::wrapping_byte_offset
  • pointer::wrapping_byte_sub

Rustc的代码布局优化

Rust编译器继续变得更快,这个版本包括将BOLT应用于我们的二进制版本发布,为我们的基准测试带来了2%的平均墙钟时间改进。这个工具优化了包含大部分rustc代码的librustc_driver.so库的布局,允许更好的缓存利用。

我们现在还使用-Ccodegen-units=1构建rustc,这为LLVM提供了更多的优化机会。这项优化为我们的基准测试带来了另外1.5%的平均墙钟时间提升。

在这个版本中,这些优化限于x86_64-unknown-linux-gnu编译器,但我们期望随着时间的推移将其扩展到更多平台。

稳定化的API

  • Atomic*::from_ptr
  • FileTimes
  • FileTimesExt
  • File::set_modified
  • File::set_times
  • IpAddr::to_canonical
  • Ipv6Addr::to_canonical
  • Option::as_slice
  • Option::as_mut_slice
  • pointer::byte_add
  • pointer::byte_offset
  • pointer::byte_offset_from
  • pointer::byte_sub
  • pointer::wrapping_byte_add
  • pointer::wrapping_byte_offset
  • pointer::wrapping_byte_sub

以下API现在在const上下文中稳定:

  • Ipv6Addr::to_ipv4_mapped
  • MaybeUninit::assume_init_read
  • MaybeUninit::zeroed
  • mem::discriminant
  • mem::zeroed

其他变化

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

对1.75.0的贡献者

很多人共同参与了Rust 1.75.0的创建。没有你们所有人的帮助,我们无法完成它。谢谢!

相关推荐
SomeB1oody9 小时前
【RustyML入门】4.2. 标准化与归一化
开发语言·后端·机器学习·rust·教程
leoZ23117 小时前
Vue3 还原一个企业级后台-14-项目总结
开发语言·人工智能·后端·opencv·计算机视觉·数据挖掘·rust
特立独行的猫a18 小时前
Tauri v2的Rust应用 → HarmonyOS(鸿蒙 PC)移植30分钟速成指南
开发语言·rust·harmonyos·tauri·移植·鸿蒙pc
程序员爱钓鱼19 小时前
Rust 方法 Method详解:self、方法调用与API设计
后端·面试·rust
Patrick_Wilson1 天前
sccache 用在 Rust 上为什么常「不省编译」:原理、限制与 Windows 接入
ci/cd·rust·编译器
k4m7v2pz2 天前
rvs 26.8.43 → 26.8.53 更新概览:MCP 落地、审计增强与谬误澄清
rust·repl·mcp server·rust-verb-shell·rvs·shell 工具
程序员爱钓鱼2 天前
Rust impl详解:为Struct定义方法与关联函数
前端·后端·rust
k4m7v2pz2 天前
Rust 程序在 ReactOS 上“加载即崩“:从崩溃地址 0x6107104d 到 CRT 依赖的深度排查
rust·交叉编译·逆向工程·reactos·pe格式·windows兼容
Thneonl2 天前
一个人从 Rust 内核做到 React 前端:我做了一个云原生 SRE 巡检图谱桌面工具
rust
程序员爱钓鱼2 天前
Rust Struct结构体详解:定义自己的复杂数据类型
后端·面试·rust