Rust官方动态

编辑: 张汉东


Rust 2021 Edition 发布计划

【官宣】Rust 2021 Edition 计划

Rust 基金会 董事成员概要介绍

从 2021.03.18 到 2021.04.22 ,Rust 基金会官网依次介绍了十位董事(目前一共11位)会成员,这里依次列出简要介绍:

Rust Foundation Board

Bobby Holley

供职于 Mozillian Firefox CTO 办公室,从事技术战略和协调工作。在 Rust 基金会担任 会员董事 (Member Director)。

Tyler Mandry

供职于 Google Fuchsia操作系统。于2020年初开始领导Rust on Fuchsia团队。为 Rust 贡献了很多, 例如 async/await 编译器优化,指导工作(如基于源代码的代码覆盖率)并领导异步基金会工作组。在 Rust 基金会担任 项目董事(Project Director),负责工程质量相关。

Mark Rousskov

在 Rust 基金会担任 项目董事(Project Director),Rust Core 团队代表。 Mark 认为 Rust 基金会的意义在于:定义Rust的价值观和目标:开发可持续,有效的模型在全球范围内进行开放式合作,在众多社区之间建立桥梁。

Nell Shamrell-Harrington

供职于 微软,Rust Async Foundations 工作组成员,现在是 Rust 基金会 会员董事(Member Director)。Nell 曾经是 Mozilla Rust团队的一员。在2020年8月裁员之后,有机会加入了 微软,成为开源计划办公室的首席软件工程师。

他说,

“微软对待开源的态度真正发生了转变。微软理解开源软件对于其作为企业的成功以及对我们客户的成功至关重要。此外,微软还了解到,为了使我们所依赖的项目获得成功,我们必须以身作则的开源公民的身份行事,并与开源社区进行有意义的互动。这包括作为Rust基金会的赞助者捐款。它还包括致力于Rust项目的工程工作,以使其不仅对Microsoft更好,而且对全世界所有Rustaceans也更好。微软很高兴有机会与社区互动并回馈社区,并期望与Rust的维护者在编译器,核心工具,文档等方面紧密合作”。

“在 Rust 基金会部分职责是代表Microsoft对Rust社区的利益,但对我来说,代表和维护Rust的维护者和社区对Microsoft的利益对我来说更为重要。理解和平衡这些需求并找到共同点并不总是容易的,但这是Rustaceans在RFC流程中每天都会做的事情。我们有很多机会相互学习,相互构建,设计以前从未考虑过的解决方案。”

Florian Gilcher

在 Rust 基金会担任 项目董事(Project Director),Rust Core 团队代表。Rust Berlin,RustFest和OxidizeConf 会议的创始人之一。曾经他还是一名活跃的 Ruby 开发者,领导开发 Padrino 框架。第一次写 Rust 代码是 2013 年。2015年以来,专业地教授 Rust 并共同维护开源培训材料。2018年,我全力以赴并共同创立了 Ferrous Systems,这家公司致力于通过传播知识,实践并改善 Rust 本身来帮助行业采用 Rust。

侯培新

供职于 华为。在 Rust 基金会中担任 会员董事(Member Director)。华为选择 Rust 语言是因为 Rust 语言默认内存安全,并且应用范围匹配 C/Cpp 领域。华为作为 ICT 基础设施供应商,性能和安全性基本上是Rust的两个基本基准,所以希望投资 Rust 语言并在产品中得到广泛使用。华为作为唯一战略赞助。

他说到:

“对于华为,我们将在社区中投资的领域包括数值计算,机器人技术,虚拟化等项目。作为迄今为止中国唯一的铂金创始成员,我们还希望与所有合作伙伴一起推广 Rust,这可能包括建立本地基础架构,例如 crates.io 和本地 CI,以实现更好的访问和可用性,将更多文档翻译成中文并推广更多活动。最后但并非最不重要的一点是,我们渴望在欧盟,北美拥有更多的Rust人才加入我们的行列。”

Jane Lusby

