Rust 1.62.0 稳定版发布

白开水不加糖
 白开水不加糖
发布于 2022年07月02日
收藏 4

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

更多详情可查看官方公告

 

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Rust 1.62.0 稳定版发布
加载中
返回顶部
顶部