|  | 
|  | 1 | +Version 1.14.0 (2016-12-22) | 
|  | 2 | +=========================== | 
|  | 3 | + | 
|  | 4 | +Language | 
|  | 5 | +-------- | 
|  | 6 | + | 
|  | 7 | +* [`..` matches multiple tuple fields in enum variants, structs | 
|  | 8 | +  and tuples][36843]. [RFC 1492]. | 
|  | 9 | +* [Safe `fn` items can be coerced to `unsafe fn` pointers][37389] | 
|  | 10 | +* [`use *` and `use ::*` both glob-import from the crate root][37367] | 
|  | 11 | +* [It's now possible to call a `Vec<Box<Fn()>>` without explicit | 
|  | 12 | +  dereferencing][36822] | 
|  | 13 | + | 
|  | 14 | +Compiler | 
|  | 15 | +-------- | 
|  | 16 | + | 
|  | 17 | +* [Mark enums with non-zero discriminant as non-zero][37224] | 
|  | 18 | +* [Lower-case `static mut` names are linted like other | 
|  | 19 | +  statics and consts][37162] | 
|  | 20 | +* [Fix ICE on some macros in const integer positions | 
|  | 21 | +   (e.g. `[u8; m!()]`)][36819] | 
|  | 22 | +* [Improve error message and snippet for "did you mean `x`"][36798] | 
|  | 23 | +* [Add a panic-strategy field to the target specification][36794] | 
|  | 24 | +* [Include LLVM version in `--version --verbose`][37200] | 
|  | 25 | + | 
|  | 26 | +Compile-time Optimizations | 
|  | 27 | +-------------------------- | 
|  | 28 | + | 
|  | 29 | +* [Improve macro expansion performance][37569] | 
|  | 30 | +* [Shrink `Expr_::ExprInlineAsm`][37445] | 
|  | 31 | +* [Replace all uses of SHA-256 with BLAKE2b][37439] | 
|  | 32 | +* [Reduce the number of bytes hashed by `IchHasher`][37427] | 
|  | 33 | +* [Avoid more allocations when compiling html5ever][37373] | 
|  | 34 | +* [Use `SmallVector` in `CombineFields::instantiate`][37322] | 
|  | 35 | +* [Avoid some allocations in the macro parser][37318] | 
|  | 36 | +* [Use a faster deflate setting][37298] | 
|  | 37 | +* [Add `ArrayVec` and `AccumulateVec` to reduce heap allocations | 
|  | 38 | +  during interning of slices][37270] | 
|  | 39 | +* [Optimize `write_metadata`][37267] | 
|  | 40 | +* [Don't process obligation forest cycles when stalled][37231] | 
|  | 41 | +* [Avoid many `CrateConfig` clones][37161] | 
|  | 42 | +* [Optimize `Substs::super_fold_with`][37108] | 
|  | 43 | +* [Optimize `ObligationForest`'s `NodeState` handling][36993] | 
|  | 44 | +* [Speed up `plug_leaks`][36917] | 
|  | 45 | + | 
|  | 46 | +Libraries | 
|  | 47 | +--------- | 
|  | 48 | + | 
|  | 49 | +* [`println!()`, with no arguments, prints newline][36825]. | 
|  | 50 | +  Previously, an empty string was required to achieve the same. | 
|  | 51 | +* [`Wrapping` impls standard binary and unary operators, as well as | 
|  | 52 | +   the `Sum` and `Product` iterators][37356] | 
|  | 53 | +* [Implement `From<Cow<str>> for String` and `From<Cow<[T]>> for | 
|  | 54 | +  Vec<T>`][37326] | 
|  | 55 | +* [Improve `fold` performance for `chain`, `cloned`, `map`, and | 
|  | 56 | +  `VecDeque` iterators][37315] | 
|  | 57 | +* [Improve `SipHasher` performance on small values][37312] | 
|  | 58 | +* [Add Iterator trait TrustedLen to enable better FromIterator / | 
|  | 59 | +  Extend][37306] | 
|  | 60 | +* [Expand `.zip()` specialization to `.map()` and `.cloned()`][37230] | 
|  | 61 | +* [`ReadDir` implements `Debug`][37221] | 
|  | 62 | +* [Implement `RefUnwindSafe` for atomic types][37178] | 
|  | 63 | +* [Specialize `Vec::extend` to `Vec::extend_from_slice`][37094] | 
|  | 64 | +* [Avoid allocations in `Decoder::read_str`][37064] | 
|  | 65 | +* [`io::Error` implements `From<io::ErrorKind>`][37037] | 
|  | 66 | +* [Impl `Debug` for raw pointers to unsized data][36880] | 
|  | 67 | +* [Don't reuse `HashMap` random seeds][37470] | 
|  | 68 | +* [The internal memory layout of `HashMap` is more cache-friendly, for | 
|  | 69 | +  significant improvements in some operations][36692] | 
|  | 70 | +* [`HashMap` uses less memory on 32-bit architectures][36595] | 
|  | 71 | +* [Impl `Add<{str, Cow<str>}>` for `Cow<str>`][36430] | 
|  | 72 | + | 
|  | 73 | +Cargo | 
|  | 74 | +----- | 
|  | 75 | + | 
|  | 76 | +* [Expose rustc cfg values to build scripts][cargo/3243] | 
|  | 77 | +* [Allow cargo to work with read-only `CARGO_HOME`][cargo/3259] | 
|  | 78 | +* [Fix passing --features when testing multiple packages][cargo/3280] | 
|  | 79 | +* [Use a single profile set per workspace][cargo/3249] | 
|  | 80 | +* [Load `replace` sections from lock files][cargo/3220] | 
|  | 81 | +* [Ignore `panic` configuration for test/bench profiles][cargo/3175] | 
|  | 82 | + | 
|  | 83 | +Tooling | 
|  | 84 | +------- | 
|  | 85 | + | 
|  | 86 | +* [rustup is the recommended Rust installation method][1.14rustup] | 
|  | 87 | +* This release includes host (rustc) builds for Linux on MIPS, PowerPC, and | 
|  | 88 | +  S390x. These are [tier 2] platforms and may have major defects. Follow the | 
|  | 89 | +  instructions on the website to install, or add the targets to an existing | 
|  | 90 | +  installation with `rustup target add`. The new target triples are: | 
|  | 91 | +  - `mips-unknown-linux-gnu` | 
|  | 92 | +  - `mipsel-unknown-linux-gnu` | 
|  | 93 | +  - `mips64-unknown-linux-gnuabi64` | 
|  | 94 | +  - `mips64el-unknown-linux-gnuabi64 ` | 
|  | 95 | +  - `powerpc-unknown-linux-gnu` | 
|  | 96 | +  - `powerpc64-unknown-linux-gnu` | 
|  | 97 | +  - `powerpc64le-unknown-linux-gnu` | 
|  | 98 | +  - `s390x-unknown-linux-gnu ` | 
|  | 99 | +* This release includes target (std) builds for ARM Linux running MUSL | 
|  | 100 | +  libc. These are [tier 2] platforms and may have major defects. Add the | 
|  | 101 | +  following triples to an existing rustup installation with `rustup target add`: | 
|  | 102 | +  - `arm-unknown-linux-musleabi` | 
|  | 103 | +  - `arm-unknown-linux-musleabihf` | 
|  | 104 | +  - `armv7-unknown-linux-musleabihf` | 
|  | 105 | +* This release includes [experimental support for WebAssembly][1.14wasm], via | 
|  | 106 | +  the `wasm32-unknown-emscripten` target. This target is known to have major | 
|  | 107 | +  defects. Please test, report, and fix. | 
|  | 108 | +* rustup no longer installs documentation by default. Run `rustup | 
|  | 109 | +  component add rust-docs` to install. | 
|  | 110 | +* [Fix line stepping in debugger][37310] | 
|  | 111 | +* [Enable line number debuginfo in releases][37280] | 
|  | 112 | + | 
|  | 113 | +Misc | 
|  | 114 | +---- | 
|  | 115 | + | 
|  | 116 | +* [Disable jemalloc on aarch64/powerpc/mips][37392] | 
|  | 117 | +* [Add support for Fuchsia OS][37313] | 
|  | 118 | +* [Detect local-rebuild by only MAJOR.MINOR version][37273] | 
|  | 119 | + | 
|  | 120 | +Compatibility Notes | 
|  | 121 | +------------------- | 
|  | 122 | + | 
|  | 123 | +* [A number of forward-compatibility lints used by the compiler | 
|  | 124 | +  to gradually introduce language changes have been converted | 
|  | 125 | +  to deny by default][36894]: | 
|  | 126 | +  - ["use of inaccessible extern crate erroneously allowed"][36886] | 
|  | 127 | +  - ["type parameter default erroneously allowed in invalid location"][36887] | 
|  | 128 | +  - ["detects super or self keywords at the beginning of global path"][36888] | 
|  | 129 | +  - ["two overlapping inherent impls define an item with the same name | 
|  | 130 | +    were erroneously allowed"][36889] | 
|  | 131 | +  - ["floating-point constants cannot be used in patterns"][36890] | 
|  | 132 | +  - ["constants of struct or enum type can only be used in a pattern if | 
|  | 133 | +     the struct or enum has `#[derive(PartialEq, Eq)]`"][36891] | 
|  | 134 | +  - ["lifetimes or labels named `'_` were erroneously allowed"][36892] | 
|  | 135 | +* [Prohibit patterns in trait methods without bodies][37378] | 
|  | 136 | +* [The atomic `Ordering` enum may not be matched exhaustively][37351] | 
|  | 137 | +* [Future-proofing `#[no_link]` breaks some obscure cases][37247] | 
|  | 138 | +* [The `$crate` macro variable is accepted in fewer locations][37213] | 
|  | 139 | +* [Impls specifying extra region requirements beyond the trait | 
|  | 140 | +  they implement are rejected][37167] | 
|  | 141 | +* [Enums may not be unsized][37111]. Unsized enums are intended to | 
|  | 142 | +  work but never have. For now they are forbidden. | 
|  | 143 | +* [Enforce the shadowing restrictions from RFC 1560 for today's macros][36767] | 
|  | 144 | + | 
|  | 145 | +[tier 2]: https://forge.rust-lang.org/platform-support.html | 
|  | 146 | +[1.14rustup]: https://internals.rust-lang.org/t/beta-testing-rustup-rs/3316/204 | 
|  | 147 | +[1.14wasm]: https://users.rust-lang.org/t/compiling-to-the-web-with-rust-and-emscripten/7627 | 
|  | 148 | +[36430]: https://github.com/rust-lang/rust/pull/36430 | 
|  | 149 | +[36595]: https://github.com/rust-lang/rust/pull/36595 | 
|  | 150 | +[36595]: https://github.com/rust-lang/rust/pull/36595 | 
|  | 151 | +[36692]: https://github.com/rust-lang/rust/pull/36692 | 
|  | 152 | +[36767]: https://github.com/rust-lang/rust/pull/36767 | 
|  | 153 | +[36794]: https://github.com/rust-lang/rust/pull/36794 | 
|  | 154 | +[36798]: https://github.com/rust-lang/rust/pull/36798 | 
|  | 155 | +[36819]: https://github.com/rust-lang/rust/pull/36819 | 
|  | 156 | +[36822]: https://github.com/rust-lang/rust/pull/36822 | 
|  | 157 | +[36825]: https://github.com/rust-lang/rust/pull/36825 | 
|  | 158 | +[36843]: https://github.com/rust-lang/rust/pull/36843 | 
|  | 159 | +[36880]: https://github.com/rust-lang/rust/pull/36880 | 
|  | 160 | +[36886]: https://github.com/rust-lang/rust/issues/36886 | 
|  | 161 | +[36887]: https://github.com/rust-lang/rust/issues/36887 | 
|  | 162 | +[36888]: https://github.com/rust-lang/rust/issues/36888 | 
|  | 163 | +[36889]: https://github.com/rust-lang/rust/issues/36889 | 
|  | 164 | +[36890]: https://github.com/rust-lang/rust/issues/36890 | 
|  | 165 | +[36891]: https://github.com/rust-lang/rust/issues/36891 | 
|  | 166 | +[36892]: https://github.com/rust-lang/rust/issues/36892 | 
|  | 167 | +[36894]: https://github.com/rust-lang/rust/pull/36894 | 
|  | 168 | +[36917]: https://github.com/rust-lang/rust/pull/36917 | 
|  | 169 | +[36993]: https://github.com/rust-lang/rust/pull/36993 | 
|  | 170 | +[37037]: https://github.com/rust-lang/rust/pull/37037 | 
|  | 171 | +[37064]: https://github.com/rust-lang/rust/pull/37064 | 
|  | 172 | +[37094]: https://github.com/rust-lang/rust/pull/37094 | 
|  | 173 | +[37108]: https://github.com/rust-lang/rust/pull/37108 | 
|  | 174 | +[37111]: https://github.com/rust-lang/rust/pull/37111 | 
|  | 175 | +[37161]: https://github.com/rust-lang/rust/pull/37161 | 
|  | 176 | +[37162]: https://github.com/rust-lang/rust/pull/37162 | 
|  | 177 | +[37167]: https://github.com/rust-lang/rust/pull/37167 | 
|  | 178 | +[37178]: https://github.com/rust-lang/rust/pull/37178 | 
|  | 179 | +[37200]: https://github.com/rust-lang/rust/pull/37200 | 
|  | 180 | +[37213]: https://github.com/rust-lang/rust/pull/37213 | 
|  | 181 | +[37221]: https://github.com/rust-lang/rust/pull/37221 | 
|  | 182 | +[37224]: https://github.com/rust-lang/rust/pull/37224 | 
|  | 183 | +[37230]: https://github.com/rust-lang/rust/pull/37230 | 
|  | 184 | +[37231]: https://github.com/rust-lang/rust/pull/37231 | 
|  | 185 | +[37247]: https://github.com/rust-lang/rust/pull/37247 | 
|  | 186 | +[37267]: https://github.com/rust-lang/rust/pull/37267 | 
|  | 187 | +[37270]: https://github.com/rust-lang/rust/pull/37270 | 
|  | 188 | +[37273]: https://github.com/rust-lang/rust/pull/37273 | 
|  | 189 | +[37280]: https://github.com/rust-lang/rust/pull/37280 | 
|  | 190 | +[37298]: https://github.com/rust-lang/rust/pull/37298 | 
|  | 191 | +[37306]: https://github.com/rust-lang/rust/pull/37306 | 
|  | 192 | +[37310]: https://github.com/rust-lang/rust/pull/37310 | 
|  | 193 | +[37312]: https://github.com/rust-lang/rust/pull/37312 | 
|  | 194 | +[37313]: https://github.com/rust-lang/rust/pull/37313 | 
|  | 195 | +[37315]: https://github.com/rust-lang/rust/pull/37315 | 
|  | 196 | +[37318]: https://github.com/rust-lang/rust/pull/37318 | 
|  | 197 | +[37322]: https://github.com/rust-lang/rust/pull/37322 | 
|  | 198 | +[37326]: https://github.com/rust-lang/rust/pull/37326 | 
|  | 199 | +[37351]: https://github.com/rust-lang/rust/pull/37351 | 
|  | 200 | +[37356]: https://github.com/rust-lang/rust/pull/37356 | 
|  | 201 | +[37367]: https://github.com/rust-lang/rust/pull/37367 | 
|  | 202 | +[37373]: https://github.com/rust-lang/rust/pull/37373 | 
|  | 203 | +[37378]: https://github.com/rust-lang/rust/pull/37378 | 
|  | 204 | +[37389]: https://github.com/rust-lang/rust/pull/37389 | 
|  | 205 | +[37392]: https://github.com/rust-lang/rust/pull/37392 | 
|  | 206 | +[37427]: https://github.com/rust-lang/rust/pull/37427 | 
|  | 207 | +[37439]: https://github.com/rust-lang/rust/pull/37439 | 
|  | 208 | +[37445]: https://github.com/rust-lang/rust/pull/37445 | 
|  | 209 | +[37470]: https://github.com/rust-lang/rust/pull/37470 | 
|  | 210 | +[37569]: https://github.com/rust-lang/rust/pull/37569 | 
|  | 211 | +[RFC 1492]: https://github.com/rust-lang/rfcs/blob/master/text/1492-dotdot-in-patterns.md | 
|  | 212 | +[cargo/3175]: https://github.com/rust-lang/cargo/pull/3175 | 
|  | 213 | +[cargo/3220]: https://github.com/rust-lang/cargo/pull/3220 | 
|  | 214 | +[cargo/3243]: https://github.com/rust-lang/cargo/pull/3243 | 
|  | 215 | +[cargo/3249]: https://github.com/rust-lang/cargo/pull/3249 | 
|  | 216 | +[cargo/3259]: https://github.com/rust-lang/cargo/pull/3259 | 
|  | 217 | +[cargo/3280]: https://github.com/rust-lang/cargo/pull/3280 | 
|  | 218 | + | 
|  | 219 | + | 
| 1 | 220 | Version 1.13.0 (2016-11-10) | 
| 2 | 221 | =========================== | 
| 3 | 222 | 
 | 
|  | 
0 commit comments