Skip to content

Commit 8ed65ee

Browse files
committed
Release notes for 1.6
1 parent 4f9e6be commit 8ed65ee

File tree

1 file changed

+153
-0
lines changed

1 file changed

+153
-0
lines changed

RELEASES.md

+153
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,156 @@
1+
Version 1.6.0 (2016-01-21)
2+
==========================
3+
4+
Language
5+
--------
6+
7+
* The `#![no_std]` attribute causes a crate to not be linked to the
8+
standard library, but only the [core library][1.6co], as described
9+
in [RFC 1184]. The core library defines common types and traits but
10+
has no platform dependencies whatsoever, and is the basis for Rust
11+
software in environments that cannot support a full port of the
12+
standard library, such as operating systems. Most of the core
13+
library is now stable.
14+
15+
Libraries
16+
---------
17+
18+
* Stabilized APIs:
19+
[`Read::read_exact`], [`ErrorKind::UnexpectedEof`] (renamed from
20+
`UnexpectedEOF`), [`fs::DirBuilder`], [`fs::DirBuilder::new`],
21+
[`fs::DirBuilder::recursive`], [`fs::DirBuilder::create`],
22+
[`os::unix::fs::DirBuilderExt`],
23+
[`os::unix::fs::DirBuilderExt::mode`], [`vec::Drain`],
24+
[`vec::Vec::drain`], [`string::Drain`], [`string::String::drain`],
25+
[`vec_deque::Drain`], [`vec_deque::VecDeque::drain`],
26+
[`collections::hash_map::Drain`],
27+
[`collections::hash_map::HashMap::drain`],
28+
[`collections::hash_set::Drain`],
29+
[`collections::hash_set::HashSet::drain`],
30+
[`collections::binary_heap::Drain`],
31+
[`collections::binary_heap::BinaryHeap::drain`],
32+
[`Vec::extend_from_slice`] (renamed from `push_all`),
33+
[`Mutex::get_mut`], [`Mutex::into_inner`], [`RwLock::get_mut`],
34+
[`RwLock::into_inner`], [`Iterator::min_by_key`] (renamed from
35+
`min_by`), [`Iterator::max_by_key`] (renamed from `max_by`).
36+
* The [core library][1.6co] is stable, as are most of its APIs.
37+
* [The `assert_eq!` macro supports arguments that don't implement
38+
`Sized`][1.6ae], such as arrays. In this way it behaves more like
39+
`assert!`.
40+
* Several timer functions that take duration in milliseconds [are
41+
deprecated in favor of those that take `Duration`][1.6ms]. These
42+
include `Condvar::wait_timeout_ms`, `thread::sleep_ms`, and
43+
`thread_park_timeout_ms`.
44+
* The algorithm by which `Vec` reserves additional elements was
45+
[tweaked to not allocate excessive space][1.6a] while still growing
46+
exponentially.
47+
* `From` conversions are [implemented from integers to floats][1.6f]
48+
in cases where the conversion is lossless. Thus they are not
49+
implemented for 32-bit ints to `f32`, nor for 64-bit ints to `f32`
50+
or `f64`. They are also not implemented for `isize` and `usize`
51+
because the implementations would be platform-specific. `From` is
52+
also implemented from `f32` to `f64`.
53+
* `From<&Path>` and `From<PathBuf>` are implemented for `Cow<Path>`.
54+
* `From<T>` is implemented for `Box<T>`, `Rc<T>` and `Arc<T>`.
55+
* `IntoIterator` is implemented for `&PathBuf` and `&Path`.
56+
* [`BinaryHeap` was refactored][1.6bh] for modest performance
57+
improvements.
58+
* Sorting slices that are already sorted [is 50% faster in some
59+
cases][1.6s].
60+
61+
Cargo
62+
-----
63+
64+
* Cargo will look in `$CARGO_HOME/bin` for subcommands [by default][1.6c].
65+
* Cargo build scripts can specify their dependencies by emitting the
66+
[`rerun-if-changed`][1.6rr] key.
67+
* crates.io will reject publication of crates with dependencies that
68+
have a wildcard version constraint. Crates with wildcard
69+
dependencies were seen to cause a variety of problems, as described
70+
in [RFC 1241]. Disallowing them will create more predictable
71+
development experience and a more stable ecosystem. Since 1.5
72+
publication of such crates has emitted a warning.
73+
* `cargo clean` [accepts a `--release` flag][1.6cc] to clean the
74+
release folder. A variety of artifacts that Cargo failed to clean
75+
are now correctly deleted.
76+
77+
Misc
78+
----
79+
80+
* The `unreachable_code` lint [warns when a function call's argument
81+
diverges][1.6dv].
82+
* The parser indicates [failures that may be caused by
83+
confusingly-similar Unicode characters][1.6uc]
84+
* Certain macro errors [are reported at definition time][1.6m], not
85+
expansion.
86+
87+
Compatibility Notes
88+
-------------------
89+
90+
* The compiler no longer makes use of the [`RUST_PATH`][1.6rp]
91+
environment variable when locating crates. This was a pre-cargo
92+
feature for integrating with the package manager that was
93+
accidentally never removed.
94+
* [A number of bugs were fixed in the privacy checker][1.6p] that
95+
could cause previously-accepted code to break.
96+
* [Modules and unit/tuple structs may not share the same name][1.6ts].
97+
* [Bugs in pattern matching unit structs were fixed][1.6us]: the tuple
98+
struct pattern syntax (`Foo(..)`) no longer can be used with unit
99+
structs; patterns that share the same name as a const are now an
100+
error.
101+
* A bug was fixed that causes [rustc not to apply default type
102+
parameters][1.6xc] when resolving certain method implementations of
103+
traits defined in other crates.
104+
105+
[1.6a]: https://github.com/rust-lang/rust/pull/29454
106+
[1.6ae]: https://github.com/rust-lang/rust/pull/29770
107+
[1.6bh]: https://github.com/rust-lang/rust/pull/29811
108+
[1.6c]: https://github.com/rust-lang/cargo/pull/2192
109+
[1.6cc]: https://github.com/rust-lang/cargo/pull/2131
110+
[1.6co]: http://doc.rust-lang.org/beta/core/index.html
111+
[1.6dv]: https://github.com/rust-lang/rust/pull/30000
112+
[1.6f]: https://github.com/rust-lang/rust/pull/29129
113+
[1.6m]: https://github.com/rust-lang/rust/pull/29828
114+
[1.6ms]: https://github.com/rust-lang/rust/pull/29604
115+
[1.6p]: https://github.com/rust-lang/rust/pull/29726
116+
[1.6rp]: https://github.com/rust-lang/rust/pull/30034
117+
[1.6rr]: https://github.com/rust-lang/cargo/pull/2134
118+
[1.6s]: https://github.com/rust-lang/rust/pull/29675
119+
[1.6ts]: https://github.com/rust-lang/rust/issues/21546
120+
[1.6uc]: https://github.com/rust-lang/rust/pull/29837
121+
[1.6us]: https://github.com/rust-lang/rust/pull/29383
122+
[1.6xc]: https://github.com/rust-lang/rust/issues/30123
123+
[RFC 1184]: https://github.com/rust-lang/rfcs/blob/master/text/1184-stabilize-no_std.md
124+
[RFC 1241]: https://github.com/rust-lang/rfcs/blob/master/text/1241-no-wildcard-deps.md
125+
[`ErrorKind::UnexpectedEof`]: http://doc.rust-lang.org/nightly/std/io/enum.ErrorKind.html#variant.UnexpectedEof
126+
[`Iterator::max_by_key`]: http://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.max_by_key
127+
[`Iterator::min_by_key`]: http://doc.rust-lang.org/nightly/std/iter/trait.Iterator.html#method.min_by_key
128+
[`Mutex::get_mut`]: http://doc.rust-lang.org/nightly/std/sync/struct.Mutex.html#method.get_mut
129+
[`Mutex::into_inner`]: http://doc.rust-lang.org/nightly/std/sync/struct.Mutex.html#method.into_inner
130+
[`Read::read_exact`]: http://doc.rust-lang.org/nightly/std/io/trait.Read.html#method.read_exact
131+
[`RwLock::get_mut`]: http://doc.rust-lang.org/nightly/std/sync/struct.RwLock.html#method.get_mut
132+
[`RwLock::into_inner`]: http://doc.rust-lang.org/nightly/std/sync/struct.RwLock.html#method.into_inner
133+
[`Vec::extend_from_slice`]: http://doc.rust-lang.org/nightly/collections/vec/struct.Vec.html#method.extend_from_slice
134+
[`collections::binary_heap::BinaryHeap::drain`]: http://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.BinaryHeap.html#method.drain
135+
[`collections::binary_heap::Drain`]: http://doc.rust-lang.org/nightly/std/collections/binary_heap/struct.Drain.html
136+
[`collections::hash_map::Drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_map/struct.Drain.html
137+
[`collections::hash_map::HashMap::drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_map/struct.HashMap.html#method.drain
138+
[`collections::hash_set::Drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_set/struct.Drain.html
139+
[`collections::hash_set::HashSet::drain`]: http://doc.rust-lang.org/nightly/std/collections/hash_set/struct.HashSet.html#method.drain
140+
[`fs::DirBuilder::create`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html#method.create
141+
[`fs::DirBuilder::new`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html#method.new
142+
[`fs::DirBuilder::recursive`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html#method.recursive
143+
[`fs::DirBuilder`]: http://doc.rust-lang.org/nightly/std/fs/struct.DirBuilder.html
144+
[`os::unix::fs::DirBuilderExt::mode`]: http://doc.rust-lang.org/nightly/std/os/unix/fs/trait.DirBuilderExt.html#tymethod.mode
145+
[`os::unix::fs::DirBuilderExt`]: http://doc.rust-lang.org/nightly/std/os/unix/fs/trait.DirBuilderExt.html
146+
[`string::Drain`]: http://doc.rust-lang.org/nightly/std/string/struct.Drain.html
147+
[`string::String::drain`]: http://doc.rust-lang.org/nightly/std/string/struct.String.html#method.drain
148+
[`vec::Drain`]: http://doc.rust-lang.org/nightly/std/vec/struct.Drain.html
149+
[`vec::Vec::drain`]: http://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.drain
150+
[`vec_deque::Drain`]: http://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.Drain.html
151+
[`vec_deque::VecDeque::drain`]: http://doc.rust-lang.org/nightly/std/collections/vec_deque/struct.VecDeque.html#method.drain
152+
153+
1154
Version 1.5.0 (2015-12-10)
2155
==========================
3156

0 commit comments

Comments
 (0)