|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Announcing Rust 1.6" |
| 4 | +author: The Rust Core Team |
| 5 | +--- |
| 6 | + |
| 7 | +Hello 2016! We’re happy to announce the first Rust release of the year, 1.6. |
| 8 | +Rust is a systems programming language focused on safety, speed, and |
| 9 | +concurrency. |
| 10 | + |
| 11 | +As always, you can [install Rust 1.6][install] from the appropriate page on our |
| 12 | +website, and check out the [detailed release notes for 1.6][notes] on GitHub. |
| 13 | +About 1100 patches were landed in this release. |
| 14 | + |
| 15 | +[install]: http://www.rust-lang.org/install.html |
| 16 | +[notes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-160-2016-01-21 |
| 17 | + |
| 18 | +### What's in 1.6 stable |
| 19 | + |
| 20 | +This release contains a number of small refinements, one major feature, and |
| 21 | +a change to [Crates.io](https://crates.io). |
| 22 | + |
| 23 | +#### libcore stabilization |
| 24 | + |
| 25 | +The largest new feature in 1.6 is that [`libcore`] is now stable! Rust’s |
| 26 | +standard library is two-tiered: there’s a small core library, `libcore`, and |
| 27 | +the full standard library, `libstd`, that builds on top of it. `libcore` is |
| 28 | +completely platform agnostic, and requires only a handful of external symbols |
| 29 | +to be defined. Rust’s `libstd` builds on top of `libcore`, adding support for |
| 30 | +memory allocation, I/O, and concurrency. Applications using Rust in the |
| 31 | +embedded space, as well as those writing operating systems, often eschew |
| 32 | +`libstd`, using only `libcore`. |
| 33 | + |
| 34 | +[`libcore`]: http://doc.rust-lang.org/nightly/core/ |
| 35 | + |
| 36 | +`libcore` being stabilized is a major step towards being able to write the |
| 37 | +lowest levels of software using stable Rust. There’s still future work to be |
| 38 | +done, however. This will allow for a library ecosystem to develop around |
| 39 | +`libcore`, but _applications_ are not fully supported yet. Expect to hear more |
| 40 | +about this in future release notes. |
| 41 | + |
| 42 | +#### Library stabilizations |
| 43 | + |
| 44 | +About 30 library functions and methods are now stable in 1.6. Notable |
| 45 | +improvements include: |
| 46 | + |
| 47 | +The `drain()` family of functions on collections. These methods let you move |
| 48 | +elements out of a collection while allowing them to retain their backing |
| 49 | +memory, reducing allocation in certain situations. |
| 50 | + |
| 51 | +A number of implementations of `From` for converting between standard library |
| 52 | +types, mainly between various integral and floating-point types. |
| 53 | + |
| 54 | +Finally, `Vec::extend_from_slice()`, which was previously known as |
| 55 | +`push_all()`. This method has a significantly faster implementation than the |
| 56 | +more general `extend()`. |
| 57 | + |
| 58 | +See the [detailed release notes][notes] for more. |
| 59 | + |
| 60 | +#### Crates.io disallows wildcards |
| 61 | + |
| 62 | +If you maintain a crate on [Crates.io](https://crates.io), you might have seen |
| 63 | +a warning: newly uploaded crates are no longer allowed to use a wildcard when |
| 64 | +describing their dependencies. In other words, this is not allowed: |
| 65 | + |
| 66 | +```toml |
| 67 | +[dependencies] |
| 68 | +regex = "*" |
| 69 | +``` |
| 70 | + |
| 71 | +Instead, you must actually specify [a specific version or range of |
| 72 | +versions][versions], using one of the `semver` crate’s various options: `^`, |
| 73 | +`~`, or `=`. |
| 74 | + |
| 75 | +[versions]: http://doc.crates.io/crates-io.html#using-cratesio-based-crates |
| 76 | + |
| 77 | +A wildcard dependency means that you work with any possible version of your |
| 78 | +dependency. This is highly unlikely to be true, and causes unnecessary breakage |
| 79 | +in the ecosystem. We’ve been advertising this change as a warning for some time; |
| 80 | +now it’s time to turn it into an error. |
| 81 | + |
| 82 | +### Contributors to 1.6 |
| 83 | + |
| 84 | +We had 132 individuals contribute to 1.6. Thank you so much! |
| 85 | + |
| 86 | +* Aaron Turon |
| 87 | +* Adam Badawy |
| 88 | +* Aleksey Kladov |
| 89 | +* Alexander Bulaev |
| 90 | +* Alex Burka |
| 91 | +* Alex Crichton |
| 92 | +* Alex Gaynor |
| 93 | +* Alexis Beingessner |
| 94 | +* Amanieu d'Antras |
| 95 | +* Amit Saha |
| 96 | +* Andrea Canciani |
| 97 | +* Andrew Paseltiner |
| 98 | +* androm3da |
| 99 | +* angelsl |
| 100 | +* Angus Lees |
| 101 | +* Antti Keränen |
| 102 | +* arcnmx |
| 103 | +* Ariel Ben-Yehuda |
| 104 | +* Ashkan Kiani |
| 105 | +* Barosl Lee |
| 106 | +* Benjamin Herr |
| 107 | +* Ben Striegel |
| 108 | +* Bhargav Patel |
| 109 | +* Björn Steinbrink |
| 110 | +* Boris Egorov |
| 111 | +* bors |
| 112 | +* Brian Anderson |
| 113 | +* Bruno Tavares |
| 114 | +* Bryce Van Dyk |
| 115 | +* Cameron Sun |
| 116 | +* Christopher Sumnicht |
| 117 | +* Cole Reynolds |
| 118 | +* corentih |
| 119 | +* Daniel Campbell |
| 120 | +* Daniel Keep |
| 121 | +* Daniel Rollins |
| 122 | +* Daniel Trebbien |
| 123 | +* Danilo Bargen |
| 124 | +* Devon Hollowood |
| 125 | +* Doug Goldstein |
| 126 | +* Dylan McKay |
| 127 | +* ebadf |
| 128 | +* Eli Friedman |
| 129 | +* Eric Findlay |
| 130 | +* Erik Davidson |
| 131 | +* Felix S. Klock II |
| 132 | +* Florian Hahn |
| 133 | +* Florian Hartwig |
| 134 | +* Gleb Kozyrev |
| 135 | +* Guillaume Gomez |
| 136 | +* Huon Wilson |
| 137 | +* Igor Shuvalov |
| 138 | +* Ivan Ivaschenko |
| 139 | +* Ivan Kozik |
| 140 | +* Ivan Stankovic |
| 141 | +* Jack Fransham |
| 142 | +* Jake Goulding |
| 143 | +* Jake Worth |
| 144 | +* James Miller |
| 145 | +* Jan Likar |
| 146 | +* Jean Maillard |
| 147 | +* Jeffrey Seyfried |
| 148 | +* Jethro Beekman |
| 149 | +* John Kåre Alsaker |
| 150 | +* John Talling |
| 151 | +* Jonas Schievink |
| 152 | +* Jonathan S |
| 153 | +* Jose Narvaez |
| 154 | +* Josh Austin |
| 155 | +* Josh Stone |
| 156 | +* Joshua Holmer |
| 157 | +* JP Sugarbroad |
| 158 | +* jrburke |
| 159 | +* Kevin Butler |
| 160 | +* Kevin Yeh |
| 161 | +* Kohei Hasegawa |
| 162 | +* Kyle Mayes |
| 163 | +* Lee Jeffery |
| 164 | +* Manish Goregaokar |
| 165 | +* Marcell Pardavi |
| 166 | +* Markus Unterwaditzer |
| 167 | +* Martin Pool |
| 168 | +* Marvin Löbel |
| 169 | +* Matt Brubeck |
| 170 | +* Matthias Bussonnier |
| 171 | +* Matthias Kauer |
| 172 | +* mdinger |
| 173 | +* Michael Layzell |
| 174 | +* Michael Neumann |
| 175 | +* Michael Sproul |
| 176 | +* Michael Woerister |
| 177 | +* Mihaly Barasz |
| 178 | +* Mika Attila |
| 179 | +* mitaa |
| 180 | +* Ms2ger |
| 181 | +* Nicholas Mazzuca |
| 182 | +* Nick Cameron |
| 183 | +* Niko Matsakis |
| 184 | +* Ole Krüger |
| 185 | +* Oliver Middleton |
| 186 | +* Oliver Schneider |
| 187 | +* Ori Avtalion |
| 188 | +* Paul A. Jungwirth |
| 189 | +* Peter Atashian |
| 190 | +* Philipp Matthias Schäfer |
| 191 | +* pierzchalski |
| 192 | +* Ravi Shankar |
| 193 | +* Ricardo Martins |
| 194 | +* Ricardo Signes |
| 195 | +* Richard Diamond |
| 196 | +* Rizky Luthfianto |
| 197 | +* Ryan Scheel |
| 198 | +* Scott Olson |
| 199 | +* Sean Griffin |
| 200 | +* Sebastian Hahn |
| 201 | +* Sébastien Marie |
| 202 | +* Seo Sanghyeon |
| 203 | +* Simonas Kazlauskas |
| 204 | +* Simon Sapin |
| 205 | +* Stepan Koltsov |
| 206 | +* Steve Klabnik |
| 207 | +* Steven Fackler |
| 208 | +* Tamir Duberstein |
| 209 | +* Tobias Bucher |
| 210 | +* Toby Scrace |
| 211 | +* Tshepang Lekhonkhobe |
| 212 | +* Ulrik Sverdrup |
| 213 | +* Vadim Chugunov |
| 214 | +* Vadim Petrochenkov |
| 215 | +* William Throwe |
| 216 | +* xd1le |
| 217 | +* Xmasreturns |
0 commit comments