Eric Huss
1ce8023626
Rustfmt 2024
2025-07-05 19:50:36 -07:00
Eric Huss
fb0c7c99cf
Update all crates to 2024 edition
2025-07-05 19:39:17 -07:00
Eric Huss
9d710a98a1
Apply unsafe_op_in_unsafe_fn
2025-07-05 19:29:43 -07:00
Eric Huss
b637a5fe83
Apply impl_trait_overcaptures
2025-07-05 19:29:29 -07:00
Eric Huss
a0d1859575
Apply keyword_idents_2024
2025-07-05 19:29:09 -07:00
Eric Huss
24813db9da
Apply missing_unsafe_on_extern
2025-07-05 19:28:38 -07:00
Eric Huss
1213fc652b
Apply rust_2024_incompatible_pat
2025-07-05 19:27:01 -07:00
Weihang Lo
425af55326
Clarify package ID specifications in SBOMs are fully qualified ( #15731 )
...
### What does this PR try to resolve?
cargo-auditable 0.7.0 will use the unstable Cargo SBOM precursor files
if a user configures Cargo to generate the SBOM files. cargo-auditable
assumes that the package ID specifiers in Cargo SBOM files are fully
qualified.
We'd like to enforce this assumption in Cargo so we can keep our package
ID spec parsing simpler by not considering non-fully qualified package
ID specs. This PR updates the cargo docs to state where fully qualified
package ID specs are used, and also adds SBOMs to the existing `cargo
pkgid` test that is currently enforcing consistency between the various
usages of fully qualified package id specs.
Previously raised at [#t-cargo > sbom missing name, version, source @
💬 ](https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/sbom.20missing.20name.2C.20version.2C.20source/near/525443447 )
### How to test and review this PR?
Change doesn't affect current behaviour.
2025-07-05 22:44:26 +00:00
Tom Fay
6713b1ad46
generalize cargo's use of fully qualified
...
rather than providing an exhaustive list
2025-07-05 21:58:47 +01:00
Tom Fay
c74fadc0e5
Enforce pkgid and sbom consistency
...
clarify fully qualified package ID usage in docs
2025-07-05 20:59:07 +01:00
Ed Page
1743cb890d
chore(deps): update cargo-semver-checks to v0.42.0 ( #15730 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
|
[cargo-semver-checks](https://redirect.github.com/obi1kenobi/cargo-semver-checks )
| minor | `0.41.0` -> `0.42.0` |
---
### Release Notes
<details>
<summary>obi1kenobi/cargo-semver-checks (cargo-semver-checks)</summary>
###
[`v0.42.0`](https://redirect.github.com/obi1kenobi/cargo-semver-checks/compare/v0.41.0...v0.42.0 )
[Compare
Source](https://redirect.github.com/obi1kenobi/cargo-semver-checks/compare/v0.41.0...v0.42.0 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/rust-lang/cargo ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMTcuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
2025-07-05 16:41:32 +00:00
renovate[bot]
9b91ef09fe
chore(deps): update cargo-semver-checks to v0.42.0
2025-07-05 16:08:44 +00:00
Weihang Lo
848e5a23c0
test: Switch config tests to use snapshots ( #15729 )
...
### What does this PR try to resolve?
This is prep for updating `toml` which will change some of these error
messages
### How to test and review this PR?
2025-07-05 15:38:48 +00:00
Ed Page
3488e267ee
test: Switch config tests to use snapshots
2025-07-05 10:04:44 -05:00
Ed Page
e4162389d6
implement package feature unification ( #15684 )
...
### What does this PR try to resolve?
Implements another part of feature unification (#14774 ,
[rfc](1c590ce05d/text/3692-feature-unification.md
)).
The `workspace` option was implemented in #15157 , this adds the
`package` option.
### How to test and review this PR?
The important change is changing `WorkspaceResolve` so it can contain
multiple `ResolvedFeature`s. Along with that, it also needs to know
which specs those features are resolved for. This was used in several
other places:
- `cargo fix --edition` (from 2018 to 2021) - I think it should be ok to
disallow using `cargo fix --edition` when someone already uses this
feature.
- building std - it should be safe to assume std is not using this
feature so I just unwrap there. I'm not sure if some attempt to later
feature unification would be better.
- `cargo tree` - I just use the first feature set. This is definitely
not ideal, but I'm not entirely sure what's the correct solution here.
Printing multiple trees? Disallowing this, forcing users to select only
one package?
Based on comments in #15157 I've added tests first with `selected`
feature unification and then changed that after implementation. I'm not
sure if that's how you expect the tests to be added first, if not, I can
change the history.
I've expanded the test checking that this is ignored for `cargo install`
although it should work the same way even if it is not ignored
(`selected` and `package` are the same thing when just one package is
selected).
2025-07-02 19:44:20 +00:00
Eric Huss
eba6d5b032
chore: Upgrade dependencies ( #15722 )
...
### What does this PR try to resolve?
Replaces #15718 , #15719
### How to test and review this PR?
2025-07-01 23:31:34 +00:00
David Mládek
e4a616b6fd
docs: fix outdated doc comment
2025-07-02 00:01:52 +02:00
David Mládek
0be420bb78
docs: update unstable docs on feature unificatin
2025-07-02 00:01:52 +02:00
David Mládek
70f16f448b
feat: add the package
feature unification option
2025-07-02 00:01:52 +02:00
David Mládek
73b5b33e1d
refactor(resolve): allow multiple resolved feature sets in workspace resolve
2025-07-02 00:01:52 +02:00
David Mládek
403f1e12f6
tests: add future package
feature unification tests
2025-07-02 00:01:51 +02:00
Ed Page
714157308b
Report valid file name when we can't find a build target for name = "foo.rs"
( #15707 )
...
fixes #15703
2025-07-01 20:49:34 +00:00
Marijn Schouten
6eb5adcc50
bad_config: replace cargo build
with cargo check
2025-07-01 19:55:58 +00:00
Marijn Schouten
e2987afda7
move config tests from build.rs to bad_config.rs
2025-07-01 18:58:41 +00:00
Marijn Schouten
87a24aa734
better msg for bug #15703
2025-07-01 18:53:33 +00:00
Ed Page
d8975d2901
chore: Update incompatible versions
2025-07-01 13:51:18 -05:00
Ed Page
72837912b4
chore: Update compatible versions
2025-07-01 13:50:44 -05:00
Marijn Schouten
81c233badd
target_path_not_found_error_message: simplify
2025-07-01 08:12:00 +00:00
Marijn Schouten
56602aacd1
fix bug #15703
2025-07-01 08:06:47 +00:00
Marijn Schouten
01850417d7
add test for bug #15703
2025-07-01 07:35:27 +00:00
Ed Page
aaeb634d9a
chore(release): Publish build-rs on release ( #15708 )
...
### What does this PR try to resolve?
I know that us not publishing `build-rs` recently came up and was
surprised to see this wasn't fixed. Unsure where that conversation is or
what happened with it.
Looks like it was in #15567 and there was no follow up on my side...
### How to test and review this PR?
2025-06-30 20:51:29 +00:00
Ed Page
f013ef54bb
Override Cargo.lock
checksums when doing a dry-run publish
( #15711 )
...
Fixes #15647 .
When dry-run publishing workspace without bumping versions first, the
package-verification step would fail because it would see checksum
mismatches between the old lock file (that saw index deps) and the new
lock file where those index deps got replaced by local packages with the
same version.
In this PR, the packaging step modifies the old lock file's checksums
before re-resolving, but only in dry-run mode.
2025-06-30 20:20:41 +00:00
Ed Page
4a137fa64d
test(rustfix): Update for nightly ( #15717 )
...
### What does this PR try to resolve?
This unblocks Red CI, see [#t-cargo > Red CI: rustfix @
💬 ](https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/Red.20CI.3A.20rustfix/near/526449337 )
### How to test and review this PR?
Inspired by #15713
2025-06-30 19:09:45 +00:00
Ed Page
e8a9510f11
chore(rustfix): Bump to 0.9.2
2025-06-30 13:37:27 -05:00
Ed Page
dca5d6409c
test(rustfix): Update for nightly
...
Inspired by #15713
2025-06-30 13:17:09 -05:00
Ed Page
930b4f62cf
Use a different lint for the fix_only_once_for_duplicates
test ( #15713 )
...
### What does this PR try to resolve?
This PR changes the triggering `rustc` lint in the
`fix_only_once_for_duplicates` test from `unused_must_use` to
`forgetting_references`, because we are changing in
https://github.com/rust-lang/rust/pull/143030 the interaction between
that lint and macros.
This is required as it blocking the rust PR,
https://github.com/rust-lang/rust/pull/143030#issuecomment-3009124056 .
### How to test and review this PR?
Look at the test changes.
2025-06-28 14:58:43 +00:00
Urgau
c5fee7d595
Use a different lint for the ffix_only_once_for_duplicates
test
2025-06-28 14:29:29 +02:00
Joe Neeman
340a4f9bbd
Add a dry-run packaging mode that munges checksums
2025-06-27 14:48:04 -05:00
Joe Neeman
95e961b4a0
Add a test showing the changed checksum.
2025-06-27 13:49:14 -05:00
Ed Page
37ac0c28b8
chore: bump to 0.91.0; update changelog ( #15710 )
2025-06-27 16:27:06 +00:00
Ed Page
96c6d7b9c2
Add http.proxy-cainfo
config for proxy certs ( #15374 )
...
This adds a `http.proxy-cainfo` option to Cargo which reads CA
information from a bundle to pass through to the underlying `libcurl`
call. This should allow configuration of Cargo in situations where SSL
proxy is used.
Similar to https://github.com/rust-lang/cargo/pull/2917 .
cc #15376
2025-06-27 16:17:30 +00:00
Eric Huss
57dbb7f2c3
Update changelog wording from suggestions
...
Co-authored-by: Ed Page <eopage@gmail.com>
2025-06-27 08:58:09 -07:00
Ed Page
132064214f
chore(deps): update msrv (3 versions) to v1.86 ( #15709 )
...
This PR contains the following updates:
| Package | Update | Change | Pending |
|---|---|---|---|
| [MSRV:3](https://redirect.github.com/rust-lang/rust ) | minor | `1.85`
-> `1.86` | `1.88` (+1) |
---
### Release Notes
<details>
<summary>rust-lang/rust (MSRV:3)</summary>
###
[`v1.86`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1860-2025-04-03 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.85.0...1.86.0 )
\==========================
<a id="1.86.0-Language"></a>
## Language
- [Stabilize upcasting trait objects to
supertraits.](https://redirect.github.com/rust-lang/rust/pull/134367 )
- [Allow safe functions to be marked with the `#[target_feature]`
attribute.](https://redirect.github.com/rust-lang/rust/pull/134090 )
- [The `missing_abi` lint now
warns-by-default.](https://redirect.github.com/rust-lang/rust/pull/132397 )
- Rust now lints about double negations, to catch cases that might have
intended to be a prefix decrement operator (`--x`) as written in other
languages. This was previously a clippy lint, `clippy::double_neg`, and
is [now available directly in Rust as
`double_negations`.](https://redirect.github.com/rust-lang/rust/pull/126604 )
- [More pointers are now detected as definitely not-null based on their
alignment in const
eval.](https://redirect.github.com/rust-lang/rust/pull/133700 )
- [Empty `repr()` attribute applied to invalid items are now correctly
rejected.](https://redirect.github.com/rust-lang/rust/pull/133925 )
- [Inner attributes `#![test]` and `#![rustfmt::skip]` are no longer
accepted in more places than
intended.](https://redirect.github.com/rust-lang/rust/pull/134276 )
<a id="1.86.0-Compiler"></a>
## Compiler
- [Debug-assert that raw pointers are non-null on
access.](https://redirect.github.com/rust-lang/rust/pull/134424 )
- [Change `-O` to mean `-C opt-level=3` instead of `-C opt-level=2` to
match Cargo's
defaults.](https://redirect.github.com/rust-lang/rust/pull/135439 )
- [Fix emission of `overflowing_literals` under certain macro
environments.](https://redirect.github.com/rust-lang/rust/pull/136393 )
<a id="1.86.0-Platform-Support"></a>
## Platform Support
- [Replace `i686-unknown-redox` target with
`i586-unknown-redox`.](https://redirect.github.com/rust-lang/rust/pull/136698 )
- [Increase baseline CPU of `i686-unknown-hurd-gnu` to Pentium
4.](https://redirect.github.com/rust-lang/rust/pull/136700 )
- New tier 3 targets:
-
[`{aarch64-unknown,x86_64-pc}-nto-qnx710_iosock`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 7.1 with `io-socket` network stack.
-
[`{aarch64-unknown,x86_64-pc}-nto-qnx800`](https://redirect.github.com/rust-lang/rust/pull/133631 ).
For supporting Neutrino QNX 8.0 (`no_std`-only).
-
[`{x86_64,i686}-win7-windows-gnu`](https://redirect.github.com/rust-lang/rust/pull/134609 ).
Intended for backwards compatibility with Windows 7.
`{x86_64,i686}-win7-windows-msvc` are the Windows MSVC counterparts that
already exist as Tier 3 targets.
-
[`amdgcn-amd-amdhsa`](https://redirect.github.com/rust-lang/rust/pull/134740 ).
-
[`x86_64-pc-cygwin`](https://redirect.github.com/rust-lang/rust/pull/134999 ).
-
[`{mips,mipsel}-mti-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135074 ).
Initial bare-metal support.
-
[`m68k-unknown-none-elf`](https://redirect.github.com/rust-lang/rust/pull/135085 ).
- [`armv7a-nuttx-{eabi,eabihf}`, `aarch64-unknown-nuttx`, and
`thumbv7a-nuttx-{eabi,eabihf}`](https://redirect.github.com/rust-lang/rust/pull/135757 ).
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.86.0-Libraries"></a>
## Libraries
- The type of `FromBytesWithNulError` in
`CStr::from_bytes_with_nul(bytes: &[u8]) -> Result<&Self,
FromBytesWithNulError>` was [changed from an opaque struct to an
enum](https://redirect.github.com/rust-lang/rust/pull/134143 ), allowing
users to examine why the conversion failed.
- [Remove `RustcDecodable` and
`RustcEncodable`.](https://redirect.github.com/rust-lang/rust/pull/134272 )
- [Deprecate libtest's `--logfile`
option.](https://redirect.github.com/rust-lang/rust/pull/134283 )
- [On recent versions of Windows, `std::fs::remove_file` will now remove
read-only
files.](https://redirect.github.com/rust-lang/rust/pull/134679 )
<a id="1.86.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`{float}::next_down`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_down )
-
[`{float}::next_up`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.next_up )
-
[`<[_]>::get_disjoint_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_mut )
-
[`<[_]>::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.get_disjoint_unchecked_mut )
-
[`slice::GetDisjointMutError`](https://doc.rust-lang.org/stable/std/slice/enum.GetDisjointMutError.html )
-
[`HashMap::get_disjoint_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_mut )
-
[`HashMap::get_disjoint_unchecked_mut`](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.get_disjoint_unchecked_mut )
-
[`NonZero::count_ones`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.count_ones )
-
[`Vec::pop_if`](https://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop_if )
-
[`sync::Once::wait`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait )
-
[`sync::Once::wait_force`](https://doc.rust-lang.org/stable/std/sync/struct.Once.html#method.wait_force )
-
[`sync::OnceLock::wait`](https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html#method.wait )
These APIs are now stable in const contexts:
-
[`hint::black_box`](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html )
-
[`io::Cursor::get_mut`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.get_mut )
-
[`io::Cursor::set_position`](https://doc.rust-lang.org/stable/std/io/struct.Cursor.html#method.set_position )
-
[`str::is_char_boundary`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.is_char_boundary )
-
[`str::split_at`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at )
-
[`str::split_at_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_checked )
-
[`str::split_at_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut )
-
[`str::split_at_mut_checked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.split_at_mut_checked )
<a id="1.86.0-Cargo"></a>
## Cargo
- [When merging, replace rather than combine configuration keys that
refer to a program path and its
arguments.](https://redirect.github.com/rust-lang/cargo/pull/15066/ )
- [Error if both `--package` and `--workspace` are passed but the
requested package is
missing.](https://redirect.github.com/rust-lang/cargo/pull/15071/ ) This
was previously silently ignored, which was considered a bug since
missing packages should be reported.
- [Deprecate the token argument in `cargo login` to avoid shell history
leaks.](https://redirect.github.com/rust-lang/cargo/pull/15057/ )
- [Simplify the implementation of `SourceID`
comparisons.](https://redirect.github.com/rust-lang/cargo/pull/14980/ )
This may potentially change behavior if the canonicalized URL compares
differently in alternative registries.
<a id="1.86.0-Rustdoc"></a>
## Rustdoc
- [Add a sans-serif font
setting.](https://redirect.github.com/rust-lang/rust/pull/133636 )
<a id="1.86.0-Compatibility-Notes"></a>
## Compatibility Notes
- [The `wasm_c_abi` future compatibility warning is now a hard
error.](https://redirect.github.com/rust-lang/rust/pull/133951 )
Users of `wasm-bindgen` should upgrade to at least version 0.2.89,
otherwise compilation will fail.
- [Remove long-deprecated no-op attributes `#![no_start]` and
`#![crate_id]`.](https://redirect.github.com/rust-lang/rust/pull/134300 )
- [The future incompatibility lint `cenum_impl_drop_cast` has been made
into a hard
error.](https://redirect.github.com/rust-lang/rust/pull/135964 ) This
means it is now an error to cast a field-less enum to an integer if the
enum implements `Drop`.
- [SSE2 is now required for "i686" 32-bit x86 hard-float targets;
disabling it causes a warning that will become a hard error
eventually.](https://redirect.github.com/rust-lang/rust/pull/137037 )
To compile for pre-SSE2 32-bit x86, use a "i586" target instead.
<a id="1.86.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.
- [Build the rustc on AArch64 Linux with ThinLTO +
PGO.](https://redirect.github.com/rust-lang/rust/pull/133807 )
The ARM 64-bit compiler (AArch64) on Linux is now optimized with ThinLTO
and PGO, similar to the optimizations we have already performed for the
x86-64 compiler on Linux. This should make it up to 30% faster.
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/rust-lang/cargo ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
2025-06-27 15:37:43 +00:00
Eric Huss
5c19611910
Update tests now that 1.88 is stable
2025-06-27 08:19:34 -07:00
Eric Huss
d36c0aeed0
Update changelog for 1.89
2025-06-27 08:19:34 -07:00
Eric Huss
a87ddb2dc7
Bump to 0.91.0
2025-06-27 08:17:07 -07:00
renovate[bot]
f0b8367ade
chore(deps): update msrv (3 versions) to v1.86
2025-06-27 14:03:03 +00:00
Ed Page
6bfcb53c0d
chore(release): Publish build-rs on release
2025-06-27 08:37:34 -05:00
Ed Page
bf2678937d
chore(deps): update msrv (1 version) to v1.88 ( #15706 )
...
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [MSRV:1](https://redirect.github.com/rust-lang/rust ) | minor | `1.87`
-> `1.88` |
---
### Release Notes
<details>
<summary>rust-lang/rust (MSRV:1)</summary>
###
[`v1.88`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1880-2025-06-26 )
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.87.0...1.88.0 )
\==========================
<a id="1.88.0-Language"></a>
## Language
- [Stabilize `#![feature(let_chains)]` in the 2024
edition.](https://redirect.github.com/rust-lang/rust/pull/132833 )
This feature allows `&&`-chaining `let` statements inside `if` and
`while`, allowing intermixture with boolean expressions. The patterns
inside the `let` sub-expressions can be irrefutable or refutable.
- [Stabilize
`#![feature(naked_functions)]`.](https://redirect.github.com/rust-lang/rust/pull/134213 )
Naked functions allow writing functions with no compiler-generated
epilogue and prologue, allowing full control over the generated assembly
for a particular function.
- [Stabilize
`#![feature(cfg_boolean_literals)]`.](https://redirect.github.com/rust-lang/rust/pull/138632 )
This allows using boolean literals as `cfg` predicates, e.g.
`#[cfg(true)]` and `#[cfg(false)]`.
- [Fully de-stabilize the `#[bench]`
attribute](https://redirect.github.com/rust-lang/rust/pull/134273 ).
Usage of `#[bench]` without `#![feature(custom_test_frameworks)]`
already triggered a deny-by-default future-incompatibility lint since
Rust 1.77, but will now become a hard error.
- [Add warn-by-default `dangerous_implicit_autorefs` lint against
implicit autoref of raw pointer
dereference.](https://redirect.github.com/rust-lang/rust/pull/123239 )
The lint [will be bumped to
deny-by-default](https://redirect.github.com/rust-lang/rust/pull/141661 )
in the next version of Rust.
- [Add `invalid_null_arguments` lint to prevent invalid usage of null
pointers.](https://redirect.github.com/rust-lang/rust/pull/119220 )
This lint is uplifted from `clippy::invalid_null_ptr_usage`.
- [Change trait impl candidate preference for builtin impls and trivial
where-clauses.](https://redirect.github.com/rust-lang/rust/pull/138176 )
- [Check types of generic const parameter
defaults](https://redirect.github.com/rust-lang/rust/pull/139646 )
<a id="1.88.0-Compiler"></a>
## Compiler
- [Stabilize `-Cdwarf-version` for selecting the version of DWARF debug
information to
generate.](https://redirect.github.com/rust-lang/rust/pull/136926 )
<a id="1.88.0-Platform-Support"></a>
## Platform Support
- [Demote `i686-pc-windows-gnu` to Tier
2.](https://blog.rust-lang.org/2025/05/26/demoting-i686-pc-windows-gnu/ )
Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
[platform-support-doc]:
https://doc.rust-lang.org/rustc/platform-support.html
<a id="1.88.0-Libraries"></a>
## Libraries
- [Remove backticks from `#[should_panic]` test failure
message.](https://redirect.github.com/rust-lang/rust/pull/136160 )
- [Guarantee that `[T; N]::from_fn` is generated in order of increasing
indices.](https://redirect.github.com/rust-lang/rust/pull/139099 ), for
those passing it a stateful closure.
- [The libtest flag `--nocapture` is deprecated in favor of the more
consistent `--no-capture`
flag.](https://redirect.github.com/rust-lang/rust/pull/139224 )
- [Guarantee that `{float}::NAN` is a quiet
NaN.](https://redirect.github.com/rust-lang/rust/pull/139483 )
<a id="1.88.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`Cell::update`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.update )
- [`impl Default for *const
T`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*const+T )
- [`impl Default for *mut
T`](https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*mut+T )
-
[`HashMap::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.extract_if )
-
[`HashSet::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.extract_if )
-
[`proc_macro::Span::line`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.line )
-
[`proc_macro::Span::column`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.column )
-
[`proc_macro::Span::start`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.start )
-
[`proc_macro::Span::end`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.end )
-
[`proc_macro::Span::file`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.file )
-
[`proc_macro::Span::local_file`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.local_file )
These previously stable APIs are now stable in const contexts:
-
[`NonNull<T>::replace`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.replace )
- [`<*mut
T>::replace`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.replace )
-
[`std::ptr::swap_nonoverlapping`](https://redirect.github.com/rust-lang/rust/pull/137280 )
- [`Cell::{replace, get, get_mut, from_mut,
as_slice_of_cells}`](https://redirect.github.com/rust-lang/rust/pull/137928 )
<a id="1.88.0-Cargo"></a>
## Cargo
- [Stabilize automatic garbage
collection.](https://redirect.github.com/rust-lang/cargo/pull/14287/ )
- [use `zlib-rs` for gzip compression in rust
code](https://redirect.github.com/rust-lang/cargo/pull/15417/ )
<a id="1.88.0-Rustdoc"></a>
## Rustdoc
- [Doctests can be ignored based on target names using `ignore-*`
attributes.](https://redirect.github.com/rust-lang/rust/pull/137096 )
- [Stabilize the `--test-runtool` and `--test-runtool-arg` CLI options
to specify a program (like qemu) and its arguments to run a
doctest.](https://redirect.github.com/rust-lang/rust/pull/137096 )
<a id="1.88.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Finish changing the internal representation of pasted
tokens](https://redirect.github.com/rust-lang/rust/pull/124141 ). Certain
invalid declarative macros that were previously accepted in obscure
circumstances are now correctly rejected by the compiler. Use of a `tt`
fragment specifier can often fix these macros.
- [Fully de-stabilize the `#[bench]`
attribute](https://redirect.github.com/rust-lang/rust/pull/134273 ).
Usage of `#[bench]` without `#![feature(custom_test_frameworks)]`
already triggered a deny-by-default future-incompatibility lint since
Rust 1.77, but will now become a hard error.
- [Fix borrow checking some always-true
patterns.](https://redirect.github.com/rust-lang/rust/pull/139042 )
The borrow checker was overly permissive in some cases, allowing
programs that shouldn't have compiled.
- [Update the minimum external LLVM to
19.](https://redirect.github.com/rust-lang/rust/pull/139275 )
- [Make it a hard error to use a vector type with a non-Rust ABI without
enabling the required target
feature.](https://redirect.github.com/rust-lang/rust/pull/139309 )
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ).
View the [repository job
log](https://developer.mend.io/github/rust-lang/cargo ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
2025-06-27 13:34:12 +00:00
Ed Page
0b611990f4
style: Use inlined format args
2025-06-26 16:40:32 -05:00