你好 2016!我们很高兴宣布今年的首个 Rust 版本 1.6。Rust 是一种系统编程语言,专注于安全性、速度和并发性。
一如既往,你可以在我们网站的相应页面上安装 Rust 1.6,并在 GitHub 上查看1.6 的详细发布说明。此版本包含了大约 1100 个补丁。
1.6 稳定版有什么?
此版本包含了一些小改进、一个主要特性以及 Crates.io 的一项变更。
libcore 稳定化
1.6 中最大的新特性是libcore 现在已稳定!Rust 的标准库分为两层:一个小的核心库 libcore,以及在其基础上构建的完整标准库 libstd。libcore 完全与平台无关,只需定义少数外部符号。Rust 的 libstd 构建在 libcore 之上,增加了对内存分配、I/O 和并发的支持。在嵌入式领域使用 Rust 的应用程序,以及编写操作系统的应用程序,通常会避免使用 libstd,只使用 libcore。
libcore 的稳定化是朝着能够使用稳定 Rust 编写软件最低层级迈出的重要一步。然而,未来仍有工作要做。这将允许围绕 libcore 发展一个库生态系统,但应用程序尚未得到完全支持。请在未来的发布说明中期待更多相关内容。
库稳定化
在 1.6 中,大约 30 个库函数和方法现已稳定。显著的改进包括
集合上的 drain() 函数族。这些方法允许您将元素从集合中移出,同时保留其底层内存,从而在某些情况下减少分配。
大量的 From 实现,用于在标准库类型之间进行转换,主要是在各种整型和浮点型之间。
最后,是 Vec::extend_from_slice(),之前称为 push_all()。这个方法的实现比更通用的 extend() 要快得多。
有关更多信息,请参阅详细发布说明。
Crates.io 禁止使用通配符
如果你在 Crates.io 上维护一个 crate,你可能见过警告:新上传的 crate 不再允许在描述其依赖时使用通配符。换句话说,这是不允许的
[]
= "*"
相反,您必须使用 semver crate 的各种选项之一(^, ~, 或 =),实际指定一个特定版本或版本范围。
通配符依赖意味着您可以使用依赖的任何可能版本。这极不可能为真,并会导致生态系统中不必要的破坏。我们一直在宣传这一变更,并将其作为警告持续了一段时间;现在是时候将其变为错误了。
1.6 的贡献者
共有 132 位个人为 1.6 做出了贡献。非常感谢!
- Aaron Turon
- Adam Badawy
- Aleksey Kladov
- Alexander Bulaev
- Alex Burka
- Alex Crichton
- Alex Gaynor
- Alexis Beingessner
- Amanieu d'Antras
- Amit Saha
- Andrea Canciani
- Andrew Paseltiner
- androm3da
- angelsl
- Angus Lees
- Antti Keränen
- arcnmx
- Ariel Ben-Yehuda
- Ashkan Kiani
- Barosl Lee
- Benjamin Herr
- Ben Striegel
- Bhargav Patel
- Björn Steinbrink
- Boris Egorov
- bors
- Brian Anderson
- Bruno Tavares
- Bryce Van Dyk
- Cameron Sun
- Christopher Sumnicht
- Cole Reynolds
- corentih
- Daniel Campbell
- Daniel Keep
- Daniel Rollins
- Daniel Trebbien
- Danilo Bargen
- Devon Hollowood
- Doug Goldstein
- Dylan McKay
- ebadf
- Eli Friedman
- Eric Findlay
- Erik Davidson
- Felix S. Klock II
- Florian Hahn
- Florian Hartwig
- Gleb Kozyrev
- Guillaume Gomez
- Huon Wilson
- Igor Shuvalov
- Ivan Ivaschenko
- Ivan Kozik
- Ivan Stankovic
- Jack Fransham
- Jake Goulding
- Jake Worth
- James Miller
- Jan Likar
- Jean Maillard
- Jeffrey Seyfried
- Jethro Beekman
- John Kåre Alsaker
- John Talling
- Jonas Schievink
- Jonathan S
- Jose Narvaez
- Josh Austin
- Josh Stone
- Joshua Holmer
- JP Sugarbroad
- jrburke
- Kevin Butler
- Kevin Yeh
- Kohei Hasegawa
- Kyle Mayes
- Lee Jeffery
- Manish Goregaokar
- Marcell Pardavi
- Markus Unterwaditzer
- Martin Pool
- Marvin Löbel
- Matt Brubeck
- Matthias Bussonnier
- Matthias Kauer
- mdinger
- Michael Layzell
- Michael Neumann
- Michael Sproul
- Michael Woerister
- Mihaly Barasz
- Mika Attila
- mitaa
- Ms2ger
- Nicholas Mazzuca
- Nick Cameron
- Niko Matsakis
- Ole Krüger
- Oliver Middleton
- Oliver Schneider
- Ori Avtalion
- Paul A. Jungwirth
- Peter Atashian
- Philipp Matthias Schäfer
- pierzchalski
- Ravi Shankar
- Ricardo Martins
- Ricardo Signes
- Richard Diamond
- Rizky Luthfianto
- Ryan Scheel
- Scott Olson
- Sean Griffin
- Sebastian Hahn
- Sébastien Marie
- Seo Sanghyeon
- Simonas Kazlauskas
- Simon Sapin
- Stepan Koltsov
- Steve Klabnik
- Steven Fackler
- Tamir Duberstein
- Tobias Bucher
- Toby Scrace
- Tshepang Lekhonkhobe
- Ulrik Sverdrup
- Vadim Chugunov
- Vadim Petrochenkov
- William Throwe
- xd1le
- Xmasreturns