Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit cfcb716

Browse files
brsonalexcrichton
authored andcommittedJul 3, 2016
Release notes for 1.10.0
1 parent de4ce57 commit cfcb716

File tree

1 file changed

+312
-0
lines changed

1 file changed

+312
-0
lines changed
 

‎RELEASES.md

+312
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,315 @@
1+
Version 1.10.0 (2016-07-07)
2+
===========================
3+
4+
Language
5+
--------
6+
7+
* [Allow `concat_idents!` in type positions as well as in expression
8+
positions]
9+
(https://github.com/rust-lang/rust/pull/33735).
10+
* [`Copy` types are required to have a trivial implementation of `Clone`]
11+
(https://github.com/rust-lang/rust/pull/33420).
12+
[RFC 1521](https://github.com/rust-lang/rfcs/blob/master/text/1521-copy-clone-semantics.md).
13+
* [Single-variant enums support the `#[repr(..)]` attribute]
14+
(https://github.com/rust-lang/rust/pull/33355).
15+
* [Fix `#[derive(RustcEncodable)]` in the presence of other `encode` methods]
16+
(https://github.com/rust-lang/rust/pull/32908).
17+
* [`panic!` can be converted to a runtime abort with the
18+
`-C panic=abort` flag]
19+
(https://github.com/rust-lang/rust/pull/32900).
20+
[RFC 1513](https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md).
21+
* [Add a new crate type, 'cdylib']
22+
(https://github.com/rust-lang/rust/pull/33553).
23+
cdylibs are dynamic libraries suitable for loading by non-Rust hosts.
24+
[RFC 1510](https://github.com/rust-lang/rfcs/blob/master/text/1510-rdylib.md).
25+
Note that Cargo does not yet directly support cdylibs.
26+
27+
Stabilized APIs
28+
---------------
29+
30+
* `os::windows::fs::OpenOptionsExt::access_mode`
31+
* `os::windows::fs::OpenOptionsExt::share_mode`
32+
* `os::windows::fs::OpenOptionsExt::custom_flags`
33+
* `os::windows::fs::OpenOptionsExt::attributes`
34+
* `os::windows::fs::OpenOptionsExt::security_qos_flags`
35+
* `os::unix::fs::OpenOptionsExt::custom_flags`
36+
* [`sync::Weak::new`]
37+
(http://doc.rust-lang.org/alloc/arc/struct.Weak.html#method.new)
38+
* `Default for sync::Weak`
39+
* [`panic::set_hook`]
40+
(http://doc.rust-lang.org/std/panic/fn.set_hook.html)
41+
* [`panic::take_hook`]
42+
(http://doc.rust-lang.org/std/panic/fn.take_hook.html)
43+
* [`panic::PanicInfo`]
44+
(http://doc.rust-lang.org/std/panic/struct.PanicInfo.html)
45+
* [`panic::PanicInfo::payload`]
46+
(http://doc.rust-lang.org/std/panic/struct.PanicInfo.html#method.payload)
47+
* [`panic::PanicInfo::location`]
48+
(http://doc.rust-lang.org/std/panic/struct.PanicInfo.html#method.location)
49+
* [`panic::Location`]
50+
(http://doc.rust-lang.org/std/panic/struct.Location.html)
51+
* [`panic::Location::file`]
52+
(http://doc.rust-lang.org/std/panic/struct.Location.html#method.file)
53+
* [`panic::Location::line`]
54+
(http://doc.rust-lang.org/std/panic/struct.Location.html#method.line)
55+
* [`ffi::CStr::from_bytes_with_nul`]
56+
(http://doc.rust-lang.org/std/ffi/struct.CStr.html#method.from_bytes_with_nul)
57+
* [`ffi::CStr::from_bytes_with_nul_unchecked`]
58+
(http://doc.rust-lang.org/std/ffi/struct.CStr.html#method.from_bytes_with_nul_unchecked)
59+
* [`ffi::FromBytesWithNulError`]
60+
(http://doc.rust-lang.org/std/ffi/struct.FromBytesWithNulError.html)
61+
* [`fs::Metadata::modified`]
62+
(http://doc.rust-lang.org/std/fs/struct.Metadata.html#method.modified)
63+
* [`fs::Metadata::accessed`]
64+
(http://doc.rust-lang.org/std/fs/struct.Metadata.html#method.accessed)
65+
* [`fs::Metadata::created`]
66+
(http://doc.rust-lang.org/std/fs/struct.Metadata.html#method.created)
67+
* `sync::atomic::Atomic{Usize,Isize,Bool,Ptr}::compare_exchange`
68+
* `sync::atomic::Atomic{Usize,Isize,Bool,Ptr}::compare_exchange_weak`
69+
* `collections::{btree,hash}_map::{Occupied,Vacant,}Entry::key`
70+
* `os::unix::net::{UnixStream, UnixListener, UnixDatagram, SocketAddr}`
71+
* [`SocketAddr::is_unnamed`]
72+
(http://doc.rust-lang.org/std/os/unix/net/struct.SocketAddr.html#method.is_unnamed)
73+
* [`SocketAddr::as_pathname`]
74+
(http://doc.rust-lang.org/std/os/unix/net/struct.SocketAddr.html#method.as_pathname)
75+
* [`UnixStream::connect`]
76+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.connect)
77+
* [`UnixStream::pair`]
78+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.pair)
79+
* [`UnixStream::try_clone`]
80+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.try_clone)
81+
* [`UnixStream::local_addr`]
82+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.local_addr)
83+
* [`UnixStream::peer_addr`]
84+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.peer_addr)
85+
* [`UnixStream::set_read_timeout`]
86+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.read_timeout)
87+
* [`UnixStream::set_write_timeout`]
88+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.write_timeout)
89+
* [`UnixStream::read_timeout`]
90+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.read_timeout)
91+
* [`UnixStream::write_timeout`]
92+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.write_timeout)
93+
* [`UnixStream::set_nonblocking`]
94+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.set_nonblocking)
95+
* [`UnixStream::take_error`]
96+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.take_error)
97+
* [`UnixStream::shutdown`]
98+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixStream.html#method.shutdown)
99+
* Read/Write/RawFd impls for `UnixStream`
100+
* [`UnixListener::bind`]
101+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixListener.html#method.bind)
102+
* [`UnixListener::accept`]
103+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixListener.html#method.accept)
104+
* [`UnixListener::try_clone`]
105+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixListener.html#method.try_clone)
106+
* [`UnixListener::local_addr`]
107+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixListener.html#method.local_addr)
108+
* [`UnixListener::set_nonblocking`]
109+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixListener.html#method.set_nonblocking)
110+
* [`UnixListener::take_error`]
111+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixListener.html#method.take_error)
112+
* [`UnixListener::incoming`]
113+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixListener.html#method.incoming)
114+
* RawFd impls for `UnixListener`
115+
* [`UnixDatagram::bind`]
116+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.bind)
117+
* [`UnixDatagram::unbound`]
118+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.unbound)
119+
* [`UnixDatagram::pair`]
120+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.pair)
121+
* [`UnixDatagram::connect`]
122+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.connect)
123+
* [`UnixDatagram::try_clone`]
124+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.try_clone)
125+
* [`UnixDatagram::local_addr`]
126+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.local_addr)
127+
* [`UnixDatagram::peer_addr`]
128+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.peer_addr)
129+
* [`UnixDatagram::recv_from`]
130+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.recv_from)
131+
* [`UnixDatagram::recv`]
132+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.recv)
133+
* [`UnixDatagram::send_to`]
134+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.send_to)
135+
* [`UnixDatagram::send`]
136+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.send)
137+
* [`UnixDatagram::set_read_timeout`]
138+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.set_read_timeout)
139+
* [`UnixDatagram::set_write_timeout`]
140+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.set_write_timeout)
141+
* [`UnixDatagram::read_timeout`]
142+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.read_timeout)
143+
* [`UnixDatagram::write_timeout`]
144+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.write_timeout)
145+
* [`UnixDatagram::set_nonblocking`]
146+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.set_nonblocking)
147+
* [`UnixDatagram::take_error`]
148+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.take_error)
149+
* [`UnixDatagram::shutdown`]
150+
(http://doc.rust-lang.org/std/os/unix/net/struct.UnixDatagram.html#method.shutdown)
151+
* RawFd impls for `UnixDatagram`
152+
* `{BTree,Hash}Map::values_mut`
153+
* [`<[_]>::binary_search_by_key`]
154+
(http://doc.rust-lang.org/beta/std/primitive.slice.html#method.binary_search_by_key)
155+
156+
Libraries
157+
---------
158+
159+
* [The `abs_sub` method of floats is deprecated]
160+
(https://github.com/rust-lang/rust/pull/33664).
161+
The semantics of this minor method are subtle and probably not what
162+
most people want.
163+
* [Add implementation of Ord for Cell<T> and RefCell<T> where T: Ord]
164+
(https://github.com/rust-lang/rust/pull/33306).
165+
* [On Linux, if `HashMap`s can't be initialized with `getrandom` they
166+
will fall back to `/dev/urandom` temporarily to avoid blocking
167+
during early boot]
168+
(https://github.com/rust-lang/rust/pull/33086).
169+
* [Implemented negation for wrapping numerals]
170+
(https://github.com/rust-lang/rust/pull/33067).
171+
* [Implement `Clone` for `binary_heap::IntoIter`]
172+
(https://github.com/rust-lang/rust/pull/33050).
173+
* [Implement `Display` and `Hash` for `std::num::Wrapping`]
174+
(https://github.com/rust-lang/rust/pull/33023).
175+
* [Add `Default` implementation for `&CStr`, `CString`, `Path`]
176+
(https://github.com/rust-lang/rust/pull/32990).
177+
* [Implement `From<Vec<T>>` and `Into<Vec<T>>` for `VecDeque<T>`]
178+
(https://github.com/rust-lang/rust/pull/32866).
179+
* [Implement `Default` for `UnsafeCell`, `fmt::Error`, `Condvar`,
180+
`Mutex`, `RwLock`]
181+
(https://github.com/rust-lang/rust/pull/32785).
182+
183+
Cargo
184+
-----
185+
* [Cargo.toml supports the `profile.*.panic` option]
186+
(https://github.com/rust-lang/cargo/pull/2687).
187+
This controls the runtime behavior of the `panic!` macro
188+
and can be either "unwind" (the default), or "abort".
189+
[RFC 1513](https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md).
190+
* [Don't throw away errors with `-p` arguments]
191+
(https://github.com/rust-lang/cargo/pull/2723).
192+
* [Report status to stderr instead of stdout]
193+
(https://github.com/rust-lang/cargo/pull/2693).
194+
* [Build scripts are passed a `CARGO_MANIFEST_LINKS` environment
195+
variable that corresponds to the `links` field of the manifest]
196+
(https://github.com/rust-lang/cargo/pull/2710).
197+
* [Ban keywords from crate names]
198+
(https://github.com/rust-lang/cargo/pull/2707).
199+
* [Canonicalize `CARGO_HOME` on Windows]
200+
(https://github.com/rust-lang/cargo/pull/2604).
201+
* [Retry network requests]
202+
(https://github.com/rust-lang/cargo/pull/2396).
203+
By default they are retried twice, which can be customized with the
204+
`net.retry` value in `.cargo/config`.
205+
* [Don't print extra error info for failing subcommands]
206+
(https://github.com/rust-lang/cargo/pull/2674).
207+
* [Add `--force` flag to `cargo install`]
208+
(https://github.com/rust-lang/cargo/pull/2405).
209+
* [Don't use `flock` on NFS mounts]
210+
(https://github.com/rust-lang/cargo/pull/2623).
211+
* [Prefer building `cargo install` artifacts in temporary directories]
212+
(https://github.com/rust-lang/cargo/pull/2610).
213+
Makes it possible to install multiple crates in parallel.
214+
* [Add `cargo test --doc`]
215+
(https://github.com/rust-lang/cargo/pull/2578).
216+
* [Add `cargo --explain`]
217+
(https://github.com/rust-lang/cargo/pull/2551).
218+
* [Don't print warnings when `-q` is passed]
219+
(https://github.com/rust-lang/cargo/pull/2576).
220+
* [Add `cargo doc --lib` and `--bin`]
221+
(https://github.com/rust-lang/cargo/pull/2577).
222+
* [Don't require build script output to be UTF-8]
223+
(https://github.com/rust-lang/cargo/pull/2560).
224+
* [Correctly attempt multiple git usernames]
225+
(https://github.com/rust-lang/cargo/pull/2584).
226+
227+
Performance
228+
-----------
229+
230+
* [rustc memory usage was reduced by refactoring the context used for
231+
type checking]
232+
(https://github.com/rust-lang/rust/pull/33425).
233+
* [Speed up creation of `HashMap`s by caching the random keys used
234+
to initialize the hash state]
235+
(https://github.com/rust-lang/rust/pull/33318).
236+
* [The `find` implementation for `Chain` iterators is 2x faster]
237+
(https://github.com/rust-lang/rust/pull/33289).
238+
* [Trait selection optimizations speed up type checking by 15%]
239+
(https://github.com/rust-lang/rust/pull/33138).
240+
* [Efficient trie lookup for boolean Unicode properties]
241+
(https://github.com/rust-lang/rust/pull/33098).
242+
10x faster than the previous lookup tables.
243+
* [Special case `#[derive(Copy, Clone)]` to avoid bloat]
244+
(https://github.com/rust-lang/rust/pull/31414).
245+
246+
Usability
247+
---------
248+
249+
* Many incremental improvements to documentation and rustdoc.
250+
* [rustdoc: List blanket trait impls]
251+
(https://github.com/rust-lang/rust/pull/33514).
252+
* [rustdoc: Clean up ABI rendering]
253+
(https://github.com/rust-lang/rust/pull/33151).
254+
* [Indexing with the wrong type produces a more informative error]
255+
(https://github.com/rust-lang/rust/pull/33401).
256+
* [Improve diagnostics for constants being used in irrefutable patterns]
257+
(https://github.com/rust-lang/rust/pull/33406).
258+
* [When many method candidates are in scope limit the suggestions to 10]
259+
(https://github.com/rust-lang/rust/pull/33338).
260+
* [Remove confusing suggestion when calling a `fn` type]
261+
(https://github.com/rust-lang/rust/pull/33325).
262+
* [Do not suggest changing `&mut self` to `&mut mut self`]
263+
(https://github.com/rust-lang/rust/pull/33319).
264+
265+
Misc
266+
----
267+
268+
* [Update i686-linux-android features to match Android ABI]
269+
(https://github.com/rust-lang/rust/pull/33651).
270+
* [Update aarch64-linux-android features to match Android ABI]
271+
(https://github.com/rust-lang/rust/pull/33500).
272+
* [`std` no longer prints backtraces on platforms where the running
273+
module must be loaded with `env::current_exe`, which can't be relied
274+
on](https://github.com/rust-lang/rust/pull/33554).
275+
* This release includes std binaries for the i586-unknown-linux-gnu,
276+
i686-unknown-linux-musl, and armv7-linux-androideabi targets. The
277+
i586 target is for old x86 hardware without SSE2, and the armv7
278+
target is for Android running on modern ARM architectures.
279+
* [The `rust-gdb` and `rust-lldb` scripts are distributed on all
280+
Unix platforms](https://github.com/rust-lang/rust/pull/32835).
281+
* [On Unix the runtime aborts by calling `libc::abort` instead of
282+
generating an illegal instruction]
283+
(https://github.com/rust-lang/rust/pull/31457).
284+
* [Rust is now bootstrapped from the previous release of Rust,
285+
instead of a snapshot from an arbitrary commit]
286+
(https://github.com/rust-lang/rust/pull/32942).
287+
288+
Compatibility Notes
289+
-------------------
290+
291+
* [`AtomicBool` is now bool-sized, not word-sized]
292+
(https://github.com/rust-lang/rust/pull/33579).
293+
* [`target_env` for Linux ARM targets is just `gnu`, not
294+
`gnueabihf`, `gnueabi`, etc]
295+
(https://github.com/rust-lang/rust/pull/33403).
296+
* [Consistently panic on overflow in `Duration::new`]
297+
(https://github.com/rust-lang/rust/pull/33072).
298+
* [Change `String::truncate` to panic less]
299+
(https://github.com/rust-lang/rust/pull/32977).
300+
* [Add `:block` to the follow set for `:ty` and `:path`]
301+
(https://github.com/rust-lang/rust/pull/32945).
302+
Affects how macros are parsed.
303+
* [Fix macro hygiene bug]
304+
(https://github.com/rust-lang/rust/pull/32923).
305+
* [Feature-gated attributes on macro-generated macro invocations are
306+
now rejected]
307+
(https://github.com/rust-lang/rust/pull/32791).
308+
* [Suppress fallback and ambiguity errors during type inference]
309+
(https://github.com/rust-lang/rust/pull/32258).
310+
This caused some minor changes to type inference.
311+
312+
1313
Version 1.9.0 (2016-05-26)
2314
==========================
3315

0 commit comments

Comments
 (0)
Failed to load comments.