Closed renovate[bot] closed 2 months ago
We're currently pinned to rust v1.64 due to nixos https://github.com/oxidecomputer/offline-keystore-os/issues/16. This should be held back until we have line-of-sight to getting that upgraded.
We're manually updating the pinned rust version in lock-step w/ OKOS updates.
Because you closed this PR without merging, Renovate will ignore this update (1.81.0
). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps
array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.
This PR contains the following updates:
1.69.0
->1.81.0
Release Notes
rust-lang/rust (rust)
### [`v1.81.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1810-2024-09-05) [Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.80.1...1.81.0) \========================== ## Language - [Abort on uncaught panics in `extern "C"` functions.](https://redirect.github.com/rust-lang/rust/pull/116088/) - [Fix ambiguous cases of multiple `&` in elided self lifetimes.](https://redirect.github.com/rust-lang/rust/pull/117967/) - [Stabilize `#[expect]` for lints (RFC 2383),](https://redirect.github.com/rust-lang/rust/pull/120924/) like `#[allow]` with a warning if the lint is *not* fulfilled. - [Change method resolution to constrain hidden types instead of rejecting method candidates.](https://redirect.github.com/rust-lang/rust/pull/123962/) - [Bump `elided_lifetimes_in_associated_constant` to deny.](https://redirect.github.com/rust-lang/rust/pull/124211/) - [`offset_from`: always allow pointers to point to the same address.](https://redirect.github.com/rust-lang/rust/pull/124921/) - [Allow constraining opaque types during subtyping in the trait system.](https://redirect.github.com/rust-lang/rust/pull/125447/) - [Allow constraining opaque types during various unsizing casts.](https://redirect.github.com/rust-lang/rust/pull/125610/) - [Deny keyword lifetimes pre-expansion.](https://redirect.github.com/rust-lang/rust/pull/126762/) ## Compiler - [Make casts of pointers to trait objects stricter.](https://redirect.github.com/rust-lang/rust/pull/120248/) - [Check alias args for well-formedness even if they have escaping bound vars.](https://redirect.github.com/rust-lang/rust/pull/123737/) - [Deprecate no-op codegen option `-Cinline-threshold=...`.](https://redirect.github.com/rust-lang/rust/pull/124712/) - [Re-implement a type-size based limit.](https://redirect.github.com/rust-lang/rust/pull/125507/) - [Properly account for alignment in `transmute` size checks.](https://redirect.github.com/rust-lang/rust/pull/125740/) - [Remove the `box_pointers` lint.](https://redirect.github.com/rust-lang/rust/pull/126018/) - [Ensure the interpreter checks bool/char for validity when they are used in a cast.](https://redirect.github.com/rust-lang/rust/pull/126265/) - [Improve coverage instrumentation for functions containing nested items.](https://redirect.github.com/rust-lang/rust/pull/127199/) - Target changes: - [Add Tier 3 `no_std` Xtensa targets:](https://redirect.github.com/rust-lang/rust/pull/125141/) `xtensa-esp32-none-elf`, `xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf` - [Add Tier 3 `std` Xtensa targets:](https://redirect.github.com/rust-lang/rust/pull/126380/) `xtensa-esp32-espidf`, `xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf` - [Add Tier 3 i686 Redox OS target:](https://redirect.github.com/rust-lang/rust/pull/126192/) `i686-unknown-redox` - [Promote `arm64ec-pc-windows-msvc` to Tier 2.](https://redirect.github.com/rust-lang/rust/pull/126039/) - [Promote `loongarch64-unknown-linux-musl` to Tier 2 with host tools.](https://redirect.github.com/rust-lang/rust/pull/126298/) - [Enable full tools and profiler for LoongArch Linux targets.](https://redirect.github.com/rust-lang/rust/pull/127078/) - [Unconditionally warn on usage of `wasm32-wasi`.](https://redirect.github.com/rust-lang/rust/pull/126662/) (see compatibility note below) - Refer to Rust's \[platform support page]\[platform-support-doc] for more information on Rust's tiered platform support. ## Libraries - [Split core's `PanicInfo` and std's `PanicInfo`.](https://redirect.github.com/rust-lang/rust/pull/115974/) (see compatibility note below) - [Generalize `{Rc,Arc}::make_mut()` to unsized types.](https://redirect.github.com/rust-lang/rust/pull/116113/) - [Replace sort implementations with stable `driftsort` and unstable `ipnsort`.](https://redirect.github.com/rust-lang/rust/pull/124032/) All `slice::sort*` and `slice::select_nth*` methods are expected to see significant performance improvements. See the [research project](https://redirect.github.com/Voultapher/sort-research-rs) for more details. - [Document behavior of `create_dir_all` with respect to empty paths.](https://redirect.github.com/rust-lang/rust/pull/125112/) - [Fix interleaved output in the default panic hook when multiple threads panic simultaneously.](https://redirect.github.com/rust-lang/rust/pull/127397/) ## Stabilized APIs - [`core::error`](https://doc.rust-lang.org/stable/core/error/index.html) - [`hint::assert_unchecked`](https://doc.rust-lang.org/stable/core/hint/fn.assert_unchecked.html) - [`fs::exists`](https://doc.rust-lang.org/stable/std/fs/fn.exists.html) - [`AtomicBool::fetch_not`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.fetch_not) - [`Duration::abs_diff`](https://doc.rust-lang.org/stable/core/time/struct.Duration.html#method.abs_diff) - [`IoSlice::advance`](https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance) - [`IoSlice::advance_slices`](https://doc.rust-lang.org/stable/std/io/struct.IoSlice.html#method.advance_slices) - [`IoSliceMut::advance`](https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance) - [`IoSliceMut::advance_slices`](https://doc.rust-lang.org/stable/std/io/struct.IoSliceMut.html#method.advance_slices) - [`PanicHookInfo`](https://doc.rust-lang.org/stable/std/panic/struct.PanicHookInfo.html) - [`PanicInfo::message`](https://doc.rust-lang.org/stable/core/panic/struct.PanicInfo.html#method.message) - [`PanicMessage`](https://doc.rust-lang.org/stable/core/panic/struct.PanicMessage.html) These APIs are now stable in const contexts: - [`char::from_u32_unchecked`](https://doc.rust-lang.org/stable/core/char/fn.from_u32\_unchecked.html) (function) - [`char::from_u32_unchecked`](https://doc.rust-lang.org/stable/core/primitive.char.html#method.from_u32\_unchecked) (method) - [`CStr::count_bytes`](https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes) - [`CStr::from_ptr`](https://doc.rust-lang.org/stable/core/ffi/c_str/struct.CStr.html#method.from_ptr) ## Cargo - [Generated `.cargo_vcs_info.json` is always included, even when `--allow-dirty` is passed.](https://redirect.github.com/rust-lang/cargo/pull/13960/) - [Disallow `package.license-file` and `package.readme` pointing to non-existent files during packaging.](https://redirect.github.com/rust-lang/cargo/pull/13921/) - [Disallow passing `--release`/`--debug` flag along with the `--profile` flag.](https://redirect.github.com/rust-lang/cargo/pull/13971/) - [Remove `lib.plugin` key support in `Cargo.toml`. Rust plugin support has been deprecated for four years and was removed in 1.75.0.](https://redirect.github.com/rust-lang/cargo/pull/13902/) ## Compatibility Notes - Usage of the `wasm32-wasi` target will now issue a compiler warning and request users switch to the `wasm32-wasip1` target instead. Both targets are the same, `wasm32-wasi` is only being renamed, and this [change to the WASI target](https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-targets.html) is being done to enable removing `wasm32-wasi` in January 2025. - We have renamed `std::panic::PanicInfo` to `std::panic::PanicHookInfo`. The old name will continue to work as an alias, but will result in a deprecation warning starting in Rust 1.82.0. `core::panic::PanicInfo` will remain unchanged, however, as this is now a *different type*. The reason is that these types have different roles: `std::panic::PanicHookInfo` is the argument to the [panic hook](https://doc.rust-lang.org/stable/std/panic/fn.set_hook.html) in std context (where panics can have an arbitrary payload), while `core::panic::PanicInfo` is the argument to the [`#[panic_handler]`](https://doc.rust-lang.org/nomicon/panic-handler.html) in no_std context (where panics always carry a formatted *message*). Separating these types allows us to add more useful methods to these types, such as `std::panic::PanicHookInfo::payload_as_str()` and `core::panic::PanicInfo::message()`. - The new sort implementations may panic if a type's implementation of [`Ord`](https://doc.rust-lang.org/std/cmp/trait.Ord.html) (or the given comparison function) does not implement a [total order](https://en.wikipedia.org/wiki/Total_order) as the trait requires. `Ord`'s supertraits (`PartialOrd`, `Eq`, and `PartialEq`) must also be consistent. The previous implementations would not "notice" any problem, but the new implementations have a good chance of detecting inconsistencies, throwing a panic rather than returning knowingly unsorted data. - [In very rare cases, a change in the internal evaluation order of the trait solver may result in new fatal overflow errors.](https://redirect.github.com/rust-lang/rust/pull/126128) ## Internal Changes These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools. - [Add a Rust-for Linux `auto` CI job to check kernel builds.](https://redirect.github.com/rust-lang/rust/pull/125209/) ### [`v1.80.1`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1801-2024-08-08) [Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.80.0...1.80.1) \=========================== - [Fix miscompilation in the jump threading MIR optimization when comparing floats](https://redirect.github.com/rust-lang/rust/pull/128271) - [Revert changes to the `dead_code` lint from 1.80.0](https://redirect.github.com/rust-lang/rust/pull/128618) ### [`v1.80.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1800-2024-07-25) [Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.79.0...1.80.0) \========================== ## Language - [Document maximum allocation size](https://redirect.github.com/rust-lang/rust/pull/116675/) - [Allow zero-byte offsets and ZST read/writes on arbitrary pointers](https://redirect.github.com/rust-lang/rust/pull/117329/) - [Support C23's variadics without a named parameter](https://redirect.github.com/rust-lang/rust/pull/124048/) - [Stabilize `exclusive_range_pattern` feature](https://redirect.github.com/rust-lang/rust/pull/124459/) - [Guarantee layout and ABI of `Result` in some scenarios](https://redirect.github.com/rust-lang/rust/pull/124870) ## Compiler - [Update cc crate to v1.0.97 allowing additional spectre mitigations on MSVC targets](https://redirect.github.com/rust-lang/rust/pull/124892/) - [Allow field reordering on types marked `repr(packed(1))`](https://redirect.github.com/rust-lang/rust/pull/125360/) - [Add a lint against never type fallback affecting unsafe code](https://redirect.github.com/rust-lang/rust/pull/123939/) - [Disallow cast with trailing braced macro in let-else](https://redirect.github.com/rust-lang/rust/pull/125049/) - [Expand `for_loops_over_fallibles` lint to lint on fallibles behind references.](https://redirect.github.com/rust-lang/rust/pull/125156/) - [self-contained linker: retry linking without `-fuse-ld=lld` on CCs that don't support it](https://redirect.github.com/rust-lang/rust/pull/125417/) - [Do not parse CVarArgs (`...`) as a type in trait bounds](https://redirect.github.com/rust-lang/rust/pull/125863/) - Improvements to LLDB formatting [#124458](https://redirect.github.com/rust-lang/rust/pull/124458) [#124500](https://redirect.github.com/rust-lang/rust/pull/124500) - [For the wasm32-wasip2 target default to PIC and do not use `-fuse-ld=lld`](https://redirect.github.com/rust-lang/rust/pull/124858/) - [Add x86\_64-unknown-linux-none as a tier 3 target](https://redirect.github.com/rust-lang/rust/pull/125023/) - [Lint on `foo.into_iter()` resolving to `&Box<[T]>: IntoIterator`](https://redirect.github.com/rust-lang/rust/pull/124097/) ## Libraries - [Add `size_of` and `size_of_val` and `align_of` and `align_of_val` to the prelude](https://redirect.github.com/rust-lang/rust/pull/123168/) - [Abort a process when FD ownership is violated](https://redirect.github.com/rust-lang/rust/pull/124210/) - [io::Write::write_fmt: panic if the formatter fails when the stream does not fail](https://redirect.github.com/rust-lang/rust/pull/125012/) - [Panic if `PathBuf::set_extension` would add a path separator](https://redirect.github.com/rust-lang/rust/pull/125070/) - [Add assert_unsafe_precondition to unchecked\_{add,sub,neg,mul,shl,shr} methods](https://redirect.github.com/rust-lang/rust/pull/121571/) - [Update `c_char` on AIX to use the correct type](https://redirect.github.com/rust-lang/rust/pull/122986/) - [`offset_of!` no longer returns a temporary](https://redirect.github.com/rust-lang/rust/pull/124484/) - [Handle sigma in `str.to_lowercase` correctly](https://redirect.github.com/rust-lang/rust/pull/124773/) - [Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB](https://redirect.github.com/rust-lang/rust/pull/126059/) ## Stabilized APIs - [`impl Default for RcConfiguration
π Schedule: Branch creation - "after 8pm,before 6am" in timezone America/Los_Angeles, Automerge - "after 8pm,before 6am" in timezone America/Los_Angeles.
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.