Skip to content

Remove the box_pointers lint. - #126018

Merged
bors merged 1 commit into
rust-lang:masterfrom
nnethercote:rm-box_pointers-lint
Jun 30, 2024
Merged

Remove the box_pointers lint.#126018
bors merged 1 commit into
rust-lang:masterfrom
nnethercote:rm-box_pointers-lint

Conversation

@nnethercote

Copy link
Copy Markdown
Contributor

As the comment says, this lint "is mostly historical, and not particularly useful". It's not worth keeping it around.

r? @estebank

@rustbot

Copy link
Copy Markdown
Collaborator

rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead.

cc @rust-lang/rust-analyzer

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 5, 2024
@oli-obkoli-obk added the needs-fcp This change is insta-stable, or significant enough to need a team FCP to proceed. label Jun 5, 2024

@lcnrlcnr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's a list of removed/renamed lints somewhere to adjust the error message when using a renamed lint. Please add it there

r=me on the impl changes, please start a compiler FCP for this

@lcnr

lcnr commented Jun 5, 2024

Copy link
Copy Markdown
Contributor

r? lcnr

@rustbotrustbot assigned lcnr and unassigned estebankJun 5, 2024
@nnethercote
nnethercoteforce-pushed the rm-box_pointers-lint branch from 6fb5ebb to 8eb027bCompareJune 5, 2024 10:18
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

I have added a call to register_removed.

@rust-log-analyzer

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-box_pointers-lint branch from 8eb027b to 825b034CompareJune 5, 2024 10:24
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

Removing this old, useless lint that tells you if you are using Box. (Yes, really. Perhaps it made more sense in pre-1.0 days.)

@rfcbot fcp merge

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

How do I start an FCP? Or does it have to be started by a compiler team member? I'm only a contributor.

@lcnr

lcnr commented Jun 5, 2024

Copy link
Copy Markdown
Contributor

@rfcbot fcp merge

Comment threadcompiler/rustc_lint/src/lib.rs Outdated
@lcnr

lcnr commented Jun 5, 2024

Copy link
Copy Markdown
Contributor

@rfcbot ping

@lcnrlcnr closed this Jun 5, 2024
@lcnrlcnr reopened this Jun 5, 2024
@lcnr

lcnr commented Jun 5, 2024

Copy link
Copy Markdown
Contributor

@rfcbot fcp merge

@nnethercote
nnethercoteforce-pushed the rm-box_pointers-lint branch from 825b034 to 0acc5dbCompareJune 5, 2024 22:17
@rust-log-analyzer

This comment has been minimized.

@nnethercote
nnethercoteforce-pushed the rm-box_pointers-lint branch from 0acc5db to 1a0fc11CompareJune 5, 2024 22:51
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

Does anyone know how to trigger an FCP?

@kpreid

kpreid commented Jun 6, 2024

Copy link
Copy Markdown
Contributor

rfcbot was having some trouble, which has been fixed-for-now, and it sounds like you should be able to just retry.

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

@rfcbot fcp

@nnethercote

Copy link
Copy Markdown
ContributorAuthor

@rfcbot fcp merge

1 similar comment
@lcnr

lcnr commented Jun 6, 2024

Copy link
Copy Markdown
Contributor

@rfcbot fcp merge

As the comment says, this lint "is mostly historical, and not
particularly useful". It's not worth keeping it around.
@nnethercote
nnethercoteforce-pushed the rm-box_pointers-lint branch from a60756a to c053e89CompareJune 26, 2024 23:16
@rfcbotrfcbot added finished-final-comment-period The final comment period is finished for this PR / Issue. and removed final-comment-period In the final comment period and will be merged soon unless new substantive objections are raised. labels Jun 29, 2024
@rfcbot

Copy link
Copy Markdown

The final comment period, with a disposition to merge, as per the review above, is now complete.

As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed.

This will be merged soon.

@rfcbotrfcbot added the to-announce Announce this issue on triage meeting label Jun 29, 2024
@nnethercote

Copy link
Copy Markdown
ContributorAuthor

@bors r=lcnr

@bors

