|
| 1 | +Version 1.9.0 (2016-05-26) |
| 2 | +========================== |
| 3 | + |
| 4 | +Language |
| 5 | +-------- |
| 6 | + |
| 7 | +* The `#[deprecated]` attribute when applied to an API will generate |
| 8 | + warnings when used. The warnings may be suppressed with |
| 9 | + `#[allow(deprecated)]`. [RFC 1270]. |
| 10 | +* [`fn` item types are zero sized, and each `fn` names a unique |
| 11 | + type][1.9fn]. This will break code that transmutes `fn`s, so calling |
| 12 | + `transmute` on a `fn` type will generate a warning for a few cycles, |
| 13 | + then will be converted to an error. |
| 14 | +* [Field and method resolution understand visibility, so private |
| 15 | + fields and methods cannot prevent the proper use of public fields |
| 16 | + and methods][1.9fv]. |
| 17 | +* [The parser considers unicode codepoints in the |
| 18 | + `PATTERN_WHITE_SPACE` category to be whitespace][1.9ws]. |
| 19 | + |
| 20 | +Stabilized APIs |
| 21 | +--------------- |
| 22 | + |
| 23 | +* [`std::panic`] |
| 24 | +* [`std::panic::catch_unwind`][] (renamed from `recover`) |
| 25 | +* [`std::panic::resume_unwind`][] (renamed from `propagate`) |
| 26 | +* [`std::panic::AssertUnwindSafe`][] (renamed from `AssertRecoverSafe`) |
| 27 | +* [`std::panic::UnwindSafe`][] (renamed from `RecoverSafe`) |
| 28 | +* [`str::is_char_boundary`] |
| 29 | +* [`<*const T>::as_ref`] |
| 30 | +* [`<*mut T>::as_ref`] |
| 31 | +* [`<*mut T>::as_mut`] |
| 32 | +* [`AsciiExt::make_ascii_uppercase`] |
| 33 | +* [`AsciiExt::make_ascii_lowercase`] |
| 34 | +* [`char::decode_utf16`] |
| 35 | +* [`char::DecodeUtf16`] |
| 36 | +* [`char::DecodeUtf16Error`] |
| 37 | +* [`char::DecodeUtf16Error::unpaired_surrogate`] |
| 38 | +* [`BTreeSet::take`] |
| 39 | +* [`BTreeSet::replace`] |
| 40 | +* [`BTreeSet::get`] |
| 41 | +* [`HashSet::take`] |
| 42 | +* [`HashSet::replace`] |
| 43 | +* [`HashSet::get`] |
| 44 | +* [`OsString::with_capacity`] |
| 45 | +* [`OsString::clear`] |
| 46 | +* [`OsString::capacity`] |
| 47 | +* [`OsString::reserve`] |
| 48 | +* [`OsString::reserve_exact`] |
| 49 | +* [`OsStr::is_empty`] |
| 50 | +* [`OsStr::len`] |
| 51 | +* [`std::os::unix::thread`] |
| 52 | +* [`RawPthread`] |
| 53 | +* [`JoinHandleExt`] |
| 54 | +* [`JoinHandleExt::as_pthread_t`] |
| 55 | +* [`JoinHandleExt::into_pthread_t`] |
| 56 | +* [`HashSet::hasher`] |
| 57 | +* [`HashMap::hasher`] |
| 58 | +* [`CommandExt::exec`] |
| 59 | +* [`File::try_clone`] |
| 60 | +* [`SocketAddr::set_ip`] |
| 61 | +* [`SocketAddr::set_port`] |
| 62 | +* [`SocketAddrV4::set_ip`] |
| 63 | +* [`SocketAddrV4::set_port`] |
| 64 | +* [`SocketAddrV6::set_ip`] |
| 65 | +* [`SocketAddrV6::set_port`] |
| 66 | +* [`SocketAddrV6::set_flowinfo`] |
| 67 | +* [`SocketAddrV6::set_scope_id`] |
| 68 | +* [`slice::copy_from_slice`] |
| 69 | +* [`ptr::read_volatile`] |
| 70 | +* [`ptr::write_volatile`] |
| 71 | +* [`OpenOptions::create_new`] |
| 72 | +* [`TcpStream::set_nodelay`] |
| 73 | +* [`TcpStream::nodelay`] |
| 74 | +* [`TcpStream::set_ttl`] |
| 75 | +* [`TcpStream::ttl`] |
| 76 | +* [`TcpStream::set_only_v6`] |
| 77 | +* [`TcpStream::only_v6`] |
| 78 | +* [`TcpStream::take_error`] |
| 79 | +* [`TcpStream::set_nonblocking`] |
| 80 | +* [`TcpListener::set_ttl`] |
| 81 | +* [`TcpListener::ttl`] |
| 82 | +* [`TcpListener::set_only_v6`] |
| 83 | +* [`TcpListener::only_v6`] |
| 84 | +* [`TcpListener::take_error`] |
| 85 | +* [`TcpListener::set_nonblocking`] |
| 86 | +* [`UdpSocket::set_broadcast`] |
| 87 | +* [`UdpSocket::broadcast`] |
| 88 | +* [`UdpSocket::set_multicast_loop_v4`] |
| 89 | +* [`UdpSocket::multicast_loop_v4`] |
| 90 | +* [`UdpSocket::set_multicast_ttl_v4`] |
| 91 | +* [`UdpSocket::multicast_ttl_v4`] |
| 92 | +* [`UdpSocket::set_multicast_loop_v6`] |
| 93 | +* [`UdpSocket::multicast_loop_v6`] |
| 94 | +* [`UdpSocket::set_multicast_ttl_v6`] |
| 95 | +* [`UdpSocket::multicast_ttl_v6`] |
| 96 | +* [`UdpSocket::set_ttl`] |
| 97 | +* [`UdpSocket::ttl`] |
| 98 | +* [`UdpSocket::set_only_v6`] |
| 99 | +* [`UdpSocket::only_v6`] |
| 100 | +* [`UdpSocket::join_multicast_v4`] |
| 101 | +* [`UdpSocket::join_multicast_v6`] |
| 102 | +* [`UdpSocket::leave_multicast_v4`] |
| 103 | +* [`UdpSocket::leave_multicast_v6`] |
| 104 | +* [`UdpSocket::take_error`] |
| 105 | +* [`UdpSocket::connect`] |
| 106 | +* [`UdpSocket::send`] |
| 107 | +* [`UdpSocket::recv`] |
| 108 | +* [`UdpSocket::set_nonblocking`] |
| 109 | + |
| 110 | +Libraries |
| 111 | +--------- |
| 112 | + |
| 113 | +* [`std::sync::Once` is poisoned if its initialization function |
| 114 | + fails][1.9o]. |
| 115 | +* [`cell::Ref` and `cell::RefMut` can contain unsized types][1.9cu]. |
| 116 | +* [Most types implement `fmt::Debug`][1.9db]. |
| 117 | +* [The default buffer size used by `BufReader` and `BufWriter` was |
| 118 | + reduced to 8K, from 64K][1.9bf]. This is in line with the buffer size |
| 119 | + used by other languages. |
| 120 | +* [`Instant`, `SystemTime` and `Duration` implement `+=` and `-=`. |
| 121 | + `Duration` additionally implements `*=` and `/=`][1.9ta]. |
| 122 | +* [`Skip` is a `DoubleEndedIterator`][1.9sk]. |
| 123 | +* [`From<[u8; 4]>` is implemented for `Ipv4Addr`][1.9fi]. |
| 124 | +* [`Chain` implements `BufRead`][1.9ch]. |
| 125 | +* [`HashMap`, `HashSet` and iterators are covariant][1.9hc]. |
| 126 | + |
| 127 | +Cargo |
| 128 | +----- |
| 129 | + |
| 130 | +* [Cargo can now run concurrently][1.9cc]. |
| 131 | +* [Top-level overrides allow specific revisions of crates to be |
| 132 | + overridden through the entire crate graph][1.9ct]. This is intended |
| 133 | + to make upgrades easier for large projects, by allowing crates to be |
| 134 | + forked temporarily until they've been upgraded and republished. |
| 135 | +* [Cargo exports a `CARGO_PKG_AUTHORS` environment variable][1.9cp]. |
| 136 | +* [Cargo will pass the contents of the `RUSTFLAGS` variable to `rustc` |
| 137 | + on the commandline][1.9cf]. `rustc` arguments can also be specified |
| 138 | + in the `build.rustflags` configuration key. |
| 139 | + |
| 140 | +Performance |
| 141 | +----------- |
| 142 | + |
| 143 | +* [During type unification, the complexity of comparing variables for |
| 144 | + equivalance was reduced from `O(n!)` to `O(n)`][1.9tu]. This leads |
| 145 | + to major compile-time improvements in some scenarios. |
| 146 | +* [`ToString` is specialized for `str`, giving it the same performance |
| 147 | + as `to_owned`][1.9ts]. |
| 148 | +* [Spawning processes with `Command::output` no longer creates extra |
| 149 | + threads][1.9sp]. |
| 150 | +* [`#[derive(PartialEq)]` and `#[derive(PartialOrd)]` emit less code |
| 151 | + for C-like enums][1.9cl]. |
| 152 | + |
| 153 | +Misc |
| 154 | +---- |
| 155 | + |
| 156 | +* [Passing the `--quiet` flag to a test runner will produce |
| 157 | + much-abbreviated output][1.9q]. |
| 158 | +* The Rust Project now publishes std binaries for the |
| 159 | + `mips-unknown-linux-musl`, `mipsel-unknown-linux-musl`, and |
| 160 | + `i586-pc-windows-msvc` targets. |
| 161 | + |
| 162 | +Compatibility Notes |
| 163 | +------------------- |
| 164 | + |
| 165 | +* [`std::sync::Once` is poisoned if its initialization function |
| 166 | + fails][1.9o]. |
| 167 | +* [It is illegal to define methods with the same name in overlapping |
| 168 | + inherent `impl` blocks][1.9sn]. |
| 169 | +* [`fn` item types are zero sized, and each `fn` names a unique |
| 170 | + type][1.9fn]. This will break code that transmutes `fn`s, so calling |
| 171 | + `transmute` on a `fn` type will generate a warning for a few cycles, |
| 172 | + then will be converted to an error. |
| 173 | +* [Improvements to const evaluation may trigger new errors when integer |
| 174 | + literals are out of range][1.9ce]. |
| 175 | + |
| 176 | + |
| 177 | +[1.9bf]: https://github.com/rust-lang/rust/pull/32695 |
| 178 | +[1.9cc]: https://github.com/rust-lang/cargo/pull/2486 |
| 179 | +[1.9ce]: https://github.com/rust-lang/rust/pull/30587 |
| 180 | +[1.9cf]: https://github.com/rust-lang/cargo/pull/2241 |
| 181 | +[1.9ch]: https://github.com/rust-lang/rust/pull/32541 |
| 182 | +[1.9cl]: https://github.com/rust-lang/rust/pull/31977 |
| 183 | +[1.9cp]: https://github.com/rust-lang/cargo/pull/2465 |
| 184 | +[1.9ct]: https://github.com/rust-lang/cargo/pull/2385 |
| 185 | +[1.9cu]: https://github.com/rust-lang/rust/pull/32652 |
| 186 | +[1.9db]: https://github.com/rust-lang/rust/pull/32054 |
| 187 | +[1.9fi]: https://github.com/rust-lang/rust/pull/32050 |
| 188 | +[1.9fn]: https://github.com/rust-lang/rust/pull/31710 |
| 189 | +[1.9fv]: https://github.com/rust-lang/rust/pull/31938 |
| 190 | +[1.9hc]: https://github.com/rust-lang/rust/pull/32635 |
| 191 | +[1.9o]: https://github.com/rust-lang/rust/pull/32325 |
| 192 | +[1.9q]: https://github.com/rust-lang/rust/pull/31887 |
| 193 | +[1.9sk]: https://github.com/rust-lang/rust/pull/31700 |
| 194 | +[1.9sn]: https://github.com/rust-lang/rust/pull/31925 |
| 195 | +[1.9sp]: https://github.com/rust-lang/rust/pull/31618 |
| 196 | +[1.9ta]: https://github.com/rust-lang/rust/pull/32448 |
| 197 | +[1.9ts]: https://github.com/rust-lang/rust/pull/32586 |
| 198 | +[1.9tu]: https://github.com/rust-lang/rust/pull/32062 |
| 199 | +[1.9ws]: https://github.com/rust-lang/rust/pull/29734 |
| 200 | +[RFC 1270]: https://github.com/rust-lang/rfcs/blob/master/text/1270-deprecation.md |
| 201 | +[`<*const T>::as_ref`]: http://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.as_ref |
| 202 | +[`<*mut T>::as_mut`]: http://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.as_mut |
| 203 | +[`<*mut T>::as_ref`]: http://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.as_ref |
| 204 | +[`slice::copy_from_slice`]: http://doc.rust-lang.org/nightly/std/primitive.slice.html#method.copy_from_slice |
| 205 | +[`AsciiExt::make_ascii_lowercase`]: http://doc.rust-lang.org/nightly/std/ascii/trait.AsciiExt.html#tymethod.make_ascii_lowercase |
| 206 | +[`AsciiExt::make_ascii_uppercase`]: http://doc.rust-lang.org/nightly/std/ascii/trait.AsciiExt.html#tymethod.make_ascii_uppercase |
| 207 | +[`BTreeSet::get`]: http://doc.rust-lang.org/nightly/collections/btree/set/struct.BTreeSet.html#method.get |
| 208 | +[`BTreeSet::replace`]: http://doc.rust-lang.org/nightly/collections/btree/set/struct.BTreeSet.html#method.replace |
| 209 | +[`BTreeSet::take`]: http://doc.rust-lang.org/nightly/collections/btree/set/struct.BTreeSet.html#method.take |
| 210 | +[`CommandExt::exec`]: http://doc.rust-lang.org/nightly/std/os/unix/process/trait.CommandExt.html#tymethod.exec |
| 211 | +[`File::try_clone`]: http://doc.rust-lang.org/nightly/std/fs/struct.File.html#method.try_clone |
| 212 | +[`HashMap::hasher`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashMap.html#method.hasher |
| 213 | +[`HashSet::get`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashSet.html#method.get |
| 214 | +[`HashSet::hasher`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashSet.html#method.hasher |
| 215 | +[`HashSet::replace`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashSet.html#method.replace |
| 216 | +[`HashSet::take`]: http://doc.rust-lang.org/nightly/std/collections/struct.HashSet.html#method.take |
| 217 | +[`JoinHandleExt::as_pthread_t`]: http://doc.rust-lang.org/nightly/std/os/unix/thread/trait.JoinHandleExt.html#tymethod.as_pthread_t |
| 218 | +[`JoinHandleExt::into_pthread_t`]: http://doc.rust-lang.org/nightly/std/os/unix/thread/trait.JoinHandleExt.html#tymethod.into_pthread_t |
| 219 | +[`JoinHandleExt`]: http://doc.rust-lang.org/nightly/std/os/unix/thread/trait.JoinHandleExt.html |
| 220 | +[`OpenOptions::create_new`]: http://doc.rust-lang.org/nightly/std/fs/struct.OpenOptions.html#method.create_new |
| 221 | +[`OsStr::is_empty`]: http://doc.rust-lang.org/nightly/std/ffi/struct.OsStr.html#method.is_empty |
| 222 | +[`OsStr::len`]: http://doc.rust-lang.org/nightly/std/ffi/struct.OsStr.html#method.len |
| 223 | +[`OsString::capacity`]: http://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html#method.capacity |
| 224 | +[`OsString::clear`]: http://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html#method.clear |
| 225 | +[`OsString::reserve_exact`]: http://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html#method.reserve_exact |
| 226 | +[`OsString::reserve`]: http://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html#method.reserve |
| 227 | +[`OsString::with_capacity`]: http://doc.rust-lang.org/nightly/std/ffi/struct.OsString.html#method.with_capacity |
| 228 | +[`RawPthread`]: http://doc.rust-lang.org/nightly/std/os/unix/thread/type.RawPthread.html |
| 229 | +[`SocketAddr::set_ip`]: http://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_ip |
| 230 | +[`SocketAddr::set_port`]: http://doc.rust-lang.org/nightly/std/net/enum.SocketAddr.html#method.set_port |
| 231 | +[`SocketAddrV4::set_ip`]: http://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV4.html#method.set_ip |
| 232 | +[`SocketAddrV4::set_port`]: http://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV4.html#method.set_port |
| 233 | +[`SocketAddrV6::set_flowinfo`]: http://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_flowinfo |
| 234 | +[`SocketAddrV6::set_ip`]: http://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_ip |
| 235 | +[`SocketAddrV6::set_port`]: http://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_port |
| 236 | +[`SocketAddrV6::set_scope_id`]: http://doc.rust-lang.org/nightly/std/net/struct.SocketAddrV6.html#method.set_scope_id |
| 237 | +[`TcpListener::only_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.only_v6 |
| 238 | +[`TcpListener::set_nonblocking`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.set_nonblocking |
| 239 | +[`TcpListener::set_only_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.set_only_v6 |
| 240 | +[`TcpListener::set_ttl`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.set_ttl |
| 241 | +[`TcpListener::take_error`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.take_error |
| 242 | +[`TcpListener::ttl`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.ttl |
| 243 | +[`TcpStream::nodelay`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.nodelay |
| 244 | +[`TcpStream::only_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.only_v6 |
| 245 | +[`TcpStream::set_nodelay`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.set_nodelay |
| 246 | +[`TcpStream::set_nonblocking`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.set_nonblocking |
| 247 | +[`TcpStream::set_only_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.set_only_v6 |
| 248 | +[`TcpStream::set_ttl`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.set_ttl |
| 249 | +[`TcpStream::take_error`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.take_error |
| 250 | +[`TcpStream::ttl`]: http://doc.rust-lang.org/nightly/std/net/struct.TcpStream.html#method.ttl |
| 251 | +[`UdpSocket::broadcast`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.broadcast |
| 252 | +[`UdpSocket::connect`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.connect |
| 253 | +[`UdpSocket::join_multicast_v4`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.join_multicast_v4 |
| 254 | +[`UdpSocket::join_multicast_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.join_multicast_v6 |
| 255 | +[`UdpSocket::leave_multicast_v4`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.leave_multicast_v4 |
| 256 | +[`UdpSocket::leave_multicast_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.leave_multicast_v6 |
| 257 | +[`UdpSocket::multicast_loop_v4`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.multicast_loop_v4 |
| 258 | +[`UdpSocket::multicast_loop_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.multicast_loop_v6 |
| 259 | +[`UdpSocket::multicast_ttl_v4`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.multicast_ttl_v4 |
| 260 | +[`UdpSocket::multicast_ttl_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.multicast_ttl_v6 |
| 261 | +[`UdpSocket::only_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.only_v6 |
| 262 | +[`UdpSocket::recv`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.recv |
| 263 | +[`UdpSocket::send`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.send |
| 264 | +[`UdpSocket::set_broadcast`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_broadcast |
| 265 | +[`UdpSocket::set_multicast_loop_v4`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_multicast_loop_v4 |
| 266 | +[`UdpSocket::set_multicast_loop_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_multicast_loop_v6 |
| 267 | +[`UdpSocket::set_multicast_ttl_v4`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_multicast_ttl_v4 |
| 268 | +[`UdpSocket::set_multicast_ttl_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_multicast_ttl_v6 |
| 269 | +[`UdpSocket::set_nonblocking`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_nonblocking |
| 270 | +[`UdpSocket::set_only_v6`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_only_v6 |
| 271 | +[`UdpSocket::set_ttl`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.set_ttl |
| 272 | +[`UdpSocket::take_error`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.take_error |
| 273 | +[`UdpSocket::ttl`]: http://doc.rust-lang.org/nightly/std/net/struct.UdpSocket.html#method.ttl |
| 274 | +[`char::DecodeUtf16Error::unpaired_surrogate`]: http://doc.rust-lang.org/nightly/std/char/struct.DecodeUtf16Error.html#method.unpaired_surrogate |
| 275 | +[`char::DecodeUtf16Error`]: http://doc.rust-lang.org/nightly/std/char/struct.DecodeUtf16Error.html |
| 276 | +[`char::DecodeUtf16`]: http://doc.rust-lang.org/nightly/std/char/struct.DecodeUtf16.html |
| 277 | +[`char::decode_utf16`]: http://doc.rust-lang.org/nightly/std/char/fn.decode_utf16.html |
| 278 | +[`ptr::read_volatile`]: http://doc.rust-lang.org/nightly/std/ptr/fn.read_volatile.html |
| 279 | +[`ptr::write_volatile`]: http://doc.rust-lang.org/nightly/std/ptr/fn.write_volatile.html |
| 280 | +[`std::os::unix::thread`]: http://doc.rust-lang.org/nightly/std/os/unix/thread/index.html |
| 281 | +[`std::panic::AssertUnwindSafe`]: http://doc.rust-lang.org/nightly/std/panic/struct.AssertUnwindSafe.html |
| 282 | +[`std::panic::UnwindSafe`]: http://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html |
| 283 | +[`std::panic::catch_unwind`]: http://doc.rust-lang.org/nightly/std/panic/fn.catch_unwind.html |
| 284 | +[`std::panic::resume_unwind`]: http://doc.rust-lang.org/nightly/std/panic/fn.resume_unwind.html |
| 285 | +[`std::panic`]: http://doc.rust-lang.org/nightly/std/panic/index.html |
| 286 | +[`str::is_char_boundary`]: http://doc.rust-lang.org/nightly/std/primitive.str.html#method.is_char_boundary |
| 287 | + |
| 288 | + |
1 | 289 | Version 1.8.0 (2016-04-14)
|
2 | 290 | ==========================
|
3 | 291 |
|
|
0 commit comments