Rust 1.62.0 稳定版发布


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

cargo add

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

例如:

cargo add log
cargo add serde --features derive
cargo add [email protected]

有关更多信息,可参阅 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-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 句

2022-09-23

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

2022-09-22

9月15日,开源操作系统社区OpenCloudOS宣布发布第二个社区稳定版 OpenCloudOS 8.6。 OpenCloudOS 8.6 版本采用了更加灵活的图形安装方式,支持业务场景的自定义分区、文件系统选择,支持多种国际语言的选择,支持多种不同场景软

2022-07-29

为 GCC 13 的一部分而亮相,GCC 13 将于 2023 年 4 月左右发布稳定版,其对 Rust 语言的支持有希望达到 beta 级别。

2022-04-02

19 Rust 19 Dart 和往常一样,本季度的排名变化不大,具有稳定性。RedMonk 方面指出,除了要讨论的几个明显的例外情况外,近年来语言运动的规律就是几乎没有运动。事实上,这里的 20 种语言中,有 17 种已经连续三个季度保持

2022-05-21

择。”  其他编程语言方面: Java 继续强劲而稳定的增长。自 2021 年初以来,已有近 500 万开发人员加入了 Java 社区。 PHP 在过去六个月中增长最少,在 2021 年第三季度至 2022 年第一季度之间净新增开发人员 60 万

2022-03-18

包括: 工具链和 alloc 已经升级到了 Rust 1.59.0。这个版本稳定了 feature(global_asm) 以及 Csymbol-mangling-version=v0 flag。 添加了对用 Rust 编写的主机程序的支持。 现在,目标规范文件是根据内核配置,通过 Rust 脚本即时生成的,而不是

2022-09-18

做所有主要的事情。 他指出,真正的工作狂是内核的稳定维护者 Greg Kroah-Hartmann。“我不知道他是怎么做到的。我觉得他很大程度上已经自动化了,但这是无止境的,而且他每周都在这样做”。 正如 Linus 曾说过的那样

2022-09-07

现在都隐藏在 experimental-api 功能的后面,以标明它们是不稳定的和不支持的。 default_config_file 函数已被替换为 default_config_files,因为现在有一个默认目录和一个默认文件使用了上述名称 低级 crate 中的重大变化 在 NetDirProvi

2022-09-20

标准库变得越来越庞大和混乱。但也有二阶效应:必须对稳定性采取极其保守的态度,除了“stable forever”和“仅在 nightly 可用且完全可能发生变化”之外,API 没有其他可能的状态。 相关地,标准库是一个 all or nothing deal(技

2022-08-24

态链接、固定依赖和依赖捆绑,但收效甚微,因为 Go 和 Rust 这些编程语言完全依赖于静态链接,而这些语言的生态仍在不断发展壮大。这导致发行版每纳入一个新的 GO/Rust 软件,就需要对它自身以及爆炸性的依赖树逐一盘查许

2022-08-03

KDE Plasma 作为桌面环境。Q4OS 提供了简单的附件,并提供稳定的应用程序编程接口以支持复杂的第三方应用软件,例如谷歌 Chrome、VirtualBox 以及其他开发工具等。该系统对于虚拟云环境而言很有用,这得益于其甚低的硬件要求。

2022-08-01

序的兼容层),而且没有任何软件包管理器。 4MLinux 40.0 稳定版发布,更新内容如下: 新功能: 带有 MEncoder 的传统 MPlayer 现在可以开箱即用(HyperVC 可以用作 MEncoder 的 GUI 进行转码) 许多系统范围内的修改已经完成,以