Jane 是 Rust 错误处理项目组的负责人,以及 Clippy 和 wg-traits 团队成员。她在 Rust 基金会中担任 项目董事(Project Director),负责项目协作。

Shane Miller

Shane 目前领导 AWS 的 Rust平台团队。大约 30年以来,她一直在创造自己独特的职业道路。她曾经是一名高中辍学生,Smalltalk首席工程师,大学数学系,零售业务所有者,政治顾问,工程经理以及 AWS 的首席技术项目经理和高级工程经理。

她在 基金会担任 会员董事 (Member Director)。

她说到:

“ 作为基金会董事会的一名董事,我设想基金会将成为一个为Rust项目维护者提供我自己的AWS团队支持的组织。当我们消除计算,存储和生产力工具的维护人员的自付费用时,我们将使Rust真正可访问。我们还可以提供对资源的访问,例如领导力和沟通培训,这些资源可以帮助Rust的维护者发展自己和团队。

我对基金会感到兴奋的是,它为我提供了一种以不同方式为我们的社区做出贡献的机制。我有大量交付大规模软件的经验。在回到工程经理职位之前,我是AWS的首席技术项目经理。我启动了涵盖组织和地区的服务。我知道将复杂性和规模相结合要取得成功是多么困难,并且我期待着帮助我们的社区简化其中的一些复杂性。

用塞思·戈德温(Seth Godwin)的话说:“我们为谋生做什么?我们要做的是尝试改变一切。 我们试图找到一种现状,即困扰我们的事情,需要改进的事情,需要改变的渴望的事情,然后我们进行更改。我们试图做出重大的永久性重要改变。”

让我们建立社区和技术,使我们所有人永存。 ”

Josh Stone

在 基金会中担任 项目董事(Project Director),负责可靠性领域。他目前是 Rust 发布团队,同时也是安全响应工作组和编译器团队贡献者的成员,重点是LLVM工作组。

他说到: “ 我希望这些角色为我做好了担任可靠性项目主管的准备。我们一直希望Rust能够“正常运行”,因此您可以自由更新到最新版本,而不必担心性能下降。我们的跟踪记录很好,但是当然并不完美,我将寻找跟踪和改进它的方法。诸如crates.io和docs.rs之类的服务也很重要,不仅在正常运行时间上而且在广泛的可访问性上也是如此。我在这种基础架构方面的经验较少,但是我绝对愿意提出建议。 ”

Lars Bergstrom

供职于 Goolge ,是 Android 平台编程语言的工程总监,他的团队目前在使用 Cpp/Java/Kotlin/Rust。在性能最敏感的代码中提高内存安全性,对Android至关重要,既要确保用户安全,又要减少紧急安全更新的次数。目前在基金会担任 会员董事(Member Director)。

在加入 Goolge 之前,一直在 Mozilla 工作(2013年开始),从事 Servo 浏览器引擎开发。

他说到:

“ 希望基金会能够帮助Rust围绕许多个人和公司正在开展的活动发展新的合作关系,从而使整个社区受益。例如,大多数公司在内部对每个 Crate 的导入/更新进行附加的安全性检查,许可证/代码验证和性能分析,但如今这些信息并未在外部共享。此外,虽然理想的是用Rust编写新项目,但对于我们大多数人来说,我们需要将Rust集成到现有系统中-许多系统都是C++,并且每个系统都使用一组独特的功能,这些功能对与Rust进行有效集成提出了挑战。跨公司合作,我们可以构建适用于整个行业的解决方案。最后,对于许多关键系统(例如设备驱动程序)来说,Rust开发人员可以访问的正式验证还可以帮助我们消除软件系统中除内存安全性之外的更多问题。 ”

Facebook 加入了 Rust 基金会

其他基金会成员一样,Facebook致力于维持和发展Rust开源生态系统和社区。

Facebook的开源生态系统负责人,现任Rust Foundation的董事会主席Joel Marcey说:“ Facebook自2016年以来就接受了Rust,并在开发的各个方面都使用了Rust,从源代码控制到编译器。” “我们正在加入Rust基金会,以帮助贡献,改进和发展这种语言,这对我们和全球开发人员都变得如此宝贵。我们期待与其他基金会成员和Rust社区一起参与,使Rust成为系统编程及其他领域的主流选择语言。”

