我们很高兴宣布 Rust 1.0 之后的第一个发布周期已完成:今天我们正在发布 Rust 1.1 稳定版,以及 1.2 beta 版。
请继续阅读以了解这些版本的详细信息,以及 Rust 社区中一些令人兴奋的新进展。
1.1 稳定版中有什么
Rust 在 1.0 版本之后最重要的优先事项之一是改进编译时间。感谢众多贡献者的辛勤工作,Rust 1.1 稳定版相对于 Rust 1.0,编译时间提高了 32% (根据自举测量)。
另一个主要重点是改进整个编译器的错误消息。再次感谢众多贡献者,现在很大一部分编译器错误都包含了使用 --explain 标志可访问的详细解释。
除了这些改进之外,1.1 版本还包含了一些重要的新特性
- 新的
std::fsAPI。此版本稳定了一大套对文件系统 API 的扩展,例如,这使得在稳定版 Rust 上编译 Cargo 成为可能。 - 支持 musl。现在可以在 Linux 上以musl为目标进行编译了。以这种方式构建的二进制文件是静态链接的,并且没有依赖项。夜间构建版本正在发布中。
cargo rustc。现在可以在构建 Cargo 包时向最终的rustc调用传递任意标志了。
更多详情可在发布说明中找到。
1.2 Beta 版中有什么
性能改进并未止步于 1.1 稳定版。基准测试编译显示,从 1.1 稳定版到 1.2 beta 版,又提高了 30%;Cargo 的主 crate 编译速度提高了 18%。
此外,并行代码生成再次可用,并且可以显著加快调试模式下大型构建的速度;在 4 核机器上进行自举时,它又带来了 33% 的速度提升。它目前并非默认启用,但在不久的将来会默认启用。
Cargo 也取得了一些性能改进,包括在大型“空操作”构建(在 Servo 上从 5 秒缩短到 0.5 秒)中提高了 10 倍的速度,以及共享目标目录,可以在多个包之间缓存依赖项。
除了所有这些之外,1.2 beta 版还首次包含了对 MSVC (Microsoft Visual C) 的支持:编译器能够自举,并且我们已经有初步的针对该平台的夜间构建版本。这对我们的 Windows 支持是一个巨大的进步,使得 Rust 代码更容易与使用本地工具链构建的代码链接。Unwinding(栈展开)尚不可用——代码在 panic 时会中止——但除此之外,实现已经完成,并且所有 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
- らいどっと