
Rust 1.6 Announcement
- Transfer
Hello in 2016! We are pleased to announce the first release of Rust this year - 1.6. Rust is a system programming language aimed at safe work with memory, speed and parallel code execution.
As always, you can install Rust 1.6 from the corresponding page on our site, as well as see a detailed list of changes for version 1.6 on Github. This release includes 1,100 patches.
This release includes a number of minor improvements, one major innovation and change to Crates.io .
The biggest innovation in 1.6 is library stabilization
Stabilization
About 30 library functions and methods are stabilized in 1.6. The most notable improvements include:
The
Several type implementations
And finally, the method
You can also look at the detailed list of changes .
If you support the container on Crates.io , you may have already noticed a warning: new containers can no longer use the template
Instead, you need to specify a particular version or range of versions , using one of the many restrictions on the version of the container
An asterisk means that you can work with any version of this dependency. Most likely this is not true, and only adds unnecessary problems with compatibility in the ecosystem. A warning about banning an asterisk as a version has been displayed for quite some time when publishing a container on Crates.io , and now it will become a real mistake.
I want to thank defuz , Revertis , D101101 and the entire Russian-speaking Rust community for their help in translating.
As always, you can install Rust 1.6 from the corresponding page on our site, as well as see a detailed list of changes for version 1.6 on Github. This release includes 1,100 patches.
What is included in the stable version 1.6
This release includes a number of minor improvements, one major innovation and change to Crates.io .
Libcore stabilization
The biggest innovation in 1.6 is library stabilization
libcore
. The Rust standard library consists of two layers: a small base library libcore
and a complete standard library libstd
, which is built on the basis of libcore
. Itself is libcore
completely platform independent and requires several external functions to be defined. The complete library is libstd
based on libcore
and adds support for memory allocation, I / O, and multithreading. When using Rust in embedded environments and when writing operating systems, they often give up libstd
and use only libcore
. Stabilization
libcore
Is an important step towards being able to write the lowest level code on a stable version of Rust. However, the work is not finished yet. Stabilization will allow the ecosystem of libraries to grow around libcore
, but its use in applications is not yet fully supported. Expect news from this area in future releases.Library stabilization
About 30 library functions and methods are stabilized in 1.6. The most notable improvements include:
The
drain()
collection feature family . These methods allow you to move items from collections, while preserving the memory in which they are located, thereby reducing the need for memory allocation in some cases. Several type implementations
From
for converting between types from the standard library, mainly between integer numbers and floating-point numbers. And finally, the method
Vec::extend_from_slice()
previously known as push_all()
. It is significantly faster than the more general method extend()
. You can also look at the detailed list of changes .
It is forbidden to use asterisks on Crates.io instead of dependency versions
If you support the container on Crates.io , you may have already noticed a warning: new containers can no longer use the template
*
as the version number in the dependencies. In other words, you can’t do this anymore:[dependencies]
regex = "*"
Instead, you need to specify a particular version or range of versions , using one of the many restrictions on the version of the container
semver
: ^
, ~
or =
. An asterisk means that you can work with any version of this dependency. Most likely this is not true, and only adds unnecessary problems with compatibility in the ecosystem. A warning about banning an asterisk as a version has been displayed for quite some time when publishing a container on Crates.io , and now it will become a real mistake.
From translator
I want to thank defuz , Revertis , D101101 and the entire Russian-speaking Rust community for their help in translating.