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