-
Notifications
You must be signed in to change notification settings - Fork 13.3k
1.7 release notes #31099
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.7 release notes #31099
Changes from all commits
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 |
---|---|---|
@@ -1,3 +1,355 @@ | ||
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 | ||
--------- | ||
|
||
* Stabilized APIs: | ||
[`Path::strip_prefix`][] (renamed from relative_from), | ||
[`path::StripPrefixError`][] (new error type returned from strip_prefix), | ||
[`Ipv4Addr::is_loopback`], | ||
[`Ipv4Addr::is_private`], | ||
[`Ipv4Addr::is_link_local`], | ||
[`Ipv4Addr::is_multicast`], | ||
[`Ipv4Addr::is_broadcast`], | ||
[`Ipv4Addr::is_documentation`], | ||
[`Ipv6Addr::is_unspecified`], | ||
[`Ipv6Addr::is_loopback`], | ||
[`Ipv6Addr::is_multicast`], | ||
[`Vec::as_slice`], | ||
[`Vec::as_mut_slice`], | ||
[`String::as_str`], | ||
[`String::as_mut_str`], | ||
`<[T]>::`[`clone_from_slice`], which now requires the two slices to | ||
be the same length | ||
`<[T]>::`[`sort_by_key`], | ||
[`i32::checked_rem`], | ||
[`i32::checked_neg`], | ||
[`i32::checked_shl`], | ||
[`i32::checked_shr`], | ||
[`i32::saturating_mul`], | ||
[`i32::overflowing_add`], | ||
[`i32::overflowing_sub`], | ||
[`i32::overflowing_mul`], | ||
[`i32::overflowing_div`], | ||
[`i32::overflowing_rem`], | ||
[`i32::overflowing_neg`], | ||
[`i32::overflowing_shl`], | ||
[`i32::overflowing_shr`], | ||
[`u32::checked_rem`], | ||
[`u32::checked_neg`], | ||
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. this is missing a url |
||
[`u32::checked_shl`], | ||
[`u32::checked_shl`], | ||
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. this should be |
||
[`u32::saturating_mul`], | ||
[`u32::overflowing_add`], | ||
[`u32::overflowing_sub`], | ||
[`u32::overflowing_mul`], | ||
[`u32::overflowing_div`], | ||
[`u32::overflowing_rem`], | ||
[`u32::overflowing_neg`], | ||
[`u32::overflowing_shl`], | ||
[`u32::overflowing_shr`], | ||
checked, saturated, and overflowing operations for other primitive types, | ||
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. missing |
||
[`ffi::IntoStringError`], | ||
[`CString::into_string`], | ||
[`CString::into_bytes`], | ||
[`CString::into_bytes_with_nul`], | ||
`From<CString> for Vec<u8>`, | ||
[`IntoStringError::into_cstring`], | ||
[`IntoStringError::utf8_error`], | ||
`Error for IntoStringError`. | ||
* [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. | ||
* [The performance of `LineWriter` (and thus `io::stdout`) was | ||
improved by using `memchr` to search for newlines][1.7m]. | ||
* [`f32::to_degrees` and `f32::to_radians` are stable][1.7f]. The | ||
`f64` variants were stabilized previously. | ||
* [`BTreeMap` was rewritten to use less memory improve performance of | ||
insertion and iteration, the latter by as much as 5x`][1.7bm]. | ||
* [`BTreeSet` and its iterators, `Iter`, `IntoIter`, and `Range` are | ||
covariant over their contained type][1.7bt]. | ||
* [`LinkedList` and its iterators, `Iter` and `IntoIter` are covariant | ||
over their contained type][1.7ll]. | ||
* [`str::replace` now accepts a `Pattern`][1.7rp], like other string | ||
searching methods. | ||
* [`Any` is implemented for unsized types][1.7a]. | ||
* [`Hash` is implemented for `Duration`][1.7h]. | ||
|
||
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.7rp]. | ||
This means that it will be possible to run `rustc` when installed in | ||
unusual configurations without configuring the dynamic linker search | ||
path explicitly. | ||
* [`rustc` passes `--enable-new-dtags` to GNU ld][1.7dt]. This makes | ||
any RPATH entries (emitted with `-C rpath`) *not* take precedence | ||
over `LD_LIBRARY_PATH`. | ||
|
||
Cargo | ||
----- | ||
|
||
* [`cargo rustc` accepts a `--profile` flag that runs `rustc` under | ||
any of the compilation profiles, 'dev', 'bench', or 'test'][1.7cp]. | ||
* [The `rerun-if-changed` build script directive no longer causes the | ||
build script to incorrectly run twice in certain scenarios][1.7rr]. | ||
|
||
Compatibility Notes | ||
------------------- | ||
|
||
* [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 | ||
cycles, under the `private_in_public` lint. | ||
* Defaulted type parameters were accidentally accepted in positions | ||
that were not intended. In this release, [defaulted type parameters | ||
appearing outside of type definitions will generate a | ||
warning][1.7d], which will become an error in future releases. | ||
* [Parsing "." as a float results in an error instead of | ||
0][1.7p]. That is, `".".parse::<f32>()` returns `Err`, not `Ok(0)`. | ||
* [Borrows of closure parameters may not outlive the closure][1.7bc]. | ||
|
||
[1.7a]: https://github.com/rust-lang/rust/pull/30928 | ||
[1.7bc]: https://github.com/rust-lang/rust/pull/30341 | ||
[1.7bm]: https://github.com/rust-lang/rust/pull/30426 | ||
[1.7bt]: https://github.com/rust-lang/rust/pull/30998 | ||
[1.7cp]: https://github.com/rust-lang/cargo/pull/2224 | ||
[1.7d]: https://github.com/rust-lang/rust/pull/30724 | ||
[1.7dt]: https://github.com/rust-lang/rust/pull/30372 | ||
[1.7dt]: 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 | ||
[1.7rp]: https://github.com/rust-lang/rust/pull/29498 | ||
[1.7rp]: https://github.com/rust-lang/rust/pull/30353 | ||
[1.7rr]: https://github.com/rust-lang/cargo/pull/2279 | ||
[1.7sf]: https://github.com/rust-lang/rust/pull/30389 | ||
[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 | ||
[`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 | ||
[`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 | ||
[`Ipv4Addr::is_documentation`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv4Addr.html#method.is_documentation | ||
[`Ipv4Addr::is_link_local`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv4Addr.html#method.is_link_local | ||
[`Ipv4Addr::is_loopback`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv4Addr.html#method.is_loopback | ||
[`Ipv4Addr::is_multicast`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv4Addr.html#method.is_multicast | ||
[`Ipv4Addr::is_private`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv4Addr.html#method.is_private | ||
[`Ipv6Addr::is_loopback`]: http://doc.rust-lang.org/nightly/std/net/struct.Ipv6Addr.html#method.is_loopback | ||
[`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 | ||
[`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 | ||
[`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 | ||
[`i32::checked_shl`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.checked_shl | ||
[`i32::checked_shr`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.checked_shr | ||
[`i32::overflowing_add`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_add | ||
[`i32::overflowing_div`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_div | ||
[`i32::overflowing_mul`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_mul | ||
[`i32::overflowing_neg`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_neg | ||
[`i32::overflowing_rem`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_rem | ||
[`i32::overflowing_shl`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_shl | ||
[`i32::overflowing_shr`]: http://doc.rust-lang.org/nightly/std/primitive.i32.html#method.overflowing_shr | ||
[`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 | ||
[`u32::checked_rem`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.checked_rem | ||
[`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 | ||
[`u32::overflowing_mul`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_mul | ||
[`u32::overflowing_neg`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_neg | ||
[`u32::overflowing_rem`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_rem | ||
[`u32::overflowing_shl`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_shl | ||
[`u32::overflowing_shr`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_shr | ||
[`u32::overflowing_sub`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.overflowing_sub | ||
[`u32::saturating_mul`]: http://doc.rust-lang.org/nightly/std/primitive.u32.html#method.saturating_mul | ||
|
||
|
||
Version 1.6.0 (2016-01-21) | ||
========================== | ||
|
||
Language | ||
-------- | ||
|
||
* The `#![no_std]` attribute causes a crate to not be linked to the | ||
standard library, but only the [core library][1.6co], as described | ||
in [RFC 1184]. The core library defines common types and traits but | ||
has no platform dependencies whatsoever, and is the basis for Rust | ||
software in environments that cannot support a full port of the | ||
standard library, such as operating systems. Most of the core | ||
library is now stable. | ||
|
||
Libraries | ||
--------- | ||
|
||
* Stabilized APIs: | ||
[`Read::read_exact`], | ||
[`ErrorKind::UnexpectedEof`][] (renamed from `UnexpectedEOF`), | ||
[`fs::DirBuilder`], [`fs::DirBuilder::new`], | ||
[`fs::DirBuilder::recursive`], [`fs::DirBuilder::create`], | ||
[`os::unix::fs::DirBuilderExt`], | ||
[`os::unix::fs::DirBuilderExt::mode`], [`vec::Drain`], | ||
[`vec::Vec::drain`], [`string::Drain`], [`string::String::drain`], | ||
[`vec_deque::Drain`], [`vec_deque::VecDeque::drain`], | ||
[`collections::hash_map::Drain`], | ||
[`collections::hash_map::HashMap::drain`], | ||
[`collections::hash_set::Drain`], | ||
[`collections::hash_set::HashSet::drain`], | ||
[`collections::binary_heap::Drain`], | ||
[`collections::binary_heap::BinaryHeap::drain`], | ||
[`Vec::extend_from_slice`][] (renamed from `push_all`), | ||
[`Mutex::get_mut`], [`Mutex::into_inner`], [`RwLock::get_mut`], | ||
[`RwLock::into_inner`], | ||
[`Iterator::min_by_key`][] (renamed from `min_by`), | ||
[`Iterator::max_by_key`][] (renamed from `max_by`). | ||
* The [core library][1.6co] is stable, as are most of its APIs. | ||
* [The `assert_eq!` macro supports arguments that don't implement | ||
`Sized`][1.6ae], such as arrays. In this way it behaves more like | ||
`assert!`. | ||
* Several timer functions that take duration in milliseconds [are | ||
deprecated in favor of those that take `Duration`][1.6ms]. These | ||
include `Condvar::wait_timeout_ms`, `thread::sleep_ms`, and | ||
`thread::park_timeout_ms`. | ||
* The algorithm by which `Vec` reserves additional elements was | ||
[tweaked to not allocate excessive space][1.6a] while still growing | ||
exponentially. | ||
* `From` conversions are [implemented from integers to floats][1.6f] | ||
in cases where the conversion is lossless. Thus they are not | ||
implemented for 32-bit ints to `f32`, nor for 64-bit ints to `f32` | ||
or `f64`. They are also not implemented for `isize` and `usize` | ||
because the implementations would be platform-specific. `From` is | ||
also implemented from `f32` to `f64`. | ||
* `From<&Path>` and `From<PathBuf>` are implemented for `Cow<Path>`. | ||
* `From<T>` is implemented for `Box<T>`, `Rc<T>` and `Arc<T>`. | ||
* `IntoIterator` is implemented for `&PathBuf` and `&Path`. | ||
* [`BinaryHeap` was refactored][1.6bh] for modest performance | ||
improvements. | ||
* Sorting slices that are already sorted [is 50% faster in some | ||
cases][1.6s]. | ||
|
||
Cargo | ||
----- | ||
|
||
* Cargo will look in `$CARGO_HOME/bin` for subcommands [by default][1.6c]. | ||
* Cargo build scripts can specify their dependencies by emitting the | ||
[`rerun-if-changed`][1.6rr] key. | ||
* crates.io will reject publication of crates with dependencies that | ||
have a wildcard version constraint. Crates with wildcard | ||
dependencies were seen to cause a variety of problems, as described | ||
in [RFC 1241]. Since 1.5 publication of such crates has emitted a | ||
warning. | ||
* `cargo clean` [accepts a `--release` flag][1.6cc] to clean the | ||
release folder. A variety of artifacts that Cargo failed to clean | ||
are now correctly deleted. | ||
|
||
Misc | ||
---- | ||
|
||
* The `unreachable_code` lint [warns when a function call's argument | ||
diverges][1.6dv]. | ||
* The parser indicates [failures that may be caused by | ||
confusingly-similar Unicode characters][1.6uc] | ||
* Certain macro errors [are reported at definition time][1.6m], not | ||
expansion. | ||
|
||
Compatibility Notes | ||
------------------- | ||
|
||
* The compiler no longer makes use of the [`RUST_PATH`][1.6rp] | ||
environment variable when locating crates. This was a pre-cargo | ||
feature for integrating with the package manager that was | ||
accidentally never removed. | ||
* [A number of bugs were fixed in the privacy checker][1.6p] that | ||
could cause previously-accepted code to break. | ||
* [Modules and unit/tuple structs may not share the same name][1.6ts]. | ||
* [Bugs in pattern matching unit structs were fixed][1.6us]. The tuple | ||
struct pattern syntax (`Foo(..)`) can no longer be used to match | ||
unit structs. This is a warning now, but will become an error in | ||
future releases. Patterns that share the same name as a const are | ||
now an error. | ||
* A bug was fixed that causes [rustc not to apply default type | ||
parameters][1.6xc] when resolving certain method implementations of | ||
traits defined in other crates. | ||
|
||
[1.6a]: https://github.com/rust-lang/rust/pull/29454 | ||
[1.6ae]: https://github.com/rust-lang/rust/pull/29770 | ||
[1.6bh]: https://github.com/rust-lang/rust/pull/29811 | ||
[1.6c]: https://github.com/rust-lang/cargo/pull/2192 | ||
[1.6cc]: https://github.com/rust-lang/cargo/pull/2131 | ||
[1.6co]: http://doc.rust-lang.org/beta/core/index.html | ||
[1.6dv]: https://github.com/rust-lang/rust/pull/30000 | ||
[1.6f]: https://github.com/rust-lang/rust/pull/29129 | ||
[1.6m]: https://github.com/rust-lang/rust/pull/29828 | ||
[1.6ms]: https://github.com/rust-lang/rust/pull/29604 | ||
[1.6p]: https://github.com/rust-lang/rust/pull/29726 | ||
[1.6rp]: https://github.com/rust-lang/rust/pull/30034 | ||
[1.6rr]: https://github.com/rust-lang/cargo/pull/2134 | ||
[1.6s]: https://github.com/rust-lang/rust/pull/29675 | ||
[1.6ts]: https://github.com/rust-lang/rust/issues/21546 | ||
[1.6uc]: https://github.com/rust-lang/rust/pull/29837 | ||
[1.6us]: https://github.com/rust-lang/rust/pull/29383 | ||
[1.6xc]: https://github.com/rust-lang/rust/issues/30123 | ||
[RFC 1184]: https://github.com/rust-lang/rfcs/blob/master/text/1184-stabilize-no_std.md | ||
[RFC 1241]: https://github.com/rust-lang/rfcs/blob/master/text/1241-no-wildcard-deps.md | ||
[`ErrorKind::UnexpectedEof`]: http://doc.rust-lang.org/nightly/std/io/enum.ErrorKind.html#variant.UnexpectedEof | ||
[`Iterator::max_by_key`]: http://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.max_by_key | ||
[`Iterator::min_by_key`]: http://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.min_by_key | ||
[`Mutex::get_mut`]: http://doc.rust-lang.org/nightly/std/sync/struct.Mutex.html#method.get_mut | ||
[`Mutex::into_inner`]: http://doc.rust-lang.org/nightly/std/sync/struct.Mutex.html#method.into_inner | ||
[`Read::read_exact`]: http://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_exact | ||
[`RwLock::get_mut`]: http://doc.rust-lang.org/nightly/std/sync/struct.RwLock.html#method.get_mut | ||
[`RwLock::into_inner`]: http://doc.rust-lang.org/nightly/std/sync/struct.RwLock.html#method.into_inner | ||
[`Vec::extend_from_slice`]: http://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html#method.extend_from_slice | ||
[`collections::binary_heap::BinaryHeap::drain`]: http://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.BinaryHeap.html#method.drain | ||
[`collections::binary_heap::Drain`]: http://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.Drain.html | ||
[`collections::hash_map::Drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_map/struct.Drain.html | ||
[`collections::hash_map::HashMap::drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_map/struct.HashMap.html#method.drain | ||
[`collections::hash_set::Drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_set/struct.Drain.html | ||
[`collections::hash_set::HashSet::drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_set/struct.HashSet.html#method.drain | ||
[`fs::DirBuilder::create`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html#method.create | ||
[`fs::DirBuilder::new`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html#method.new | ||
[`fs::DirBuilder::recursive`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html#method.recursive | ||
[`fs::DirBuilder`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html | ||
[`os::unix::fs::DirBuilderExt::mode`]: http://doc.rust-lang.org/nightly/std/os/unix/fs/trait.DirBuilderExt.html#tymethod.mode | ||
[`os::unix::fs::DirBuilderExt`]: http://doc.rust-lang.org/nightly/std/os/unix/fs/trait.DirBuilderExt.html | ||
[`string::Drain`]: http://doc.rust-lang.org/nightly/std/string/struct.Drain.html | ||
[`string::String::drain`]: http://doc.rust-lang.org/nightly/std/string/struct.String.html#method.drain | ||
[`vec::Drain`]: http://doc.rust-lang.org/nightly/std/vec/struct.Drain.html | ||
[`vec::Vec::drain`]: http://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.drain | ||
[`vec_deque::Drain`]: http://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.Drain.html | ||
[`vec_deque::VecDeque::drain`]: http://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.VecDeque.html#method.drain | ||
|
||
|
||
Version 1.5.0 (2015-12-10) | ||
========================== | ||
|
||
|
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.
Might be a good idea to make it more obvious this hasn't been released yet and that this is technically a draft?
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.
This is a good idea, but I think I won't do it. It would require patching both the beta and master branches later.