前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Rust日报】2021-03-26 Rust 1.51 稳定版发布!

【Rust日报】2021-03-26 Rust 1.51 稳定版发布!

作者头像
MikeLoveRust
发布2021-04-22 11:43:52
6760
发布2021-04-22 11:43:52
举报

Rust 1.51 稳定版发布

该版本主要是带来了 :

  1. Const Generics MVP :https://blog.rust-lang.org/2021/02/26/const-generics-mvp-beta.html
  2. 顺便 std::array::IntoIter 也稳定了
代码语言:javascript
复制
pub struct IntoIter<T, const N: usize> {
    data: [MaybeUninit<T>; N],
    alive: Range<usize>,
}

impl<T, const N: usize> IntoIter<T, N> {

}
  1. 新的 cargo crate 依赖管理机制。具体查看 RFC 2957。简单来说,通过设置 resolver="2" 来告诉 cargo 启用新的解析 features 方法,从而解决当前因为cargo 默认合并features带来的问题。概述:
  • 对于 dev dependencies:当包(package)作为常规依赖项和开发依赖项共享时,仅当当前构建包含开发依赖项时,才启用开发依赖项features
  • Host Dependencies :当包作为 常规依赖 和 构建依赖或proc-macro共享时,用于常规依赖的features 将独立于构建依赖或proc-macro。
  • Target Dependencies: 当包在构建图中多次出现,并且其中一个实例是特定于目标的依赖项时,仅当当前正在构建目标时,才启用特定于目标的依赖项的features。

不过这样可能会导致编译时间加长(因为可能多次编译同一个crate),更详细内容可以看 Cargo Guide 的 "Feature Resolver" 小节。

代码语言:javascript
复制
[package]
resolver = "2"
# Or if you're using a workspace
[workspace]
resolver = "2"
  1. 针对 MacOS 平台对 Debug 模式构建时间做了优化。去掉了之前通过 dsymutil 工具将debug信息收集到.dSYM目录下的方式,而使用新的方式,从而减少debuginfo的构建时间,并显着减少所使用的磁盘空间量。但还期待macOS 用户的更多构建报告。
代码语言:javascript
复制
[profile.dev]
split-debuginfo = "unpacked"

这样设置就可以启用新的行为

  1. 稳定了很多 API ,就不细说了。值得一提的是 task::Weak现在稳定了。

链接:https://blog.rust-lang.org/2021/03/25/Rust-1.51.0.html

使用 Rust Iterator 的一些技巧

作者总结了 Rust Iterator 相关的几条技巧,感觉还不错。

链接:https://robinmoussu.gitlab.io/blog/post/2021-03-25_rust_iterators_tips_and_tricks/

tinyvm - Rust 实现的 MVP 版堆栈字节码虚拟机

作者使用 Rust 实现了一个 MVP 版的基于堆栈的字节码虚拟机(VM)。这个 VM 可以运行简单的图灵完备的指令集。核心代码只有 250 行,并且有大量注释。

链接:https://github.com/mkhan45/tinyvm

--

From 日报小组 Folyd

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Rust 1.51 稳定版发布
  • 使用 Rust Iterator 的一些技巧
  • tinyvm - Rust 实现的 MVP 版堆栈字节码虚拟机
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档