Auto merge of #31993 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #31965, #31969, #31973, #31978, #31984, #31987, #31992 - Failed merges:
This commit is contained in:
commit
84d8fec9b0
46
RELEASES.md
46
RELEASES.md
@ -1,16 +1,6 @@
|
||||
Version 1.7.0 (2016-03-03)
|
||||
==========================
|
||||
|
||||
Language
|
||||
--------
|
||||
|
||||
* Soundness fixes to the interactions between associated types and
|
||||
lifetimes, specified in [RFC 1214], [now generate errors][1.7sf] for
|
||||
code that violates the new rules. This is a significant change that
|
||||
is known to break existing code, so it has emitted warnings for the
|
||||
new error cases since 1.4 to give crate authors time to adapt. The
|
||||
details of what is changing are subtle; read the RFC for more.
|
||||
|
||||
Libraries
|
||||
---------
|
||||
|
||||
@ -59,6 +49,17 @@ Libraries
|
||||
* [`IntoStringError::into_cstring`]
|
||||
* [`IntoStringError::utf8_error`]
|
||||
* `Error for IntoStringError`
|
||||
* Hashing
|
||||
* [`std::hash::BuildHasher`]
|
||||
* [`BuildHasher::Hasher`]
|
||||
* [`BuildHasher::build_hasher`]
|
||||
* [`std::hash::BuildHasherDefault`]
|
||||
* [`HashMap::with_hasher`]
|
||||
* [`HashMap::with_capacity_and_hasher`]
|
||||
* [`HashSet::with_hasher`]
|
||||
* [`HashSet::with_capacity_and_hasher`]
|
||||
* [`std::collections::hash_map::RandomState`]
|
||||
* [`RandomState::new`]
|
||||
* [Validating UTF-8 is faster by a factor of between 7 and 14x for
|
||||
ASCII input][1.7utf8]. This means that creating `String`s and `str`s
|
||||
from bytes is faster.
|
||||
@ -80,9 +81,6 @@ Libraries
|
||||
Misc
|
||||
----
|
||||
|
||||
* [The `--error-format=json` flag to `rustc` causes it to emit errors
|
||||
in JSON format][1.7j]. This is an unstable flag and so also requires
|
||||
the `-Z unstable-options` flag.
|
||||
* [When running tests with `--test`, rustdoc will pass `--cfg`
|
||||
arguments to the compiler][1.7dt].
|
||||
* [The compiler is built with RPATH information by default][1.7rpa].
|
||||
@ -104,6 +102,12 @@ Cargo
|
||||
Compatibility Notes
|
||||
-------------------
|
||||
|
||||
* Soundness fixes to the interactions between associated types and
|
||||
lifetimes, specified in [RFC 1214], [now generate errors][1.7sf] for
|
||||
code that violates the new rules. This is a significant change that
|
||||
is known to break existing code, so it has emitted warnings for the
|
||||
new error cases since 1.4 to give crate authors time to adapt. The
|
||||
details of what is changing are subtle; read the RFC for more.
|
||||
* [Several bugs in the compiler's visibility calculations were
|
||||
fixed][1.7v]. Since this was found to break significant amounts of
|
||||
code, the new errors will be emitted as warnings for several release
|
||||
@ -126,7 +130,6 @@ Compatibility Notes
|
||||
[1.7dta]: https://github.com/rust-lang/rust/pull/30394
|
||||
[1.7f]: https://github.com/rust-lang/rust/pull/30672
|
||||
[1.7h]: https://github.com/rust-lang/rust/pull/30818
|
||||
[1.7j]: https://github.com/rust-lang/rust/pull/30711
|
||||
[1.7ll]: https://github.com/rust-lang/rust/pull/30663
|
||||
[1.7m]: https://github.com/rust-lang/rust/pull/30381
|
||||
[1.7p]: https://github.com/rust-lang/rust/pull/30681
|
||||
@ -137,11 +140,15 @@ Compatibility Notes
|
||||
[1.7utf8]: https://github.com/rust-lang/rust/pull/30740
|
||||
[1.7v]: https://github.com/rust-lang/rust/pull/29973
|
||||
[RFC 1214]: https://github.com/rust-lang/rfcs/blob/master/text/1214-projections-lifetimes-and-wf.md
|
||||
[`clone_from_slice`]: http://doc.rust-lang.org/nightly/std/primitive.slice.html#method.clone_from_slice
|
||||
[`sort_by_key`]: http://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_by_key
|
||||
[`BuildHasher::Hasher`]: http://doc.rust-lang.org/nightly/std/hash/trait.Hasher.html
|
||||
[`BuildHasher::build_hasher`]: http://doc.rust-lang.org/nightly/std/hash/trait.BuildHasher.html#tymethod.build_hasher
|
||||
[`CString::into_bytes_with_nul`]: http://doc.rust-lang.org/nightly/std/ffi/struct.CString.html#method.into_bytes_with_nul
|
||||
[`CString::into_bytes`]: http://doc.rust-lang.org/nightly/std/ffi/struct.CString.html#method.into_bytes
|
||||
[`CString::into_string`]: http://doc.rust-lang.org/nightly/std/ffi/struct.CString.html#method.into_string
|
||||
[`HashMap::with_capacity_and_hasher`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashMap.html#method.with_capacity_and_hasher
|
||||
[`HashMap::with_hasher`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashMap.html#method.with_hasher
|
||||
[`HashSet::with_capacity_and_hasher`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashSet.html#method.with_capacity_and_hasher
|
||||
[`HashSet::with_hasher`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashSet.html#method.with_hasher
|
||||
[`IntoStringError::into_cstring`]: http://doc.rust-lang.org/nightly/std/ffi/struct.IntoStringError.html#method.into_cstring
|
||||
[`IntoStringError::utf8_error`]: http://doc.rust-lang.org/nightly/std/ffi/struct.IntoStringError.html#method.utf8_error
|
||||
[`Ipv4Addr::is_broadcast`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv4Addr.html#method.is_broadcast
|
||||
@ -154,10 +161,12 @@ Compatibility Notes
|
||||
[`Ipv6Addr::is_multicast`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv6Addr.html#method.is_multicast
|
||||
[`Ipv6Addr::is_unspecified`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv6Addr.html#method.is_unspecified
|
||||
[`Path::strip_prefix`]: http://doc.rust-lang.org/nightly/std/path/struct.Path.html#method.strip_prefix
|
||||
[`RandomState::new`]: http://doc.rust-lang.org/nightly/std/collections/hash_map/struct.RandomState.html#method.new
|
||||
[`String::as_mut_str`]: http://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_mut_str
|
||||
[`String::as_str`]: http://doc.rust-lang.org/nightly/std/string/struct.String.html#method.as_str
|
||||
[`Vec::as_mut_slice`]: http://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_mut_slice
|
||||
[`Vec::as_slice`]: http://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.as_slice
|
||||
[`clone_from_slice`]: http://doc.rust-lang.org/nightly/std/primitive.slice.html#method.clone_from_slice
|
||||
[`ffi::IntoStringError`]: http://doc.rust-lang.org/nightly/std/ffi/struct.IntoStringError.html
|
||||
[`i32::checked_neg`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.checked_neg
|
||||
[`i32::checked_rem`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.checked_rem
|
||||
@ -173,8 +182,13 @@ Compatibility Notes
|
||||
[`i32::overflowing_sub`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_sub
|
||||
[`i32::saturating_mul`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.saturating_mul
|
||||
[`path::StripPrefixError`]: http://doc.rust-lang.org/nightly/std/path/struct.StripPrefixError.html
|
||||
[`sort_by_key`]: http://doc.rust-lang.org/nightly/std/primitive.slice.html#method.sort_by_key
|
||||
[`std::collections::hash_map::RandomState`]: http://doc.rust-lang.org/nightly/std/collections/hash_map/struct.RandomState.html
|
||||
[`std::hash::BuildHasherDefault`]: http://doc.rust-lang.org/nightly/std/hash/struct.BuildHasherDefault.html
|
||||
[`std::hash::BuildHasher`]: http://doc.rust-lang.org/nightly/std/hash/trait.BuildHasher.html
|
||||
[`u32::checked_neg`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.checked_neg
|
||||
[`u32::checked_rem`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.checked_rem
|
||||
[`u32::checked_neg`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.checked_neg
|
||||
[`u32::checked_shl`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.checked_shl
|
||||
[`u32::overflowing_add`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_add
|
||||
[`u32::overflowing_div`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_div
|
||||
|
@ -13,7 +13,7 @@
|
||||
######################################################################
|
||||
|
||||
# The version number
|
||||
CFG_RELEASE_NUM=1.8.0
|
||||
CFG_RELEASE_NUM=1.9.0
|
||||
|
||||
# An optional number to put after the label, e.g. '.2' -> '-beta.2'
|
||||
# NB Make sure it starts with a dot to conform to semver pre-release
|
||||
|
@ -211,9 +211,10 @@ fn main() {
|
||||
```
|
||||
|
||||
In other words, the mutable borrow is held through the rest of our example. What
|
||||
we want is for the mutable borrow to end _before_ we try to call `println!` and
|
||||
make an immutable borrow. In Rust, borrowing is tied to the scope that the
|
||||
borrow is valid for. And our scopes look like this:
|
||||
we want is for the mutable borrow by `y` to end so that the resource can be
|
||||
returned to the owner, `x`. `x` can then provide a mutable borrow to `println!`.
|
||||
In Rust, borrowing is tied to the scope that the borrow is valid for. And our
|
||||
scopes look like this:
|
||||
|
||||
```rust,ignore
|
||||
let mut x = 5;
|
||||
@ -378,4 +379,3 @@ statement 1 at 3:14
|
||||
|
||||
In the above example, `y` is declared before `x`, meaning that `y` lives longer
|
||||
than `x`, which is not allowed.
|
||||
|
||||
|
@ -4,7 +4,7 @@ Rust’s main draw is its powerful static guarantees about behavior. But safety
|
||||
checks are conservative by nature: there are some programs that are actually
|
||||
safe, but the compiler is not able to verify this is true. To write these kinds
|
||||
of programs, we need to tell the compiler to relax its restrictions a bit. For
|
||||
this, Rust has a keyword, `unsafe`. Code using `unsafe` has less restrictions
|
||||
this, Rust has a keyword, `unsafe`. Code using `unsafe` has fewer restrictions
|
||||
than normal code does.
|
||||
|
||||
Let’s go over the syntax, and then we’ll talk semantics. `unsafe` is used in
|
||||
|
@ -12,7 +12,7 @@
|
||||
//! up to a certain length. Eventually we should able to generalize
|
||||
//! to all lengths.
|
||||
//!
|
||||
//! *[See also the array primitive type](../primitive.array.html).*
|
||||
//! *[See also the array primitive type](../../std/primitive.array.html).*
|
||||
|
||||
#![unstable(feature = "fixed_size_array",
|
||||
reason = "traits and impls are better expressed through generic \
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 16-bit signed integer type.
|
||||
//!
|
||||
//! *[See also the `i16` primitive type](../primitive.i16.html).*
|
||||
//! *[See also the `i16` primitive type](../../std/primitive.i16.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 32-bit signed integer type.
|
||||
//!
|
||||
//! *[See also the `i32` primitive type](../primitive.i32.html).*
|
||||
//! *[See also the `i32` primitive type](../../std/primitive.i32.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 64-bit signed integer type.
|
||||
//!
|
||||
//! *[See also the `i64` primitive type](../primitive.i64.html).*
|
||||
//! *[See also the `i64` primitive type](../../std/primitive.i64.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 8-bit signed integer type.
|
||||
//!
|
||||
//! *[See also the `i8` primitive type](../primitive.i8.html).*
|
||||
//! *[See also the `i8` primitive type](../../std/primitive.i8.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The pointer-sized signed integer type.
|
||||
//!
|
||||
//! *[See also the `isize` primitive type](../primitive.isize.html).*
|
||||
//! *[See also the `isize` primitive type](../../std/primitive.isize.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 16-bit unsigned integer type.
|
||||
//!
|
||||
//! *[See also the `u16` primitive type](../primitive.u16.html).*
|
||||
//! *[See also the `u16` primitive type](../../std/primitive.u16.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 32-bit unsigned integer type.
|
||||
//!
|
||||
//! *[See also the `u32` primitive type](../primitive.u32.html).*
|
||||
//! *[See also the `u32` primitive type](../../std/primitive.u32.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 64-bit unsigned integer type.
|
||||
//!
|
||||
//! *[See also the `u64` primitive type](../primitive.u64.html).*
|
||||
//! *[See also the `u64` primitive type](../../std/primitive.u64.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The 8-bit unsigned integer type.
|
||||
//!
|
||||
//! *[See also the `u8` primitive type](../primitive.u8.html).*
|
||||
//! *[See also the `u8` primitive type](../../std/primitive.u8.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
//! The pointer-sized unsigned integer type.
|
||||
//!
|
||||
//! *[See also the `usize` primitive type](../primitive.usize.html).*
|
||||
//! *[See also the `usize` primitive type](../../std/primitive.usize.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
//! Raw, unsafe pointers, `*const T`, and `*mut T`
|
||||
//!
|
||||
//! *[See also the pointer primitive types](../primitive.pointer.html).*
|
||||
//! *[See also the pointer primitive types](../../std/primitive.pointer.html).*
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user