Facebook将于2021年加强对Rust的内部开发人员支持。除了公司内各个团队编写Rust代码外,现在还有一个专门的Rust团队,主要负责公司内部Rust开发的发展,包括开源贡献。加入Rust和基于Rust的项目,并与Rust社区互动。

https://developers.facebook.com/blog/post/2021/04/29/facebook-joins-rust-foundation/

Rust 基金会新增四个银牌会员

  • zama,为数据科学和AI构建开源同态加密解决方案。 从加密库到机器学习框架,他们始终使用Rust。
  • Ferrous Systems,通过提供培训和服务来改善Rust的生态系统,并雇用Rust编译器的维护者。 它还通过为嵌入式空间提供重要的生态系统工具(例如knurling )和共维护库(例如nrf-hal)来启用Rust on Embedded。 他们目前的标志性项目是二茂铁,以在安全关键型空间中启用Rust。
  • Tag1Consulting,是一家全球技术咨询公司,是支持他们依赖的开源项目的热心倡导者。 他们依靠Rust进行一些项目,例如goose.rs,这是一个高度可扩展的负载测试工具,其灵感来自基于Python的Locust Framework。
  • CleverClound,是一个自Rust成立以来就一直存在于Rust社区中的IT自动化平台。 他们自豪地为许多Rust开源项目做出了贡献,例如nom,sozu和许多其他项目。

https://foundation.rust-lang.org/posts/2021-04-29-membership-update/

Rust 编译器(Compiler)团队 4 月份计划

2021 年 4 月 15 日, Felix Klock on 代表 Rust 编译器团队发表了博文 Rust Compiler April Steering Cycle,对于 Rust 编译器的 4 月份研讨会议,进行日程安排。

以下是原文内容:

  • 2021 年 4 月 9 日,4 月第 2 个星期五,Rust 编译器团队召开了关于编译器方向周期(steering cycle)的 4 月份计划会议。
  • 每到第 4 个星期五,Rust 编译器团队就将决定:在未来的三个星期五,如何使用预定的指导和设计会议时间。
  • 2021 年 4 月 23 日,星期五,我们将举行一次会议,讨论的主题是:为编译器贡献者提出一套指导原则。
  • 2021 年 4 月 30 日,星期五,我们将召开一次会议,讨论每周的编译器性能分类过程。

此两个会议,将在格林尼治标准时间下午 2-3 点举行,直播地址为 T-compiler/meetings zulip stream。

Niko 退出 Rust 核心团队,将专注于 Rust 语言设计

Niko Matsakis 正在逐步退出 Rust 核心团队,他将集中精力带领 Rust 语言团队。多年来,Niko Matsakis 为 Rust 项目做了大量工作。从一开始,Niko 就是核心团队的一员,并在 Rust 的治理过程中,发挥了关键作用。关于 Niko 将为专注的新焦点带来什么特性,Rust 团队都很期待!

Niko 在其博客说到:

“ 我计划将所有精力都集中在作为语言设计团队负责人和AWS Rust Platform团队技术负责人的角色上。

我希望能做更多的产品计划,例如异步愿景文档,以帮助Rust为其未来建立一致的愿景。我还希望继续研究扩展lang团队,改进RFC流程并帮助团队正常运作的方法。 ”

https://smallcultfollowing.com/babysteps/blog/2021/04/02/my-shiny-future/

Rust GAT 离稳定又进了一步

#81823 Bug 已被修复,目前阻碍 GAT 只剩下 三个 Bug 了。

https://github.com/rust-lang/rust/issues/44265

头脑风暴进行中:Async Rust 的未来熠熠生辉

Niko Matsakis 代表 Async 基金会工作组,于 2021 年 4 月 14 日发布文章 Brainstorming Async Rust’s Shiny Future

