| 
 | 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