我们很高兴地宣布 Rust 1.0 后的第一个发布周期完成:今天我们发布了 Rust 1.1 稳定版,以及 1.2 beta 版。
继续阅读以了解发布的详细信息,以及 Rust 社区中一些令人兴奋的新发展。
1.1 稳定版中的内容
Rust 1.0 之后,Rust 的最高优先事项之一是改进编译时间。由于众多贡献者的辛勤工作,Rust 1.1 稳定版在编译时间方面比 Rust 1.0 提高了 32%(通过引导测量)。
另一个主要重点是改进整个编译器的错误消息。再次感谢众多贡献者,现在编译器错误的大部分都包含扩展的解释,可以使用 --explain
标志访问。
除了这些改进之外,1.1 版本还包括一些重要的新功能
- 新的
std::fs
API。此版本稳定了对文件系统 API 的大量扩展,例如,可以使 Cargo 在稳定的 Rust 上编译。 - musl 支持。现在可以在 Linux 上针对musl。以这种方式构建的二进制文件是静态链接的,并且没有依赖项。夜间构建正在进行中。
cargo rustc
。现在可以构建 Cargo 包,同时将任意标志传递给最终的rustc
调用。
更多详细信息可以在发布说明中找到。
1.2 Beta 版中的内容
性能改进并没有随着 1.1 稳定版的发布而停止。基准测试编译显示从 1.1 稳定版到 1.2 beta 版额外提高了 30%;Cargo 的主 crate 编译速度提高了 18%。
此外,并行代码生成再次生效,并且可以大幅加快调试模式下的大型构建;它在 4 核机器上引导时获得了另外 33% 的提速。它目前尚未默认启用,但将在不久的将来启用。
Cargo 也进行了一些性能改进,包括大型“无操作”构建的 10 倍提速(从 Servo 的 5 秒到 0.5 秒),以及跨多个包缓存依赖项的共享目标目录。
除了所有这些之外,1.2 beta 版还包括我们对 MSVC(Microsoft Visual C)的首次支持:编译器能够引导,并且我们有针对该平台的初步夜间构建。这对我们的 Windows 支持来说是一个巨大的进步,使 Rust 代码与使用本机工具链构建的代码链接变得更加容易。展开尚未可用——代码在恐慌时会中止——但实现本身已经完成,并且所有 rust-lang crate 现在都在 MSVC 上作为一级平台进行测试。
Rust 1.2 稳定版将在六周后发布,同时发布 1.3 beta 版。
社区新闻
除了上述技术工作之外,Rust 社区中还有一些令人兴奋的消息。
在过去几周中,我们组建了一个新的子团队,专门致力于支持 Rust 社区。该团队将承担许多责任,包括汇总聚会和其他活动的资源,通过在推广、政策和意识提升方面的领导作用来支持社区的多样性,以及与我们的早期生产用户和核心团队合作,帮助指导优先级排序。
此外,我们很快将举办第一个官方 Rust 大会:RustCamp,将于 2015 年 8 月 1 日在美国加州伯克利举行。我们收到了许多优秀的演讲提交,并期待着精彩的节目。
1.1 的贡献者
与每次发布一样,1.1 稳定版是来自一个令人惊叹且活跃的社区的工作成果。感谢 168 位对本次发布做出贡献的人
- Aaron Gallagher
- Aaron Turon
- Abhishek Chanda
- Adolfo Ochagavía
- Alex Burka
- Alex Crichton
- Alexander Polakov
- Alexis Beingessner
- Andreas Tolfsen
- Andrei Oprea
- Andrew Paseltiner
- Andrew Straw
- Andrzej Janik
- Aram Visser
- Ariel Ben-Yehuda
- Avdi Grimm
- Barosl Lee
- Ben Gesoff
- Björn Steinbrink
- Brad King
- Brendan Graetz
- Brian Anderson
- Brian Campbell
- Carol Nichols
- Chris Morgan
- Chris Wong
- Clark Gaebel
- Cole Reynolds
- Colin Walters
- Conrad Kleinespel
- Corey Farwell
- David Reid
- Diggory Hardy
- Dominic van Berkel
- Don Petersen
- Eduard Burtescu
- Eli Friedman
- Erick Tryzelaar
- Felix S. Klock II
- Florian Hahn
- Florian Hartwig
- Franziska Hinkelmann
- FuGangqiang
- Garming Sam
- Geoffrey Thomas
- Geoffry Song
- Graydon Hoare
- Guillaume Gomez
- Hech
- Heejong Ahn
- Hika Hibariya
- Huon Wilson
- Isaac Ge
- J Bailey
- Jake Goulding
- James Perry
- Jan Andersson
- Jan Bujak
- Jan-Erik Rediger
- Jannis Redmann
- Jason Yeo
- Johann
- Johann Hofmann
- Johannes Oertel
- John Gallagher
- John Van Enk
- Jordan Humphreys
- Joseph Crail
- Kang Seonghoon
- Kelvin Ly
- Kevin Ballard
- Kevin Mehall
- Krzysztof Drewniak
- Lee Aronson
- Lee Jeffery
- Liigo Zhuang
- Luke Gallagher
- Luqman Aden
- Manish Goregaokar
- Marin Atanasov Nikolov
- Mathieu Rochette
- Mathijs van de Nes
- Matt Brubeck
- Michael Park
- Michael Rosenberg
- Michael Sproul
- Michael Wu
- Michał Czardybon
- Mike Boutin
- Mike Sampson
- Ms2ger
- Nelo Onyiah
- Nicholas
- Nicholas Mazzuca
- Nick Cameron
- Nick Hamann
- Nick Platt
- Niko Matsakis
- Oliver Schneider
- P1start
- Pascal Hertleif
- Paul Banks
- Paul Faria
- Paul Quint
- Pete Hunt
- Peter Marheine
- Philip Munksgaard
- Piotr Czarnecki
- Poga Po
- Przemysław Wesołek
- Ralph Giles
- Raphael Speyer
- Ricardo Martins
- Richo Healey
- Rob Young
- Robin Kruppe
- Robin Stocker
- Rory O’Kane
- Ruud van Asseldonk
- Ryan Prichard
- Sean Bowe
- Sean McArthur
- Sean Patrick Santos
- Shmuale Mark
- Simon Kern
- Simon Sapin
- Simonas Kazlauskas
- Sindre Johansen
- Skyler
- Steve Klabnik
- Steven Allen
- Steven Fackler
- Swaroop C H
- Sébastien Marie
- Tamir Duberstein
- Theo Belaire
- Thomas Jespersen
- Tincan
- Ting-Yu Lin
- Tobias Bucher
- Toni Cárdenas
- Tshepang Lekhonkhobe
- Ulrik Sverdrup
- Vadim Chugunov
- Valerii Hiora
- Wangshan Lu
- Wei-Ming Yang
- Wojciech Ogrodowczyk
- Xuefeng Wu
- York Xiang
- Young Wu
- bors
- critiqjo
- diwic
- gareins
- inrustwetrust
- jooert
- klutzy
- kwantam
- leunggamciu
- mdinger
- nwin
- parir
- pez
- robertfoss
- sinkuu
- tynopex
- らいどっと