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) 此项特

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

2022-11-04

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

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

2024-02-23

何环境中运行的现代开源高性能 RPC 框架。gRPC 1.62.0 现已发布,包含了一些完善、改进和错误修复;具体更新内容如下: Core [metadata] 允许非应用程序/grpc 内容类型值。( #35824 ) [BoringSSL] 更新 third_party/boringssl-with-bazel

2024-01-07

情很有可能会发生。   二、Linux 6.12 将是下一个长期稳定版内核,预计 2024 年 12 月 1 日发布(除非 Linus 拒绝在美国感恩节假期后立即发布,这种情况下将在一周后推出)。   三、首批用户可见的 Rust 代码最早可能在 Li

2023-12-30

Rust 1.75.0 稳定版已正式发布,主要带来以下变化: traits 中的async fn 和 return-position impl Trait Rust 1.75 支持在 Trait 中使用async fn和-> impl Trait。但是,此初始版本存在公告帖子中描述的一些限制。 预计这些限制将在未来

2023-03-11

1.68.0 稳定版中有什么: Cargo 的稀疏协议 Cargo 的“稀疏”注册协议已经稳定,可以读取 crates 的索引,以及用于在 crates.io 注册中心发布的的基础设施。 之前的 git 协议(现在仍然是默认协议)是克隆一个存储库,该存储库会