-
Notifications
You must be signed in to change notification settings - Fork 293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
1.6 release announcement #77
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
--- | ||
layout: post | ||
title: "Announcing Rust 1.6" | ||
author: The Rust Core Team | ||
--- | ||
|
||
Hello 2016! We’re happy to announce the first Rust release of the year, 1.6. | ||
Rust is a systems programming language focused on safety, speed, and | ||
concurrency. | ||
|
||
As always, you can [install Rust 1.6][install] from the appropriate page on our | ||
website, and check out the [detailed release notes for 1.6][notes] on GitHub. | ||
About 1100 patches were landed in this release. | ||
|
||
[install]: http://www.rust-lang.org/install.html | ||
[notes]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-160-2016-01-21 | ||
|
||
### What's in 1.6 stable | ||
|
||
This release contains a number of small refinements, one major feature, and | ||
a change to [Crates.io](https://crates.io). | ||
|
||
#### libcore stabilization | ||
|
||
The largest new feature in 1.6 is that [`libcore`] is now stable! Rust’s standard | ||
library is two-tiered: `libcore` contains a lot of functionality, but more important | ||
is what it does _not_ contain: significant dependencies. `libcore` is completely | ||
platform agnostic, and requires only a handful of external symbols to be defined. | ||
Rust’s `libstd` builds on top of `libcore`, adding support for memory allocation, | ||
I/O, and concurrency. Applications using Rust in the embedded space, as well as | ||
those writing operating systems, often eschew `libstd`, using only `libcore`. | ||
|
||
[`libcore`]: http://doc.rust-lang.org/nightly/core/ | ||
|
||
`libcore` being stabilized is a major step towards being able to write the lowest | ||
levels of software using stable Rust. There’s still future work to be done, however, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let's be a bit more specific about this: we can say that this step is enough to build a stable library ecosystem around There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I was also thinking about the float issue, but yeah, this is still better 👍 |
||
so expect to hear more about this in future release notes. | ||
|
||
#### Library stabilizations | ||
|
||
About 30 library functions and methods are now stable in 1.6. Notable | ||
improvements include: | ||
|
||
The `drain()` family of functions on collections. These methods let you move | ||
elements out of a collection while allowing them to retain their backing | ||
memory, reducing allocation in certain situations. | ||
|
||
A number of implementations of `From` for converting between standard library | ||
types, mainly between various integral and floating-point types. | ||
|
||
Finally, `Vec::extend_from_slice()`, which was previously known as | ||
`push_all()`. This method has a significantly faster implementation than the | ||
more general `extend()`. | ||
|
||
See the detailed release notes linked above for more. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just make this a link :-) |
||
|
||
#### Crates.io disallows wildcards | ||
|
||
If you maintain a crate on [Crates.io](https://crates.io), you might have seen | ||
a warning: newly uploaded crates are no longer allowed to use a wildcard when | ||
describing their dependencies. In other words, this is not allowed: | ||
|
||
```toml | ||
[dependencies] | ||
regex = "*" | ||
``` | ||
|
||
Instead, you must actually specify a specific version or range of versions, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. A link to the docs page on this would be great. |
||
using one of the `semver` crate’s various options: `^`, `~`, or `=`. | ||
|
||
A wildcard dependency means that you work with any possible version of your | ||
dependency. This is highly unlikely to be true, and causes unnecessary breakage | ||
in the ecosystem. We’ve been advertising this change as a warning for some time; | ||
now it’s time to turn it into an error. | ||
|
||
### Contributors to 1.6 | ||
|
||
TODO |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you want to say: "... is two-tiered: there's a small core library,
libcore
, and the full standard library,libstd
, that builds on top of it`."