bors commented Jun 30, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit c053e89 has been approved by lcnr

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jun 30, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Jun 30, 2024
…r=lcnr
Remove the `box_pointers` lint.
As the comment says, this lint "is mostly historical, and not particularly useful". It's not worth keeping it around.
r? `@estebank`
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 30, 2024
…iaskrgr
Rollup of 8 pull requests
Successful merges:
- rust-lang#126018 (Remove the `box_pointers` lint.)
- rust-lang#126895 (Fix simd_gather documentation)
- rust-lang#126981 (Replace some magic booleans in match-lowering with enums)
- rust-lang#127069 (small correction to fmt::Pointer impl)
- rust-lang#127157 (coverage: Avoid getting extra unexpansion info when we don't need it)
- rust-lang#127160 (Add a regression test for rust-lang#123630)
- rust-lang#127161 (Improve `run-make-support` library `args` API)
- rust-lang#127162 (Subtree sync for rustc_codegen_cranelift)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 30, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#126018 (Remove the `box_pointers` lint.)
- rust-lang#126895 (Fix simd_gather documentation)
- rust-lang#126981 (Replace some magic booleans in match-lowering with enums)
- rust-lang#127038 (Update test comment)
- rust-lang#127053 (Update the LoongArch target documentation)
- rust-lang#127069 (small correction to fmt::Pointer impl)
- rust-lang#127157 (coverage: Avoid getting extra unexpansion info when we don't need it)
- rust-lang#127160 (Add a regression test for rust-lang#123630)
- rust-lang#127161 (Improve `run-make-support` library `args` API)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 30, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#126018 (Remove the `box_pointers` lint.)
- rust-lang#126895 (Fix simd_gather documentation)
- rust-lang#126981 (Replace some magic booleans in match-lowering with enums)
- rust-lang#127038 (Update test comment)
- rust-lang#127053 (Update the LoongArch target documentation)
- rust-lang#127069 (small correction to fmt::Pointer impl)
- rust-lang#127157 (coverage: Avoid getting extra unexpansion info when we don't need it)
- rust-lang#127160 (Add a regression test for rust-lang#123630)
- rust-lang#127161 (Improve `run-make-support` library `args` API)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit 6f57655 into rust-lang:masterJun 30, 2024
@rustbotrustbot added this to the 1.81.0 milestone Jun 30, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Jun 30, 2024
Rollup merge of rust-lang#126018 - nnethercote:rm-box_pointers-lint, r=lcnr
Remove the `box_pointers` lint.
As the comment says, this lint "is mostly historical, and not particularly useful". It's not worth keeping it around.
r? ``@estebank``
@nnethercote
nnethercote deleted the rm-box_pointers-lint branch June 30, 2024 23:04
@apirainoapiraino removed the to-announce Announce this issue on triage meeting label Jul 4, 2024
b-zee added a commit to WithAutonomi/self_encryption that referenced this pull request Jul 26, 2024
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Sep 11, 2024
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [rust](https://github.com/rust-lang/rust) | minor | `1.80.1` -> `1.81.0` |
MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).
**Proposed changes to behavior should be submitted there as MRs.**
---
### Release Notes
<details>
<summary>rust-lang/rust (rust)</summary>
### [`v1.81.0`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1810-2024-09-05)
[Compare Source](rust-lang/rust@1.80.1...1.81.0)
\==========================
<a id="1.81.0-Language"></a>
## Language
- [Abort on uncaught panics in `extern "C"` functions.](rust-lang/rust#116088)
- [Fix ambiguous cases of multiple `&` in elided self lifetimes.](rust-lang/rust#117967)
- [Stabilize `#[expect]` for lints (RFC 2383),](rust-lang/rust#120924) like `#[allow]` with a warning if the lint is *not* fulfilled.
- [Change method resolution to constrain hidden types instead of rejecting method candidates.](rust-lang/rust#123962)
- [Bump `elided_lifetimes_in_associated_constant` to deny.](rust-lang/rust#124211)
- [`offset_from`: always allow pointers to point to the same address.](rust-lang/rust#124921)
- [Allow constraining opaque types during subtyping in the trait system.](rust-lang/rust#125447)
- [Allow constraining opaque types during various unsizing casts.](rust-lang/rust#125610)
- [Deny keyword lifetimes pre-expansion.](rust-lang/rust#126762)
<a id="1.81.0-Compiler"></a>
## Compiler
- [Make casts of pointers to trait objects stricter.](rust-lang/rust#120248)
- [Check alias args for well-formedness even if they have escaping bound vars.](rust-lang/rust#123737)
- [Deprecate no-op codegen option `-Cinline-threshold=...`.](rust-lang/rust#124712)
- [Re-implement a type-size based limit.](rust-lang/rust#125507)
- [Properly account for alignment in `transmute` size checks.](rust-lang/rust#125740)
- [Remove the `box_pointers` lint.](rust-lang/rust#126018)
- [Ensure the interpreter checks bool/char for validity when they are used in a cast.](rust-lang/rust#126265)
- [Improve coverage instrumentation for functions containing nested items.](rust-lang/rust#127199)
- Target changes:
- [Add Tier 3 `no_std` Xtensa targets:](rust-lang/rust#125141) `xtensa-esp32-none-elf`, `xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
- [Add Tier 3 `std` Xtensa targets:](rust-lang/rust#126380) `xtensa-esp32-espidf`, `xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf`
- [Add Tier 3 i686 Redox OS target:](rust-lang/rust#126192) `i686-unknown-redox`
- [Promote `arm64ec-pc-windows-msvc` to Tier 2.](rust-lang/rust#126039)
- [Promote `loongarch64-unknown-linux-musl` to Tier 2 with host tools.](rust-lang/rust#126298)
- [Enable full tools and profiler for LoongArch Linux targets.](rust-lang/rust#127078)
- [Unconditionally warn on usage of `wasm32-wasi`.](rust-lang/rust#126662) (see compatibility note below)
- Refer to Rust's \[platform support page]\[platform-support-doc] for more information on Rust's tiered platform support.
<a id="1.81.0-Libraries"></a>
## Libraries
- [Split core's `PanicInfo` and std's `PanicInfo`.](rust-lang/rust#115974) (see compatibility note below)
- [Generalize `{Rc,Arc}::make_mut()` to unsized types.](rust-lang/rust#116113)
- [Replace sort implementations with stable `driftsort` and unstable `ipnsort`.](rust-lang/rust#124032) All `slice::sort*` and `slice::select_nth*` methods are expected to see significant performance improvements. See the [research project](https://github.com/Voultapher/sort-research-rs) for more details.
- [Document behavior of `create_dir_all` with respect to empty paths.](rust-lang/rust#125112)
- [Fix interleaved output in the default panic hook when multiple threads panic simultaneously.](rust-lang/rust#127397)
<a id="1.81.0-Stabilized-APIs"></a>
## 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)
<a id="1.81.0-Cargo"></a>
## Cargo
- [Generated `.cargo_vcs_info.json` is always included, even when `--allow-dirty` is passed.](rust-lang/cargo#13960)
- [Disallow `package.license-file` and `package.readme` pointing to non-existent files during packaging.](rust-lang/cargo#13921)
- [Disallow passing `--release`/`--debug` flag along with the `--profile` flag.](rust-lang/cargo#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.](rust-lang/cargo#13902)
<a id="1.81.0-Compatibility-Notes"></a>
## 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.](rust-lang/rust#126128)
<a id="1.81.0-Internal-Changes"></a>
## 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.](rust-lang/rust#125209)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request Sep 22, 2024
Pkgsrc changes:
* Adapt patches, apply to new vendored crates where needed.
* Back-port rust pull request 130110, "make dist vendoring configurable"
* Disable "dist vendoring", otherwise cargo would try to access
the network during the build phase.
Upstream changes:
Version 1.81.0 (2024-09-05)
==========================
Language
--------
- [Abort on uncaught panics in `extern "C"` functions.]
(rust-lang/rust#116088)
- [Fix ambiguous cases of multiple `&` in elided self lifetimes.]
(rust-lang/rust#117967)
- [Stabilize `#[expect]` for lints (RFC 2383),]
(rust-lang/rust#120924) like `#[allow]`
with a warning if the lint is _not_ fulfilled.
- [Change method resolution to constrain hidden types instead of
rejecting method candidates.]
(rust-lang/rust#123962)
- [Bump `elided_lifetimes_in_associated_constant` to deny.]
(rust-lang/rust#124211)
- [`offset_from`: always allow pointers to point to the same
address.] (rust-lang/rust#124921)
- [Allow constraining opaque types during subtyping in the trait
system.] (rust-lang/rust#125447)
- [Allow constraining opaque types during various unsizing casts.]
(rust-lang/rust#125610)
- [Deny keyword lifetimes pre-expansion.]
(rust-lang/rust#126762)
Compiler
--------
- [Make casts of pointers to trait objects stricter.]
(rust-lang/rust#120248)
- [Check alias args for well-formedness even if they have escaping
bound vars.] (rust-lang/rust#123737)
- [Deprecate no-op codegen option `-Cinline-threshold=...`.]
(rust-lang/rust#124712)
- [Re-implement a type-size based limit.]
(rust-lang/rust#125507)
- [Properly account for alignment in `transmute` size checks.]
(rust-lang/rust#125740)
- [Remove the `box_pointers` lint.]
(rust-lang/rust#126018)
- [Ensure the interpreter checks bool/char for validity when they
are used in a cast.] (rust-lang/rust#126265)
- [Improve coverage instrumentation for functions containing nested
items.] (rust-lang/rust#127199)
- Target changes:
- [Add Tier 3 `no_std` Xtensa targets:]
(rust-lang/rust#125141) `xtensa-esp32-none-elf`,
`xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
- [Add Tier 3 `std` Xtensa targets:]
(rust-lang/rust#126380) `xtensa-esp32-espidf`,
`xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf`
- [Add Tier 3 i686 Redox OS target:]
(rust-lang/rust#126192) `i686-unknown-redox`
- [Promote `arm64ec-pc-windows-msvc` to Tier 2.]
(rust-lang/rust#126039)
- [Promote `wasm32-wasip2` to Tier 2.]
(rust-lang/rust#126967)
- [Promote `loongarch64-unknown-linux-musl` to Tier 2 with host
tools.] (rust-lang/rust#126298)
- [Enable full tools and profiler for LoongArch Linux targets.]
(rust-lang/rust#127078)
- [Unconditionally warn on usage of `wasm32-wasi`.]
(rust-lang/rust#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`.]
(rust-lang/rust#115974) (see compatibility
note below)
- [Generalize `{Rc,Arc}::make_mut()` to unsized types.]
(rust-lang/rust#116113)
- [Replace sort implementations with stable `driftsort` and unstable
`ipnsort`.] (rust-lang/rust#124032) All
`slice::sort*` and `slice::select_nth*` methods are expected to
see significant performance improvements. See the [research
project] (https://github.com/Voultapher/sort-research-rs) for
more details.
- [Document behavior of `create_dir_all` with respect to empty
paths.] (rust-lang/rust#125112)
- [Fix interleaved output in the default panic hook when multiple
threads panic simultaneously.]
(rust-lang/rust#127397)
- Fix `Command`'s batch files argument escaping not working when
file name has trailing whitespace or periods (CVE-2024-43402).
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.]
(rust-lang/cargo#13960)
- [Disallow `package.license-file` and `package.readme` pointing
to non-existent files during packaging.]
(rust-lang/cargo#13921)
- [Disallow passing `--release`/`--debug` flag along with the
`--profile` flag.] (rust-lang/cargo#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.] (rust-lang/cargo#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.]
(rust-lang/rust#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.]
(rust-lang/rust#125209)
joshuef pushed a commit to WithAutonomi/self_encryption that referenced this pull request Sep 23, 2024
taiki-e added a commit to taiki-e/pin-project that referenced this pull request Oct 25, 2024
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Nov 24, 2024
Pkgsrc changes:
* Adapt patches, apply to new vendored crates where needed.
* Back-port rust pull request 130110, "make dist vendoring configurable"
* Disable "dist vendoring", otherwise cargo would try to access
the network during the build phase.
Upstream changes:
Version 1.81.0 (2024-09-05)
==========================
Language
--------
- [Abort on uncaught panics in `extern "C"` functions.]
(rust-lang/rust#116088)
- [Fix ambiguous cases of multiple `&` in elided self lifetimes.]
(rust-lang/rust#117967)
- [Stabilize `#[expect]` for lints (RFC 2383),]
(rust-lang/rust#120924) like `#[allow]`
with a warning if the lint is _not_ fulfilled.
- [Change method resolution to constrain hidden types instead of
rejecting method candidates.]
(rust-lang/rust#123962)
- [Bump `elided_lifetimes_in_associated_constant` to deny.]
(rust-lang/rust#124211)
- [`offset_from`: always allow pointers to point to the same
address.] (rust-lang/rust#124921)
- [Allow constraining opaque types during subtyping in the trait
system.] (rust-lang/rust#125447)
- [Allow constraining opaque types during various unsizing casts.]
(rust-lang/rust#125610)
- [Deny keyword lifetimes pre-expansion.]
(rust-lang/rust#126762)
Compiler
--------
- [Make casts of pointers to trait objects stricter.]
(rust-lang/rust#120248)
- [Check alias args for well-formedness even if they have escaping
bound vars.] (rust-lang/rust#123737)
- [Deprecate no-op codegen option `-Cinline-threshold=...`.]
(rust-lang/rust#124712)
- [Re-implement a type-size based limit.]
(rust-lang/rust#125507)
- [Properly account for alignment in `transmute` size checks.]
(rust-lang/rust#125740)
- [Remove the `box_pointers` lint.]
(rust-lang/rust#126018)
- [Ensure the interpreter checks bool/char for validity when they
are used in a cast.] (rust-lang/rust#126265)
- [Improve coverage instrumentation for functions containing nested
items.] (rust-lang/rust#127199)
- Target changes:
- [Add Tier 3 `no_std` Xtensa targets:]
(rust-lang/rust#125141) `xtensa-esp32-none-elf`,
`xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
- [Add Tier 3 `std` Xtensa targets:]
(rust-lang/rust#126380) `xtensa-esp32-espidf`,
`xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf`
- [Add Tier 3 i686 Redox OS target:]
(rust-lang/rust#126192) `i686-unknown-redox`
- [Promote `arm64ec-pc-windows-msvc` to Tier 2.]
(rust-lang/rust#126039)
- [Promote `wasm32-wasip2` to Tier 2.]
(rust-lang/rust#126967)
- [Promote `loongarch64-unknown-linux-musl` to Tier 2 with host
tools.] (rust-lang/rust#126298)
- [Enable full tools and profiler for LoongArch Linux targets.]
(rust-lang/rust#127078)
- [Unconditionally warn on usage of `wasm32-wasi`.]
(rust-lang/rust#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`.]
(rust-lang/rust#115974) (see compatibility
note below)
- [Generalize `{Rc,Arc}::make_mut()` to unsized types.]
(rust-lang/rust#116113)
- [Replace sort implementations with stable `driftsort` and unstable
`ipnsort`.] (rust-lang/rust#124032) All
`slice::sort*` and `slice::select_nth*` methods are expected to
see significant performance improvements. See the [research
project] (https://github.com/Voultapher/sort-research-rs) for
more details.
- [Document behavior of `create_dir_all` with respect to empty
paths.] (rust-lang/rust#125112)
- [Fix interleaved output in the default panic hook when multiple
threads panic simultaneously.]
(rust-lang/rust#127397)
- Fix `Command`'s batch files argument escaping not working when
file name has trailing whitespace or periods (CVE-2024-43402).
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.]
(rust-lang/cargo#13960)
- [Disallow `package.license-file` and `package.readme` pointing
to non-existent files during packaging.]
(rust-lang/cargo#13921)
- [Disallow passing `--release`/`--debug` flag along with the
`--profile` flag.] (rust-lang/cargo#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.] (rust-lang/cargo#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.]
(rust-lang/rust#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.]
(rust-lang/rust#125209)
msk pushed a commit to msk/pkgsrc that referenced this pull request May 11, 2026
Pkgsrc changes:
* Adapt patches, apply to new vendored crates where needed.
* Back-port rust pull request 130110, "make dist vendoring configurable"
* Disable "dist vendoring", otherwise cargo would try to access
the network during the build phase.
Upstream changes:
Version 1.81.0 (2024-09-05)
==========================
Language
--------
- [Abort on uncaught panics in `extern "C"` functions.]
(rust-lang/rust#116088)
- [Fix ambiguous cases of multiple `&` in elided self lifetimes.]
(rust-lang/rust#117967)
- [Stabilize `#[expect]` for lints (RFC 2383),]
(rust-lang/rust#120924) like `#[allow]`
with a warning if the lint is _not_ fulfilled.
- [Change method resolution to constrain hidden types instead of
rejecting method candidates.]
(rust-lang/rust#123962)
- [Bump `elided_lifetimes_in_associated_constant` to deny.]
(rust-lang/rust#124211)
- [`offset_from`: always allow pointers to point to the same
address.] (rust-lang/rust#124921)
- [Allow constraining opaque types during subtyping in the trait
system.] (rust-lang/rust#125447)
- [Allow constraining opaque types during various unsizing casts.]
(rust-lang/rust#125610)
- [Deny keyword lifetimes pre-expansion.]
(rust-lang/rust#126762)
Compiler
--------
- [Make casts of pointers to trait objects stricter.]
(rust-lang/rust#120248)
- [Check alias args for well-formedness even if they have escaping
bound vars.] (rust-lang/rust#123737)
- [Deprecate no-op codegen option `-Cinline-threshold=...`.]
(rust-lang/rust#124712)
- [Re-implement a type-size based limit.]
(rust-lang/rust#125507)
- [Properly account for alignment in `transmute` size checks.]
(rust-lang/rust#125740)
- [Remove the `box_pointers` lint.]
(rust-lang/rust#126018)
- [Ensure the interpreter checks bool/char for validity when they
are used in a cast.] (rust-lang/rust#126265)
- [Improve coverage instrumentation for functions containing nested
items.] (rust-lang/rust#127199)
- Target changes:
- [Add Tier 3 `no_std` Xtensa targets:]
(rust-lang/rust#125141) `xtensa-esp32-none-elf`,
`xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
- [Add Tier 3 `std` Xtensa targets:]
(rust-lang/rust#126380) `xtensa-esp32-espidf`,
`xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf`
- [Add Tier 3 i686 Redox OS target:]
(rust-lang/rust#126192) `i686-unknown-redox`
- [Promote `arm64ec-pc-windows-msvc` to Tier 2.]
(rust-lang/rust#126039)
- [Promote `wasm32-wasip2` to Tier 2.]
(rust-lang/rust#126967)
- [Promote `loongarch64-unknown-linux-musl` to Tier 2 with host
tools.] (rust-lang/rust#126298)
- [Enable full tools and profiler for LoongArch Linux targets.]
(rust-lang/rust#127078)
- [Unconditionally warn on usage of `wasm32-wasi`.]
(rust-lang/rust#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`.]
(rust-lang/rust#115974) (see compatibility
note below)
- [Generalize `{Rc,Arc}::make_mut()` to unsized types.]
(rust-lang/rust#116113)
- [Replace sort implementations with stable `driftsort` and unstable
`ipnsort`.] (rust-lang/rust#124032) All
`slice::sort*` and `slice::select_nth*` methods are expected to
see significant performance improvements. See the [research
project] (https://github.com/Voultapher/sort-research-rs) for
more details.
- [Document behavior of `create_dir_all` with respect to empty
paths.] (rust-lang/rust#125112)
- [Fix interleaved output in the default panic hook when multiple
threads panic simultaneously.]
(rust-lang/rust#127397)
- Fix `Command`'s batch files argument escaping not working when
file name has trailing whitespace or periods (CVE-2024-43402).
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.]
(rust-lang/cargo#13960)
- [Disallow `package.license-file` and `package.readme` pointing
to non-existent files during packaging.]
(rust-lang/cargo#13921)
- [Disallow passing `--release`/`--debug` flag along with the
`--profile` flag.] (rust-lang/cargo#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.] (rust-lang/cargo#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.]
(rust-lang/rust#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.]
(rust-lang/rust#125209)
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request May 13, 2026
Pkgsrc changes:
* Adapt patches, apply to new vendored crates where needed.
* Back-port rust pull request 130110, "make dist vendoring configurable"
* Disable "dist vendoring", otherwise cargo would try to access
the network during the build phase.
Upstream changes:
Version 1.81.0 (2024-09-05)
==========================
Language
--------
- [Abort on uncaught panics in `extern "C"` functions.]
(rust-lang/rust#116088)
- [Fix ambiguous cases of multiple `&` in elided self lifetimes.]
(rust-lang/rust#117967)
- [Stabilize `#[expect]` for lints (RFC 2383),]
(rust-lang/rust#120924) like `#[allow]`
with a warning if the lint is _not_ fulfilled.
- [Change method resolution to constrain hidden types instead of
rejecting method candidates.]
(rust-lang/rust#123962)
- [Bump `elided_lifetimes_in_associated_constant` to deny.]
(rust-lang/rust#124211)
- [`offset_from`: always allow pointers to point to the same
address.] (rust-lang/rust#124921)
- [Allow constraining opaque types during subtyping in the trait
system.] (rust-lang/rust#125447)
- [Allow constraining opaque types during various unsizing casts.]
(rust-lang/rust#125610)
- [Deny keyword lifetimes pre-expansion.]
(rust-lang/rust#126762)
Compiler
--------
- [Make casts of pointers to trait objects stricter.]
(rust-lang/rust#120248)
- [Check alias args for well-formedness even if they have escaping
bound vars.] (rust-lang/rust#123737)
- [Deprecate no-op codegen option `-Cinline-threshold=...`.]
(rust-lang/rust#124712)
- [Re-implement a type-size based limit.]
(rust-lang/rust#125507)
- [Properly account for alignment in `transmute` size checks.]
(rust-lang/rust#125740)
- [Remove the `box_pointers` lint.]
(rust-lang/rust#126018)
- [Ensure the interpreter checks bool/char for validity when they
are used in a cast.] (rust-lang/rust#126265)
- [Improve coverage instrumentation for functions containing nested
items.] (rust-lang/rust#127199)
- Target changes:
- [Add Tier 3 `no_std` Xtensa targets:]
(rust-lang/rust#125141) `xtensa-esp32-none-elf`,
`xtensa-esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
- [Add Tier 3 `std` Xtensa targets:]
(rust-lang/rust#126380) `xtensa-esp32-espidf`,
`xtensa-esp32s2-espidf`, `xtensa-esp32s3-espidf`
- [Add Tier 3 i686 Redox OS target:]
(rust-lang/rust#126192) `i686-unknown-redox`
- [Promote `arm64ec-pc-windows-msvc` to Tier 2.]
(rust-lang/rust#126039)
- [Promote `wasm32-wasip2` to Tier 2.]
(rust-lang/rust#126967)
- [Promote `loongarch64-unknown-linux-musl` to Tier 2 with host
tools.] (rust-lang/rust#126298)
- [Enable full tools and profiler for LoongArch Linux targets.]
(rust-lang/rust#127078)
- [Unconditionally warn on usage of `wasm32-wasi`.]
(rust-lang/rust#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`.]
(rust-lang/rust#115974) (see compatibility
note below)
- [Generalize `{Rc,Arc}::make_mut()` to unsized types.]
(rust-lang/rust#116113)
- [Replace sort implementations with stable `driftsort` and unstable
`ipnsort`.] (rust-lang/rust#124032) All
`slice::sort*` and `slice::select_nth*` methods are expected to
see significant performance improvements. See the [research
project] (https://github.com/Voultapher/sort-research-rs) for
more details.
- [Document behavior of `create_dir_all` with respect to empty
paths.] (rust-lang/rust#125112)
- [Fix interleaved output in the default panic hook when multiple
threads panic simultaneously.]
(rust-lang/rust#127397)
- Fix `Command`'s batch files argument escaping not working when
file name has trailing whitespace or periods (CVE-2024-43402).
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.]
(rust-lang/cargo#13960)
- [Disallow `package.license-file` and `package.readme` pointing
to non-existent files during packaging.]
(rust-lang/cargo#13921)
- [Disallow passing `--release`/`--debug` flag along with the
`--profile` flag.] (rust-lang/cargo#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.] (rust-lang/cargo#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.]
(rust-lang/rust#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.]
(rust-lang/rust#125209)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

disposition-mergeThis issue / PR is in PFCP or FCP with a disposition to merge it.finished-final-comment-periodThe final comment period is finished for this PR / Issue.needs-fcpThis change is insta-stable, or significant enough to need a team FCP to proceed.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

12 participants

@nnethercote@rustbot@lcnr@rust-log-analyzer@kpreid@rfcbot@bors@scottmcm@est31@estebank@oli-obk@apiraino