X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=RELEASES.md;h=0965e37574d074fda69042077ab01df5166b891a;hb=c331a9293a8a22f5111bdcdaf50b3dd5ac0838ce;hp=df319f66a7a1758e1befdbcf16f5b3f15be2c7b8;hpb=02dbf24f2536f146b1ddf6422be4f0bf067382f3;p=rust.git diff --git a/RELEASES.md b/RELEASES.md index df319f66a7a..0965e37574d 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -11,23 +11,25 @@ Compiler - [Enable combining `+crt-static` and `relocation-model=pic` on `x86_64-unknown-linux-gnu`][86374] - [Fixes wrong `unreachable_pub` lints on nested and glob public reexport][87487] - [Stabilize `-Z instrument-coverage` as `-C instrument-coverage`][90132] -- [Implement raw-dylib support for windows-gnu][90782] - [Stabilize `-Z print-link-args` as `--print link-args`][91606] -- [`mips64-openwrt-linux-musl`: Add Tier 3 target][92300] -- [Add new target `armv7-unknown-linux-uclibceabi` (softfloat)][92383] +- [Add new Tier 3 target `mips64-openwrt-linux-musl`\*][92300] +- [Add new Tier 3 target `armv7-unknown-linux-uclibceabi` (softfloat)\*][92383] - [Fix invalid removal of newlines from doc comments][92357] - [Add kernel target for RustyHermit][92670] - [Deny mixing bin crate type with lib crate types][92933] - [Make rustc use `RUST_BACKTRACE=full` by default][93566] - [Upgrade to LLVM 14][93577] +\* Refer to Rust's [platform support page][platform-support-doc] for more + information on Rust's tiered platform support. + Libraries --------- - [Guarantee call order for `sort_by_cached_key`][89621] - [Improve `Duration::try_from_secs_f32`/`f64` accuracy by directly processing exponent and mantissa][90247] -- [Switch all libraries to the 2021 edition][92068] -- [Make `Instant::{duration_since, elapsed, sub}` saturating and remove workarounds][89926] -- [Change PhantomData type for `BuildHasherDefault` (and more)][92630] +- [Make `Instant::{duration_since, elapsed, sub}` saturating][89926] +- [Remove non-monotonic clocks workarounds in `Instant::now`][89926] +- [Make `BuildHasherDefault`, `iter::Empty` and `future::Pending` covariant][92630] Stabilized APIs --------------- @@ -59,23 +61,32 @@ Stabilized APIs Cargo ----- -- [Print executable name on `cargo test --no-run`.][cargo/9959] - [Port cargo from `toml-rs` to `toml_edit`][cargo/10086] - [Stabilize `-Ztimings` as `--timings`][cargo/10245] +- [Stabilize namespaced and weak dependency features.][cargo/10269] - [Accept more `cargo:rustc-link-arg-*` types from build script output.][cargo/10274] - [cargo-new should not add ignore rule on Cargo.lock inside subdirs][cargo/10379] Misc ---- +- [Ship docs on Tier 2 platforms by reusing the closest Tier 1 platform docs][92800] - [Drop rustc-docs from complete profile][93742] - [bootstrap: tidy up flag handling for llvm build][93918] Compatibility Notes ------------------- - [Remove compiler-rt linking hack on Android][83822] -- [Remove deprecated LLVM-style inline assembly][92816] -- [Reject unsupported naked functions][93153] -- [Remove deprecated `--host` arg for cargo search and publish cmds][cargo/10327] +- [Mitigations for platforms with non-monotonic clocks have been removed from + `Instant::now`][89926]. On platforms that don't provide monotonic clocks, an + instant is not guaranteed to be greater than an earlier instant anymore. +- [`Instant::{duration_since, elapsed, sub}` do not panic anymore on underflow, + saturating to `0` instead][89926]. In the real world the panic happened mostly + on platforms with buggy monotonic clock implementations rather than catching + programming errors like reversing the start and end times. Such programming + errors will now results in `0` rather than a panic. +- In a future release we're planning to increase the baseline requirements for + the Linux kernel to version 3.2, and for glibc to version 2.17. We'd love + your feedback in [PR #95026][95026]. Internal Changes ---------------- @@ -84,7 +95,7 @@ These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools. - +- [Switch all libraries to the 2021 edition][92068] [83822]: https://github.com/rust-lang/rust/pull/83822 [86374]: https://github.com/rust-lang/rust/pull/86374 @@ -93,7 +104,6 @@ and related tools. [89926]: https://github.com/rust-lang/rust/pull/89926 [90132]: https://github.com/rust-lang/rust/pull/90132 [90247]: https://github.com/rust-lang/rust/pull/90247 -[90782]: https://github.com/rust-lang/rust/pull/90782 [91606]: https://github.com/rust-lang/rust/pull/91606 [92068]: https://github.com/rust-lang/rust/pull/92068 [92300]: https://github.com/rust-lang/rust/pull/92300 @@ -101,22 +111,21 @@ and related tools. [92383]: https://github.com/rust-lang/rust/pull/92383 [92630]: https://github.com/rust-lang/rust/pull/92630 [92670]: https://github.com/rust-lang/rust/pull/92670 -[92816]: https://github.com/rust-lang/rust/pull/92816 +[92800]: https://github.com/rust-lang/rust/pull/92800 [92933]: https://github.com/rust-lang/rust/pull/92933 -[93153]: https://github.com/rust-lang/rust/pull/93153 [93566]: https://github.com/rust-lang/rust/pull/93566 [93577]: https://github.com/rust-lang/rust/pull/93577 [93658]: https://github.com/rust-lang/rust/pull/93658 [93742]: https://github.com/rust-lang/rust/pull/93742 [93824]: https://github.com/rust-lang/rust/pull/93824 [93918]: https://github.com/rust-lang/rust/pull/93918 +[95026]: https://github.com/rust-lang/rust/pull/95026 -[cargo/9959]: https://github.com/rust-lang/cargo/pull/9959 [cargo/10086]: https://github.com/rust-lang/cargo/pull/10086 [cargo/10245]: https://github.com/rust-lang/cargo/pull/10245 +[cargo/10269]: https://github.com/rust-lang/cargo/pull/10269 [cargo/10274]: https://github.com/rust-lang/cargo/pull/10274 [cargo/10379]: https://github.com/rust-lang/cargo/pull/10379 -[cargo/10327]: https://github.com/rust-lang/cargo/pull/10327 [arc_new_cyclic]: https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_cyclic [rc_new_cyclic]: https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_cyclic