3 月 18 日,我们宣布开始为 Async Rust 构建共享的愿景文档的过程。从那时起,我们已经接收到了 24 个“现状”故事。在开启状态的 PR(open PRs)中,还有 4 个故事;在过去的几周里,Ryan Levick 和我还主持了 10 多个协作写作会议。

阅读:

rustc_codegen_cranelift 进展报告

  • 删除了对旧式Cranelift后端的支持
  • 原子操作是使用本机原子指令实现的,而不是使用全局锁来模拟的
  • 使用MinGW交叉编译到Windows
  • 在CI上运行rustc测试套件

后面的挑战:

  1. Windows对MSVC工具链的支持

Cranelift尚不支持COFF / PE目标文件的TLS。 这意味着与使用pthread密钥实现TLS的MinGW不同,当前无法为MSVC进行编译。

  1. SIMD

很多平台指令支持仍未实现。

https://bjorn3.github.io/2021/04/13/progress-report-april-2021.html

Miri 现支持运行 doctests

Miri 是一个实验性的 Rust MIR 解释器。它可以运行 Rust 二进制文件,对其进行测试,可以检查出某些未定义的行为 ref。

支持 doctests 之后,cargo miri test 执行的测试与 cargo test 执行的测试就保持一致了。

https://github.com/rust-lang/miri/pull/1757

编译器团队迎来新成员 Aaron Hill

自2017年创立以来,Aaron Hill(@ Aaron1011)一直在为编译器的许多不同部分做出贡献。最近,Aaron一直致力于发现和修复增量系统中的错误和正确性问题,清理以及对宏扩展和卫生的改进, 以及其他错误修复。 除编译器外,Aaron还实现了对Miri中展开,生成自动特征文档以及将来在Cargo中不兼容报告的支持。

https://blog.rust-lang.org/inside-rust/2021/04/26/aaron-hill-compiler-team.html

Rustup 1.24.1 发布

Rustup 1.24.0 发布之后,发现了因为代码疏漏导致cargo fmt无法使用,从而回滚到 1.23.1 。现在 1.24.1 修复了这个 Bug 。

https://blog.rust-lang.org/2021/04/29/Rustup-1.24.1.html

介绍 TurboWish

TurboWish 是编译器团队Leader Pnkfelix 及其领导的 Amazon Web Services团队 计划中的一套工具的总称,用于了解Rust程序的动态行为。 他们希望这些工具特别专注于洞察有关程序性能特征。

目标描述:

  • Profile Production Code:合并TurboWish框架的开销很低:可以将其合并到生产代码中,而不会产生过多的维护负担,也不会产生显着的性能开销。

  • Domain-specific Feedback:框架和应用程序可以为专用度量提供数据,这些度量特定于其内部体系结构。

  • Understand Hidden Costs and Connections:tokio之类的框架使编写异步代码变得容易,因为它们在抽象后隐藏了许多细节(例如Rust编译器生成的生成器代码,或tokio运行时管理的任务队列)。 TurboWish公开了那些隐藏的细节,使开发人员可以将它们与其他程序事件相关联。它还暴露了人类通常必须手工重建的联系(例如,从未来到资源再到可能产生僵局的未来链),从而使人们可以直接从Rust的所有权模型中查看对象图中资源的持有方式。

  • Framework Agnostic:Rust的许多用户都使用tokio,但并非全部。 async-std和fuschia_async是用于异步编程的其他框架。 TurboWish可以为任何此类框架提供价值(尽管在担保时也可以提供特定于框架的功能)。对于我们的初始发行版,我们可以只专注于tokio,但是如果tokio证明是成功的,则期望与其他人集成。

  • EC2 Instance Type Agnostic:如果我们使用任何特定于OS的功能(例如dtrace探针),则无论实例类型如何,它们将在所有EC2 AL2实例上可用。 (特别是,我们不能要求访问CPU性能计数器。)

  • Part 1: http://blog.pnkfx.org/blog/2021/04/26/road-to-turbowish-part-1-goals/

  • Part 2: http://blog.pnkfx.org/blog/2021/04/27/road-to-turbowish-part-2-stories/