Rust 1.62.0 稳定版发布

来源: OSCHINA
2022-07-02 07:03:00

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

更多详情可查看官方公告

 

展开阅读全文
点击加入讨论🔥(14) 发布并加入讨论🔥
本篇精彩评论
rust的开发环境难?你开玩笑呢。 我目前用过的语言开发环境最简单就是rust。 一句命令就安装了, 装个idea+rust的插件就可以了。 希望你不是水军
2022-07-09 14:43
1
举报
错误处理。 可能依赖了anyhow, 或者别的
2022-07-06 19:33
1
举报
看他这么火,我试着学习了一下,被搭建开发环境劝退了。。。友好度-100。。
2022-07-06 14:22
1
举报
14 评论
4 收藏
分享
返回顶部
顶部