Rust 1.62.0 稳定版发布


Rust 1.62.0 稳定版现已发布,具体更新内容如下:

cargo add

现在可以使用cargo add直接从命令行添加新的依赖项。该命令支持指定功能和版本。它也可以用来修改现有的依赖项。

例如:

cargo add log
cargo add serde --features derive
cargo add nom@5

有关更多信息,可参阅 cargo 文件。

#[default] enum variants

如果你指定了一个默认变量,那你现在可以在枚举上使用#[derive(Default)]。例如,到目前为止,你必须手动为此枚举编写一个 Defaultimpl:

#[derive(Default)]
enum Maybe<T> {
#[default]
Nothing,

Something(T),
}

到目前为止,只有"unit" 变量(没有字段的变体)才允许被标记为#[default]。更多信息可在该特性的 RFC 中找到。

Thinner, faster mutexes on Linux

以前,MutexCondvarRwLock由 Linux 上的 pthreads 库支持。pthreads 锁支持比 Rust API 本身更多的功能,包括运行时配置,并且被设计用于比 Rust 提供的 static guarantees 更少的语言中。例如,mutex 的实现是 40 字节,不能移动。这迫使标准库在幕后为使用 pthreads 的平台的每个新的 mutex 分配一个 Box。

公告指出,Rust 的标准库现在在 Linux 上提供了这些锁的基于 futex 的原始实现,它非常轻量级并且不需要额外的分配。在 1.62.0 中,Mutex在 Linux 上的内部状态只需要 5 个字节,尽管这在未来的版本中可能会改变。

这是提高 Rust 的 lock types 效率的长期努力的一部分,其中包括以前对 Windows 的改进,例如 unboxing  primitives。可以在 tracking issue 中阅读有关该工作的更多信息。

Bare metal x86_64 targ

现在为x86_64构建无操作系统的二进制文件更加容易,例如在编写内核时。x86_64-unknown-nonetarget 已提升到 Tier 2,可以使用 rustup 安装。

rustup target add x86_64-unknown-none
rustc --target x86_64-unknown-none my_no_std_program.rs

可以在 Embedded Rust book 中阅读有关使用no_std开发的更多信息。

稳定的 API

  • bool::then_some
  • f32::total_cmp
  • f64::total_cmp
  • Stdin::lines
  • windows::CommandExt::raw_arg
  • impl<T: Default> Default for AssertUnwindSafe<T>
  • From<Rc<str>> for Rc<[u8]>
  • From<Arc<str>> for Arc<[u8]>
  • FusedIterator for EncodeWide
  • RDM intrinsics on aarch64

更多详情可查看官方公告。

 


相關推薦

2022-12-19

Rust 团队于近日发布了 Rust 1.66.0 新版本,1.66.0 稳定版中的主要更新内容如下: 对有字段的枚举进行显式判别 有整数表示的枚举现在可以使用显式判别,即使它们有字段。 #[repr(u8)] enum Foo { A(u8), B(i8), C(bool) = 42, } 以前,你

2023-07-15

Rust 1.71.0 稳定版已发布。 重要变化 C-unwindABI 正式稳定(同时包括其他-unwind后缀的 ABI 变体1):该特性对于跨 ABI 边界时,异常处理的行为更安全 调试器增加可视化属性#[debug_visualizer(natvis_file = "...")]和#[debug_visualizer(gdb_scrip

2023-04-22

 Rust 1.69.0 稳定版已发布。 1.69.0 稳定版中有什么 Cargo 建议自动修复警告 Rust 1.29.0 添加了 cargo fix 子命令来自动修复一些简单的编译器警告。从那时起,可以自动修复的警告数量继续稳步增加。此外,还增加了对自动修复一

2022-02-28

Rust 1.59.0 稳定版已正式发布,新版本最值得关注的特性是支持在代码中内联汇编 (Inline assembly),其他变化包括:引入解构式赋值、默认关闭增量编译,以及 Const 泛型参数支持设置默认值等。 内联汇编 (Inline assembly) 此项特

2024-10-09

Tauri 2.0 稳定版已正式发布。 Tauri 是一个桌面 UI 框架,可让开发者使用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和 CSS

2022-05-20

4 功能一起使用 X86 #[target_feature = "adx"] 现已到达稳定状态 Libraries ManuallyDrop<T>现在被记录为具有相同的布局T #[ignore = "…"] 运行测试时会打印信息 Consistently始终将 Windows 上缺少的 stdio 句柄显示为 NULL 句

2023-08-31

PF 到底是可观测领域的神器 or 鸡肋? sudo-rs 发布了首个稳定版:0.2.0。获取: sudo tar -C /usr/local -xvf sudo-0.2.0.tar.gz 下载地址:https://github.com/memorysafety/sudo-rs/releases/tag/v0.2.0 sudo-rs 是互联网安全研究小组 (ISRG) 发起的 Prossim

2023-02-10

历经三年多的开发,Meilisearch 1.0 首个完全稳定版已正式发布,可用于生产环境且向前兼容。 Meilisearch 是 Rust 实现的高性能开源搜索引擎,支持方便地集成到任何网站或应用程序,支持自托管 (self-hosting),可作为 Algolia 和 Elasti

2025-04-15

将弃用 i586-pc-windows-msvc 目标平台 一批 API 进入稳定 新特性 trait 向上转型:实现了 trait 对象的向上转型,若 trait 存在上级 trait,可将该 trait 对象的引用强制转换为上级 trait 对象的引用,如 Arc<dyn Trait&g

2022-11-04

Rust 1.65.0 稳定版已发布。此版本包含多项重要的语法变更,以及编辑器和标准库方面的改动。值得关注的是,Rust 1.65 现在还启用了 MIR 内联来优化编译,为 crate 提供了 3-10% 的编译时间改进。 语言特性 为枚举类型使用#[non_exh

2024-08-18

并于 2025 年 1 月 3 日发布测试版 Rust v1.85,2 月 20 日发布稳定版 Rust v1.85。 使 Async Rust 体验更接近 sync Rust。计划提供几个异步构建块功能,其中最值得注意的是对 async closures 和Send bounds 的支持。这是将 async Rust

2025-04-15

搜索 (geosearch) 支持多租户 (multi-tenancy) Meilisearch 最新稳定版 1.4 已于今天发布,此版本引入了两个重要的实验性功能:向量存储和分数详情,并包含多项性能改进和错误修复。 新功能 (实验性) 向量存储 (Vector Store):

2023-06-03

于从 crates.io 读取索引。这个功能之前已经在 Rust 1.68.0 中稳定下来,但仍然需要配置才能在 crates.io 中使用。原计划就是在 1.70.0 中默认启用该功能的,现在如期实现。 当你从 crates.io 的索引中获取信息时,你应该看到性能的大

2022-09-23

Rust 团队于今天发布了 Rust 1.64.0 新版本,1.64.0 稳定版中的主要更新内容如下: 用 IntoFuture 增强 .await Rust 1.64 稳定了 IntoFuture 特性。IntoFuture 是一个类似于 IntoIterator 的特性,但 IntoFuture 不支持 for ... in ... 循环,而是改变了 .awai