diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2020-10-05 12:11:51 -0400 |
|---|---|---|
| committer | Mark Rousskov <mark.simulacrum@gmail.com> | 2020-10-05 12:11:51 -0400 |
| commit | 9eb4039c29bde50c5e8e2fc61ee7b5336492db22 (patch) | |
| tree | ba27937f8b2cf2ee07921b44ec2fbd619657288c | |
| parent | d6646f64790018719caebeafd352a92adfa1d75a (diff) | |
| download | rust-9eb4039c29bde50c5e8e2fc61ee7b5336492db22.tar.gz rust-9eb4039c29bde50c5e8e2fc61ee7b5336492db22.zip | |
Cherry-pick release notes from master
This also adjusts the release notes to move rustc-docs to internal changes. Note that issue 76980 isn't included as it is unclear what the exact cause there is, so explaining it is difficult.
| -rw-r--r-- | RELEASES.md | 139 |
1 files changed, 137 insertions, 2 deletions
diff --git a/RELEASES.md b/RELEASES.md index 37aed773545..315f7e65efd 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -1,3 +1,138 @@ +Version 1.47.0 (2020-10-08) +========================== + +Language +-------- +- [Closures will now warn when not used.][74869] + +Compiler +-------- +- [Stabilized the `-C control-flow-guard` codegen option][73893], which enables + [Control Flow Guard][1.47.0-cfg] for Windows platforms, and is ignored on other + platforms. +- [Upgraded to LLVM 11.][73526] +- [Added tier 3\* support for the `thumbv4t-none-eabi` target.][74419] +- [Upgrade the FreeBSD toolchain to version 11.4][75204] +- [`RUST_BACKTRACE`'s output is now more compact.][75048] + +\* Refer to Rust's [platform support page][forge-platform-support] for more +information on Rust's tiered platform support. + +Libraries +--------- +- [`CStr` now implements `Index<RangeFrom<usize>>`.][74021] +- [Traits in `std`/`core` are now implemented for arrays of any length, not just + those of length less than 33.][74060] +- [`ops::RangeFull` and `ops::Range` now implement Default.][73197] +- [`panic::Location` now implements `Copy`, `Clone`, `Eq`, `Hash`, `Ord`, + `PartialEq`, and `PartialOrd`.][73583] + +Stabilized APIs +--------------- +- [`Ident::new_raw`] +- [`Range::is_empty`] +- [`RangeInclusive::is_empty`] +- [`Result::as_deref`] +- [`Result::as_deref_mut`] +- [`Vec::leak`] +- [`pointer::offset_from`] +- [`f32::TAU`] +- [`f64::TAU`] + +The following previously stable APIs have now been made const. + +- [The `new` method for all `NonZero` integers.][73858] +- [The `checked_add`,`checked_sub`,`checked_mul`,`checked_neg`, `checked_shl`, + `checked_shr`, `saturating_add`, `saturating_sub`, and `saturating_mul` + methods for all integers.][73858] +- [The `checked_abs`, `saturating_abs`, `saturating_neg`, and `signum` for all + signed integers.][73858] +- [The `is_ascii_alphabetic`, `is_ascii_uppercase`, `is_ascii_lowercase`, + `is_ascii_alphanumeric`, `is_ascii_digit`, `is_ascii_hexdigit`, + `is_ascii_punctuation`, `is_ascii_graphic`, `is_ascii_whitespace`, and + `is_ascii_control` methods for `char` and `u8`.][73858] + +Cargo +----- +- [`build-dependencies` are now built with opt-level 0 by default.][cargo/8500] + You can override this by setting the following in your `Cargo.toml`. + ```toml + [profile.release.build-override] + opt-level = 3 + ``` +- [`cargo-help` will now display man pages for commands rather just the + `--help` text.][cargo/8456] +- [`cargo-metadata` now emits a `test` field indicating if a target has + tests enabled.][cargo/8478] +- [`workspace.default-members` now respects `workspace.exclude`.][cargo/8485] +- [`cargo-publish` will now use an alternative registry by default if it's the + only registry specified in `package.publish`.][cargo/8571] + +Misc +---- +- [Added a help button beside Rustdoc's searchbar that explains rustdoc's + type based search.][75366] +- [Added the Ayu theme to rustdoc.][71237] + +Compatibility Notes +------------------- +- [Bumped the minimum supported Emscripten version to 1.39.20.][75716] +- [Fixed a regression parsing `{} && false` in tail expressions.][74650] +- [Added changes to how proc-macros are expanded in `macro_rules!` that should + help to preserve more span information.][73084] These changes may cause + compiliation errors if your macro was unhygenic or didn't correctly handle + `Delimiter::None`. +- [Moved support for the CloudABI target to tier 3.][75568] +- [`linux-gnu` targets now require minimum kernel 2.6.32 and glibc 2.11.][74163] + +Internal Only +-------- +- [Improved default settings for bootstrapping in `x.py`.][73964] You can read details about this change in the ["Changes to `x.py` defaults"](https://blog.rust-lang.org/inside-rust/2020/08/30/changes-to-x-py-defaults.html) post on the Inside Rust blog. +- [Added the `rustc-docs` component.][75560] This allows you to install + and read the documentation for the compiler internal APIs. (Currently only + available for `x86_64-unknown-linux-gnu`.) + +[1.47.0-cfg]: https://docs.microsoft.com/en-us/windows/win32/secbp/control-flow-guard +[75048]: https://github.com/rust-lang/rust/pull/75048/ +[74163]: https://github.com/rust-lang/rust/pull/74163/ +[71237]: https://github.com/rust-lang/rust/pull/71237/ +[74869]: https://github.com/rust-lang/rust/pull/74869/ +[73858]: https://github.com/rust-lang/rust/pull/73858/ +[75716]: https://github.com/rust-lang/rust/pull/75716/ +[75908]: https://github.com/rust-lang/rust/pull/75908/ +[75516]: https://github.com/rust-lang/rust/pull/75516/ +[75560]: https://github.com/rust-lang/rust/pull/75560/ +[75568]: https://github.com/rust-lang/rust/pull/75568/ +[75366]: https://github.com/rust-lang/rust/pull/75366/ +[75204]: https://github.com/rust-lang/rust/pull/75204/ +[74650]: https://github.com/rust-lang/rust/pull/74650/ +[74419]: https://github.com/rust-lang/rust/pull/74419/ +[73964]: https://github.com/rust-lang/rust/pull/73964/ +[74021]: https://github.com/rust-lang/rust/pull/74021/ +[74060]: https://github.com/rust-lang/rust/pull/74060/ +[73893]: https://github.com/rust-lang/rust/pull/73893/ +[73526]: https://github.com/rust-lang/rust/pull/73526/ +[73583]: https://github.com/rust-lang/rust/pull/73583/ +[73084]: https://github.com/rust-lang/rust/pull/73084/ +[73197]: https://github.com/rust-lang/rust/pull/73197/ +[72488]: https://github.com/rust-lang/rust/pull/72488/ +[cargo/8456]: https://github.com/rust-lang/cargo/pull/8456/ +[cargo/8478]: https://github.com/rust-lang/cargo/pull/8478/ +[cargo/8485]: https://github.com/rust-lang/cargo/pull/8485/ +[cargo/8500]: https://github.com/rust-lang/cargo/pull/8500/ +[cargo/8571]: https://github.com/rust-lang/cargo/pull/8571/ +[`Ident::new_raw`]: https://doc.rust-lang.org/nightly/proc_macro/struct.Ident.html#method.new_raw +[`Range::is_empty`]: https://doc.rust-lang.org/nightly/std/ops/struct.Range.html#method.is_empty +[`RangeInclusive::is_empty`]: https://doc.rust-lang.org/nightly/std/ops/struct.RangeInclusive.html#method.is_empty +[`Result::as_deref_mut`]: https://doc.rust-lang.org/nightly/std/result/enum.Result.html#method.as_deref_mut +[`Result::as_deref`]: https://doc.rust-lang.org/nightly/std/result/enum.Result.html#method.as_deref +[`TypeId::of`]: https://doc.rust-lang.org/nightly/std/any/struct.TypeId.html#method.of +[`Vec::leak`]: https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#method.leak +[`f32::TAU`]: https://doc.rust-lang.org/nightly/std/f32/consts/constant.TAU.html +[`f64::TAU`]: https://doc.rust-lang.org/nightly/std/f64/consts/constant.TAU.html +[`pointer::offset_from`]: https://doc.rust-lang.org/nightly/std/primitive.pointer.html#method.offset_from + + Version 1.46.0 (2020-08-27) ========================== @@ -10,7 +145,7 @@ Language function's caller's location information for panic messages.][72445] - [Recursively indexing into tuples no longer needs parentheses.][71322] E.g. `x.0.0` over `(x.0).0`. -- [`mem::transmute` can now be used in static and constants.][72920] **Note** +- [`mem::transmute` can now be used in statics and constants.][72920] **Note** You currently can't use `mem::transmute` in constant functions. Compiler @@ -51,7 +186,7 @@ Compatibility Notes ------------------- - [The target configuration option `abi_blacklist` has been renamed to `unsupported_abis`.][74150] The old name will still continue to work. -- [Rustc will now warn if you have a C-like enum that implements `Drop`.][72331] +- [Rustc will now warn if you cast a C-like enum that implements `Drop`.][72331] This was previously accepted but will become a hard error in a future release. - [Rustc will fail to compile if you have a struct with `#[repr(i128)]` or `#[repr(u128)]`.][74109] This representation is currently only |
