新年快乐!我们很高兴宣布今年的第一个 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 不再允许在描述其依赖项时使用通配符。换句话说,这将不被允许
[dependencies]
regex = "*"
相反,您必须实际指定特定版本或版本范围,使用 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