2021 年路线图规划

2020 年 9 月 3 日 · Rust 核心团队

核心团队开始考虑 2021 年的路线图,我们希望听到社区的声音。在接下来的几周里,我们将并行开展两项工作:2020 年 Rust 调查(下周公布)和征集博客文章。

博客文章可以包含任何与 Rust 相关的内容:语言特性、工具改进、组织变更、生态系统需求 —— 一切都在范围内。我们鼓励您尝试识别您的建议所适合的主题或广泛领域,因为这些有助于指导整个项目。

帮助我们理解您看待 Rust 的角度的一种方法是给出一种或多种形式为“作为 X,我希望 Rust 执行 Y,因为 Z”的陈述。 这些陈述可以提供您在文章中提出的项目的动机。 一些例子可能是:

  • “作为一名日常 Rust 开发人员,我希望 Rust 改进库的使用体验,以便我可以更轻松地利用生态系统”
  • “作为一名希望发展这一领域的嵌入式开发人员,我希望 Rust 使端到端嵌入式开发更容易,以便新手可以更轻松地入门”

今年,为了确保我们不会遗漏任何内容,当您撰写文章时,请将其提交到 此 Google 表单! 我们也会尝试查看未通过此表单提交的文章,但在此处提交的文章不会被遗漏。任何平台(从博客到 GitHub gist)都可以! 我们计划在 10 月 5 日关闭表单。

为了给您提供来年的一些背景信息,我们为 2020 年制定了这些高层次目标,并且我们想回顾一下今年上半年的情况。 我们已经取得了一些卓越的进展!

  • 为可能的 Rust 2021 版本做准备
  • 贯彻进行中的设计和工作
  • 改进项目运作和治理

为可能的 Rust 2021 版本做准备

现在有一个 开放的 RFC 提出 2021 年版本的计划!已经有很多讨论,但我们希望在未来 6 周内将其合并。该计划是新版本的范围比 Rust 2018 小得多。预计它将包含一些小的调整以提高语言的可用性,以及推广各种版本惯用 lints (例如要求 dyn Trait 而不是 Trait ),以便它们“默认拒绝”。我们相信我们正在按计划在 2021 年推出一个版本。

贯彻进行中的设计和工作

我们 2020 年的目标之一是将“进行中”的设计工作推向完成。我们已经看到了很多这方面的努力。

  • 内联汇编 RFC 已 合并,并且新的实现已准备好进行实验
  • 过程宏在大多数位置上已稳定,截至 Rust 1.45
  • 有一个关于 const generics 的 MVP 的提案,我们希望在 2020 年发布
  • async 基础小组预计很快会发布关于 Stream trait 的 RFC
  • FFI unwind 项目小组正在解决一个长期存在的健全性漏洞,并且 第一个 RFC 已被合并
  • 安全的 transmute 项目小组已经提出了一个 RFC 草案
  • traits 工作组正在改进 Chalk,准备 rustc 集成,并在 rust-analyzer 中进行实验性使用。您可以在 他们的 博客 文章 中了解更多信息。
  • 我们正在过渡到使用 rust-analyzer 作为官方的 Rust IDE 解决方案,并且 合并的 RFC 列出了该计划
  • Rust 的层级系统正在通过 进行中的 RFC 中设置的保证和期望来实现形式化
  • 编译器性能工作仍在继续,在我们的许多基准测试中获得了 10-30% 的提升
  • 读取未初始化的缓冲区有一个开放的 RFC,解决了 Rust 中 I/O 的另一个长期存在的问题
  • 关于 std 中可移植 SIMD 的项目组提案有一个开放的 RFC
  • 关于错误处理人体工程学的项目组提案,重点关注 std::error API,有一个开放的 RFC
  • std::sync 模块更新正在进行头脑风暴阶段
  • Rustdoc 对文档内链接的支持 接近稳定!

在 Rust 团队内部也进行了许多其他工作,但这些项目突出了一些 Rust 团队正在积极处理的问题和设计。

改进项目运作和治理

另一个目标是记录并改进我们运行项目的流程。我们有三个主要子目标。

提高对倡议和设计工作状态的可见性

Rust 团队正在转向使用 项目组 进行探索性工作,旨在创建专门的小组,可以探索一个领域,提出设计并将其完成。语言团队已经启动了 safe transmuteFFI unwind内联汇编 项目组。所有这些都取得了巨大的成功!其他团队也在考虑使用这种模式。

编译器团队已经开始发布 每周性能分类报告,以继续努力减少编译时间。 LLVM 工作组还在帮助突出 LLVM 本身 中的性能回归,以减少更新 LLVM 时的编译时间性能回归。

编译器团队 引入了 主要变更提案,作为引入对实现的较大更改的一种方式,在开始实现工作之前提出设计问题。语言团队 也在尝试使用 类似流程,以获得对提案的快速语言团队反馈,并有可能组建项目组。这些都提供了正在提出的更改的高级视图,让感兴趣的各方可以关注,而无需订阅我们非常繁忙的存储库。

增加指导、领导和组织带宽

  • 语言团队已经确定了贡献者成为团队成员的途径,包括参与和领导项目组工作。有关更多详细信息,请参见 他们的帖子
  • 治理工作组一直在将现有流程正式化为 RFC,例如 项目组 RFC访问策略 RFC 等。
  • 在治理工作组的帮助下,库团队正在率先起草团队的正式 章程

使设计讨论更有效率且不那么令人疲惫

这里的主要工作是项目组,到目前为止,项目组基本上是成功的。我们希望将来在这里做更多事情。