1.14 release notes
This commit is contained in:
parent
d250169cb5
commit
09a9859c00
1 changed files with 200 additions and 0 deletions
200
RELEASES.md
200
RELEASES.md
|
@ -1,3 +1,203 @@
|
|||
Version 1.14.0 (2016-12-22)
|
||||
===========================
|
||||
|
||||
Language
|
||||
--------
|
||||
|
||||
* [`..` matches multiple tuple fields in enum variants, structs
|
||||
and tuples][36843]. [RFC 1492].
|
||||
* [Safe `fn` items can be coerced to `unsafe fn` pointers][37389]
|
||||
* [`use *` and `use ::*` both glob-import from the crate root][37367]
|
||||
* [It's now possible to call a `Vec<Box<Fn()>>` without explicit
|
||||
dereferencing][36822]
|
||||
|
||||
Compiler
|
||||
--------
|
||||
|
||||
* [Mark enums with non-zero discriminant as non-zero][37224]
|
||||
* [Lower-case `static mut` names are linted like other
|
||||
statics and consts][37162]
|
||||
* [Fix ICE on some macros in const integer positions
|
||||
(e.g. `[u8; m!()]`)][36819]
|
||||
* [Improve error message and snippet for "did you mean `x`"][36798]
|
||||
* [Add a panic-strategy field to the target specification][36794]
|
||||
* [Include LLVM version in `--version --verbose`][37200]
|
||||
|
||||
Compile-time Optimizations
|
||||
--------------------------
|
||||
|
||||
* [Improve macro expansion performance][37569]
|
||||
* [Shrink `Expr_::ExprInlineAsm`][37445]
|
||||
* [Replace all uses of SHA-256 with BLAKE2b][37439]
|
||||
* [Reduce the number of bytes hashed by `IchHasher`][37427]
|
||||
* [Avoid more allocations when compiling html5ever][37373]
|
||||
* [Use `SmallVector` in `CombineFields::instantiate`][37322]
|
||||
* [Avoid some allocations in the macro parser][37318]
|
||||
* [Use a faster deflate setting][37298]
|
||||
* [Add `ArrayVec` and `AccumulateVec` to reduce heap allocations
|
||||
during interning of slices][37270]
|
||||
* [Optimize `write_metadata`][37267]
|
||||
* [Don't process obligation forest cycles when stalled][37231]
|
||||
* [Avoid many `CrateConfig` clones][37161]
|
||||
* [Optimize `Substs::super_fold_with`][37108]
|
||||
* [Optimize `ObligationForest`'s `NodeState` handling][36993]
|
||||
* [Speed up `plug_leaks`][36917]
|
||||
|
||||
Libraries
|
||||
---------
|
||||
|
||||
* [`println!()`, with no arguments, prints newline][36825].
|
||||
Previously, an empty string was required to achieve the same.
|
||||
* [`Wrapping` impls standard binary and unary operators, as well as
|
||||
the `Sum` and `Product` iterators][37356]
|
||||
* [Implement `From<Cow<str>> for String` and `From<Cow<[T]>> for
|
||||
Vec<T>`][37326]
|
||||
* [Improve `fold` performance for `chain`, `cloned`, `map`, and
|
||||
`VecDeque` iterators][37315]
|
||||
* [Improve `SipHasher` performance on small values][37312]
|
||||
* [Add Iterator trait TrustedLen to enable better FromIterator /
|
||||
Extend][37306]
|
||||
* [Expand `.zip()` specialization to `.map()` and `.cloned()`][37230]
|
||||
* [`ReadDir` implements `Debug`][37221]
|
||||
* [Implement `RefUnwindSafe` for atomic types][37178]
|
||||
* [Specialize `Vec::extend` to `Vec::extend_from_slice`][37094]
|
||||
* [Avoid allocations in `Decoder::read_str`][37064]
|
||||
* [`io::Error` implements `From<io::ErrorKind>`][37037]
|
||||
* [Impl `Debug` for raw pointers to unsized data][36880]
|
||||
* [Don't reuse `HashMap` random seeds][37470]
|
||||
* [The internal memory layout of `HashMap` is more cache-friendly, for
|
||||
significant improvements in some operations][36692]
|
||||
* [`HashMap` uses less memory on 32-bit architectures][36595]
|
||||
* [Impl `Add<{str, Cow<str>}>` for `Cow<str>`][36595]
|
||||
|
||||
Cargo
|
||||
-----
|
||||
|
||||
* [Expose rustc cfg values to build scripts][cargo/3243]
|
||||
* [Allow cargo to work with read-only `CARGO_HOME`][cargo/3259]
|
||||
* [Fix passing --features when testing multiple packages][cargo/3280]
|
||||
* [Use a single profile set per workspace][cargo/3249]
|
||||
* [Load `replace` sections from lock files][cargo/3220]
|
||||
* [Ignore `panic` configuration for test/bench profiles][cargo/3175]
|
||||
|
||||
Tooling
|
||||
-------
|
||||
|
||||
* [rustup is the recommended Rust installation method][1.14rustup]
|
||||
* This release includes [experimental support for WebAssembly][1.14wasm]
|
||||
* This release includes builds for ARM Linux running MUSL libc. Add the
|
||||
`arm-unknown-linux-musleabi`, `arm-unknown-linux-musleabihf`, and
|
||||
`armv7-unknown-linux-musleabihf` targets via `rustup target add`.
|
||||
* rustup no longer installs documentation by default. Run `rustup
|
||||
component add rust-docs` to install.
|
||||
* [Fix line stepping in debugger][37310]
|
||||
* [Enable line number debuginfo in releases][37280]
|
||||
|
||||
Misc
|
||||
----
|
||||
|
||||
* [Disable jemalloc on aarch64/powerpc][37392]
|
||||
* [Add support for Fuchsia OS][37313]
|
||||
* [Detect local-rebuild by only MAJOR.MINOR version][37273]
|
||||
|
||||
Compatibility Notes
|
||||
-------------------
|
||||
|
||||
* [A number of forward-compatibility lints used by the compiler
|
||||
to gradually introduce language changes have been converted
|
||||
to deny by default][36894]:
|
||||
- ["use of inaccessible extern crate erroneously allowed"][36886]
|
||||
- ["type parameter default erroneously allowed in invalid location"][36887]
|
||||
- ["detects super or self keywords at the beginning of global path"][36888]
|
||||
- ["two overlapping inherent impls define an item with the same name
|
||||
were erroneously allowed"][36889]
|
||||
- ["floating-point constants cannot be used in patterns"][36890]
|
||||
- ["constants of struct or enum type can only be used in a pattern if
|
||||
the struct or enum has `#[derive(PartialEq, Eq)]`"][36891]
|
||||
- ["lifetimes or labels named `'_` were erroneously allowed"][36892]
|
||||
* [Prohibit patterns in trait methods without bodies][37378]
|
||||
* [The atomic `Ordering` enum may not be matched exhaustively][37351]
|
||||
* [Future-proofing `#[no_link]` breaks some obscure cases][37247]
|
||||
* [The `$crate` macro variable is accepted in fewer locations][37213]
|
||||
* [Impls specifying extra region requirements beyond the trait
|
||||
they implement are rejected][37167]
|
||||
* [Enums may not be unsized][37111]. Unsized enums are intended to
|
||||
work but never have. For now they are forbidden.
|
||||
* [Enforce the shadowing restrictions from RFC 1560 for today's macros][36767]
|
||||
|
||||
[1.14rustup]: https://internals.rust-lang.org/t/beta-testing-rustup-rs/3316/204
|
||||
[1.14wasm]: https://users.rust-lang.org/t/compiling-to-the-web-with-rust-and-emscripten/7627
|
||||
[36595]: https://github.com/rust-lang/rust/pull/36595
|
||||
[36595]: https://github.com/rust-lang/rust/pull/36595
|
||||
[36692]: https://github.com/rust-lang/rust/pull/36692
|
||||
[36767]: https://github.com/rust-lang/rust/pull/36767
|
||||
[36794]: https://github.com/rust-lang/rust/pull/36794
|
||||
[36798]: https://github.com/rust-lang/rust/pull/36798
|
||||
[36819]: https://github.com/rust-lang/rust/pull/36819
|
||||
[36822]: https://github.com/rust-lang/rust/pull/36822
|
||||
[36825]: https://github.com/rust-lang/rust/pull/36825
|
||||
[36843]: https://github.com/rust-lang/rust/pull/36843
|
||||
[36880]: https://github.com/rust-lang/rust/pull/36880
|
||||
[36886]: https://github.com/rust-lang/rust/issues/36886
|
||||
[36887]: https://github.com/rust-lang/rust/issues/36887
|
||||
[36888]: https://github.com/rust-lang/rust/issues/36888
|
||||
[36889]: https://github.com/rust-lang/rust/issues/36889
|
||||
[36890]: https://github.com/rust-lang/rust/issues/36890
|
||||
[36891]: https://github.com/rust-lang/rust/issues/36891
|
||||
[36892]: https://github.com/rust-lang/rust/issues/36892
|
||||
[36894]: https://github.com/rust-lang/rust/pull/36894
|
||||
[36917]: https://github.com/rust-lang/rust/pull/36917
|
||||
[36993]: https://github.com/rust-lang/rust/pull/36993
|
||||
[37037]: https://github.com/rust-lang/rust/pull/37037
|
||||
[37064]: https://github.com/rust-lang/rust/pull/37064
|
||||
[37094]: https://github.com/rust-lang/rust/pull/37094
|
||||
[37108]: https://github.com/rust-lang/rust/pull/37108
|
||||
[37111]: https://github.com/rust-lang/rust/pull/37111
|
||||
[37161]: https://github.com/rust-lang/rust/pull/37161
|
||||
[37162]: https://github.com/rust-lang/rust/pull/37162
|
||||
[37167]: https://github.com/rust-lang/rust/pull/37167
|
||||
[37178]: https://github.com/rust-lang/rust/pull/37178
|
||||
[37200]: https://github.com/rust-lang/rust/pull/37200
|
||||
[37213]: https://github.com/rust-lang/rust/pull/37213
|
||||
[37221]: https://github.com/rust-lang/rust/pull/37221
|
||||
[37224]: https://github.com/rust-lang/rust/pull/37224
|
||||
[37230]: https://github.com/rust-lang/rust/pull/37230
|
||||
[37231]: https://github.com/rust-lang/rust/pull/37231
|
||||
[37247]: https://github.com/rust-lang/rust/pull/37247
|
||||
[37267]: https://github.com/rust-lang/rust/pull/37267
|
||||
[37270]: https://github.com/rust-lang/rust/pull/37270
|
||||
[37273]: https://github.com/rust-lang/rust/pull/37273
|
||||
[37280]: https://github.com/rust-lang/rust/pull/37280
|
||||
[37298]: https://github.com/rust-lang/rust/pull/37298
|
||||
[37306]: https://github.com/rust-lang/rust/pull/37306
|
||||
[37310]: https://github.com/rust-lang/rust/pull/37310
|
||||
[37312]: https://github.com/rust-lang/rust/pull/37312
|
||||
[37313]: https://github.com/rust-lang/rust/pull/37313
|
||||
[37315]: https://github.com/rust-lang/rust/pull/37315
|
||||
[37318]: https://github.com/rust-lang/rust/pull/37318
|
||||
[37322]: https://github.com/rust-lang/rust/pull/37322
|
||||
[37326]: https://github.com/rust-lang/rust/pull/37326
|
||||
[37351]: https://github.com/rust-lang/rust/pull/37351
|
||||
[37356]: https://github.com/rust-lang/rust/pull/37356
|
||||
[37367]: https://github.com/rust-lang/rust/pull/37367
|
||||
[37373]: https://github.com/rust-lang/rust/pull/37373
|
||||
[37378]: https://github.com/rust-lang/rust/pull/37378
|
||||
[37389]: https://github.com/rust-lang/rust/pull/37389
|
||||
[37392]: https://github.com/rust-lang/rust/pull/37392
|
||||
[37427]: https://github.com/rust-lang/rust/pull/37427
|
||||
[37439]: https://github.com/rust-lang/rust/pull/37439
|
||||
[37445]: https://github.com/rust-lang/rust/pull/37445
|
||||
[37470]: https://github.com/rust-lang/rust/pull/37470
|
||||
[37569]: https://github.com/rust-lang/rust/pull/37569
|
||||
[RFC 1492]: https://github.com/rust-lang/rfcs/blob/master/text/1492-dotdot-in-patterns.md
|
||||
[cargo/3175]: https://github.com/rust-lang/cargo/pull/3175
|
||||
[cargo/3220]: https://github.com/rust-lang/cargo/pull/3220
|
||||
[cargo/3243]: https://github.com/rust-lang/cargo/pull/3243
|
||||
[cargo/3249]: https://github.com/rust-lang/cargo/pull/3249
|
||||
[cargo/3259]: https://github.com/rust-lang/cargo/pull/3259
|
||||
[cargo/3280]: https://github.com/rust-lang/cargo/pull/3280
|
||||
|
||||
|
||||
Version 1.13.0 (2016-11-10)
|
||||
===========================
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue