Rust 团队很高兴宣布 Rust 的最新版本 1.11。Rust 是一门专注于安全性、速度和并发性的系统编程语言。
像往常一样,您可以从我们网站上的相应页面安装 Rust 1.11,并在 GitHub 上查看 1.11 的详细发布说明。此版本共合并了 1109 个补丁。
1.11 稳定版有什么?
1.11 版本的大部分工作都集中在尚未稳定的编译器内部结构上。我们对 MIR 成为默认设置(https://github.com/rust-lang/rust/pull/34096)以及增量编译(https://github.com/rust-lang/rust/pull/34956)的开始等特性感到兴奋,1.11 版本为此奠定了基础。
至于面向用户的变化,在上一个版本中,我们谈到了新的 cdylib crate 类型。
现有的 dylib 动态库格式现在将仅用于编写在 Rust 项目内部使用的动态库,而 cdylibs 将用于将 Rust 代码编译为动态库以嵌入到其他语言中。在 1.10 版本中,编译器支持 cdylibs,但 Cargo 尚不支持。这种格式在 RFC 1510 中定义。
好消息是,在 Rust 1.11 中,Cargo 已支持 cdylibs!通过将以下内容添加到您的 Cargo.toml 文件中:
= ["cdylib"]
您就可以构建一个了。
在标准库中,默认的哈希函数已更改,从 SipHash 2-4 改为 SipHash 1-3。我们对此考虑了很久,可以追溯到最初决定使用 2-4 时:
我们提议将 SipHash-2-4 作为一种(强)PRF/MAC,到目前为止尚未发现任何攻击,尽管许多有能力的人试图攻破它。然而,较少的轮数可能就足够了,如果 SipHash-1-3 会对哈希表引入弱点,我会感到非常惊讶。
更多详细信息,请参阅详细发布说明。
标准库的稳定化
append方法已添加到BinaryHeap、BTreeMap和BTreeSet中。此外,split_off方法也已添加到BTreeMap和BTreeSet::split_off中。to_degrees和to_radians方法原本在libstd中的f32和f64类型上,但现在也已添加到libcore中。Iterator新增了两个方法:sum和product。Cell和RefCell都新增了get_mut方法。assert_eq!现在接受自定义错误消息,就像assert!一样。.- 主线程现在被命名为 "main",而不是 "
"(https://github.com/rust-lang/rust/pull/33803)。
更多详细信息,请参阅详细发布说明。
Cargo 新特性
- Cargo 为 Windows 控制台添加了颜色支持,您现在可以配置 stderr 和 stdout 的颜色。
- 构建脚本现在可以发出警告。.
- 如上所述,已添加对 cdylib crate 类型的支持。
- Cargo 现在会在文件不干净时阻止发布 crates。
更多详细信息,请参阅详细发布说明。
1.11 贡献者
共有 126 位个人为 1.11 做出了贡献。非常感谢你们!
- Aaklo Xu
- Aaronepower
- Aleksey Kladov
- Alexander Polyakov
- Alexander Stocko
- Alex Burka
- Alex Crichton
- Alex Ozdemir
- Alfie John
- Amanieu d'Antras
- Andrea Canciani
- Andrew Brinker
- Andrew Paseltiner
- Andrey Tonkih
- Andy Russell
- Ariel Ben-Yehuda
- bors
- Brian Anderson
- Carlo Teubner
- Carol (Nichols || Goulding)
- CensoredUsername
- cgswords
- cheercroaker
- Chris Krycho
- Chris Tomlinson
- Corey Farwell
- Cristian Oliveira
- Daan Sprenkels
- Daniel Firth
- diwic
- Eduard Burtescu
- Eduard-Mihai Burtescu
- Emilio Cobos Álvarez
- Erick Tryzelaar
- Esteban Küber
- Fabian Vogt
- Felix S. Klock II
- flo-l
- Florian Berger
- Frank McSherry
- Georg Brandl
- ggomez
- Gleb Kozyrev
- Guillaume Gomez
- Hendrik Sollich
- Horace Abenga
- Huon Wilson
- Ivan Shapovalov
- Jack O'Connor
- Jacob Clark
- Jake Goulding
- Jakob Demler
- James Alan Preiss
- James Lucas
- James Miller
- Jamey Sharp
- Jeffrey Seyfried
- Joachim Viide
- John Ericson
- Jonas Schievink
- Jonathan L
- Jonathan Price
- Jonathan Turner
- Joseph Dunne
- Josh Stone
- Jupp Müller
- Kamal Marhubi
- kennytm
- Léo Testard
- Liigo Zhuang
- Loïc Damien
- Luqman Aden
- Manish Goregaokar
- Mark Côté
- marudor
- Masood Malekghassemi
- Mathieu De Coster
- Matt Kraai
- Mátyás Mustoha
- M Farkas-Dyck
- Michael Necio
- Michael Rosenberg
- Michael Woerister
- Mike Hommey
- Mitsunori Komatsu
- Morten H. Solvang
- Ms2ger
- Nathan Moos
- Nick Cameron
- Nick Hamann
- Nikhil Shagrithaya
- Niko Matsakis
- Oliver Middleton
- Oliver Schneider
- Paul Jarrett
- Pavel Pravosud
- Peter Atashian
- Peter Landoll
- petevine
- Reeze Xia
- Scott A Carr
- Sean McArthur
- Sebastian Thiel
- Seo Sanghyeon
- Simonas Kazlauskas
- Srinivas Reddy Thatiparthy
- Stefan Schindler
- Steve Klabnik
- Steven Allen
- Steven Burns
- Tamir Bahar
- Tatsuya Kawano
- Ted Mielczarek
- Tim Neumann
- Tobias Bucher
- Tshepang Lekhonkhobe
- Ty Coghlan
- Ulrik Sverdrup
- Vadim Petrochenkov
- Vincent Esche
- Wangshan Lu
- Will Crichton
- Without Boats
- Wojciech Nawrocki
- Zack M. Davis
- 吴冉波