Skip to content

Commit 18067a7

Browse files
author
The rustc-josh-sync Cronjob Bot
committed
Merge ref '2dc30247c5d8' from rust-lang/rust
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 2dc3024 Filtered ref: dab12aee0f52f7b83cc62ae565855c731bed502f Upstream diff: 47cd712...2dc3024 This merge was created using https://github.com/rust-lang/josh-sync.
2 parents fe79161 + 2dc3024 commit 18067a7

File tree

2,882 files changed

+51043
-30247
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,882 files changed

+51043
-30247
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
custom: ["rust-lang.org/funding"]

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,7 @@ jobs:
313313
needs: [ calculate_matrix, job ]
314314
# !cancelled() executes the job regardless of whether the previous jobs passed or failed
315315
if: ${{ !cancelled() && contains(fromJSON('["auto", "try"]'), needs.calculate_matrix.outputs.run_type) }}
316+
environment: ${{ ((github.repository == 'rust-lang/rust' && (github.ref == 'refs/heads/try' || github.ref == 'refs/heads/try-perf' || github.ref == 'refs/heads/automation/bors/try' || github.ref == 'refs/heads/auto')) && 'bors') || '' }}
316317
steps:
317318
- name: checkout the source code
318319
uses: actions/checkout@v5

.github/workflows/ghcr.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ jobs:
5555
images=(
5656
# Mirrored because used by the tidy job, which doesn't cache Docker images
5757
"ubuntu:22.04"
58+
# Mirrored because used by x86-64-gnu-miri
59+
"ubuntu:24.04"
5860
# Mirrored because used by all linux CI jobs, including tidy
5961
"moby/buildkit:buildx-stable-1"
6062
# Mirrored because used when CI is running inside a Docker container

.mailmap

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Andre Bogus <bogusandre@gmail.com>
4343
Andre Bogus <bogusandre@gmail.com> <andre.bogus@aleph-alpha.de>
4444
Andre Bogus <bogusandre@gmail.com> <andre.bogus@ankordata.de>
4545
Andrea Ciliberti <meziu210@icloud.com>
46+
4647
Andreas Gal <gal@mozilla.com> <andreas.gal@gmail.com>
4748
Andreas Jonson <andjo403@users.noreply.github.com>
4849
Andrew Gauger <andygauge@gmail.com>
@@ -82,12 +83,15 @@ Ben Sago <ogham@users.noreply.github.com> <ogham@bsago.me>
8283
Ben Striegel <ben.striegel@gmail.com>
8384
Benjamin Jackman <ben@jackman.biz>
8485
Benoît Cortier <benoit.cortier@fried-world.eu>
86+
binarycat <binarycat@envs.net> lolbinarycat <dogedoge61+github@gmail.com> <dogedoge61@gmail.com>
8587
Bheesham Persaud <bheesham123@hotmail.com> Bheesham Persaud <bheesham.persaud@live.ca>
8688
bjorn3 <17426603+bjorn3@users.noreply.github.com> <bjorn3@users.noreply.github.com>
8789
bjorn3 <17426603+bjorn3@users.noreply.github.com> <bjorn3_gh@protonmail.com>
8890
Björn Steinbrink <bsteinbr@gmail.com> <B.Steinbrink@gmx.de>
8991
blake2-ppc <ulrik.sverdrup@gmail.com> <blake2-ppc>
90-
blyxyas <blyxyas@gmail.com> Alejandra González <blyxyas@gmail.com>
92+
Alejandra González <blyxyas@goose.love> blyxyas <blyxyas@gmail.com>
93+
Alejandra González <blyxyas@goose.love> blyxyas <blyxyas@goose.love>
94+
Alejandra González <blyxyas@goose.love> Alejandra González <blyxyas@gmail.com>
9195
boolean_coercion <booleancoercion@gmail.com>
9296
Boris Egorov <jightuse@gmail.com> <egorov@linux.com>
9397
bors <bors@rust-lang.org> bors[bot] <26634292+bors[bot]@users.noreply.github.com>
@@ -427,6 +431,7 @@ Lzu Tao <taolzu@gmail.com>
427431
Maik Klein <maikklein@googlemail.com>
428432
Maja Kądziołka <maya@compilercrim.es> <github@compilercrim.es>
429433
Maja Kądziołka <maya@compilercrim.es> <kuba@kadziolka.net>
434+
Makai <m4kai410@gmail.com>
430435
Malo Jaffré <jaffre.malo@gmail.com>
431436
Manish Goregaokar <manishsmail@gmail.com>
432437
Mara Bos <m-ou.se@m-ou.se>

Cargo.lock

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ dependencies = [
7474

7575
[[package]]
7676
name = "annotate-snippets"
77-
version = "0.12.9"
77+
version = "0.12.10"
7878
source = "registry+https://github.com/rust-lang/crates.io-index"
79-
checksum = "a44baf24dd94e781f74dfe67ffee75a09a57971ddf0f615a178b4f6d404b48ff"
79+
checksum = "15580ece6ea97cbf832d60ba19c021113469480852c6a2a6beb0db28f097bf1f"
8080
dependencies = [
8181
"anstyle",
8282
"memchr",
@@ -621,7 +621,7 @@ checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d"
621621

622622
[[package]]
623623
name = "clippy"
624-
version = "0.1.93"
624+
version = "0.1.94"
625625
dependencies = [
626626
"anstream",
627627
"askama",
@@ -648,7 +648,7 @@ dependencies = [
648648

649649
[[package]]
650650
name = "clippy_config"
651-
version = "0.1.93"
651+
version = "0.1.94"
652652
dependencies = [
653653
"clippy_utils",
654654
"itertools",
@@ -671,7 +671,7 @@ dependencies = [
671671

672672
[[package]]
673673
name = "clippy_lints"
674-
version = "0.1.93"
674+
version = "0.1.94"
675675
dependencies = [
676676
"arrayvec",
677677
"cargo_metadata 0.18.1",
@@ -703,7 +703,7 @@ dependencies = [
703703

704704
[[package]]
705705
name = "clippy_utils"
706-
version = "0.1.93"
706+
version = "0.1.94"
707707
dependencies = [
708708
"arrayvec",
709709
"itertools",
@@ -1107,7 +1107,7 @@ dependencies = [
11071107

11081108
[[package]]
11091109
name = "declare_clippy_lint"
1110-
version = "0.1.93"
1110+
version = "0.1.94"
11111111

11121112
[[package]]
11131113
name = "derive-where"
@@ -3613,6 +3613,7 @@ dependencies = [
36133613
"gimli 0.31.1",
36143614
"itertools",
36153615
"libc",
3616+
"libloading 0.9.0",
36163617
"measureme",
36173618
"object 0.37.3",
36183619
"rustc-demangle",
@@ -3838,7 +3839,7 @@ dependencies = [
38383839
name = "rustc_errors"
38393840
version = "0.0.0"
38403841
dependencies = [
3841-
"annotate-snippets 0.12.9",
3842+
"annotate-snippets 0.12.10",
38423843
"anstream",
38433844
"anstyle",
38443845
"derive_setters",
@@ -3945,6 +3946,7 @@ dependencies = [
39453946
"rustc_hashes",
39463947
"rustc_hir_id",
39473948
"rustc_index",
3949+
"rustc_lint_defs",
39483950
"rustc_macros",
39493951
"rustc_serialize",
39503952
"rustc_span",
@@ -3962,14 +3964,14 @@ dependencies = [
39623964
"rustc_abi",
39633965
"rustc_arena",
39643966
"rustc_ast",
3965-
"rustc_attr_parsing",
39663967
"rustc_data_structures",
39673968
"rustc_errors",
39683969
"rustc_feature",
39693970
"rustc_fluent_macro",
39703971
"rustc_hir",
39713972
"rustc_index",
39723973
"rustc_infer",
3974+
"rustc_lint",
39733975
"rustc_lint_defs",
39743976
"rustc_macros",
39753977
"rustc_middle",
@@ -4010,7 +4012,6 @@ dependencies = [
40104012
"itertools",
40114013
"rustc_abi",
40124014
"rustc_ast",
4013-
"rustc_attr_parsing",
40144015
"rustc_data_structures",
40154016
"rustc_errors",
40164017
"rustc_fluent_macro",
@@ -4432,7 +4433,6 @@ dependencies = [
44324433
"rustc_abi",
44334434
"rustc_ast",
44344435
"rustc_ast_lowering",
4435-
"rustc_ast_pretty",
44364436
"rustc_attr_parsing",
44374437
"rustc_data_structures",
44384438
"rustc_errors",
@@ -4631,7 +4631,6 @@ dependencies = [
46314631
name = "rustc_session"
46324632
version = "0.0.0"
46334633
dependencies = [
4634-
"bitflags",
46354634
"getopts",
46364635
"libc",
46374636
"rand 0.9.2",
@@ -4658,6 +4657,7 @@ dependencies = [
46584657
name = "rustc_span"
46594658
version = "0.0.0"
46604659
dependencies = [
4660+
"bitflags",
46614661
"blake3",
46624662
"derive-where",
46634663
"indexmap",
@@ -4869,6 +4869,7 @@ dependencies = [
48694869
"indexmap",
48704870
"itertools",
48714871
"minifier",
4872+
"proc-macro2",
48724873
"pulldown-cmark-escape",
48734874
"regex",
48744875
"rustdoc-json-types",
@@ -5615,6 +5616,7 @@ dependencies = [
56155616
"semver",
56165617
"serde",
56175618
"similar",
5619+
"tempfile",
56185620
"termcolor",
56195621
"toml 0.7.8",
56205622
"walkdir",

RELEASES.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,88 @@
1+
Version 1.92.0 (2025-12-11)
2+
==========================
3+
4+
<a id="1.92.0-Language"></a>
5+
6+
Language
7+
--------
8+
- [Document `MaybeUninit` representation and validity](https://github.com/rust-lang/rust/pull/140463)
9+
- [Allow `&raw [mut | const]` for union field in safe code](https://github.com/rust-lang/rust/pull/141469)
10+
- [Prefer item bounds of associated types over where-bounds for auto-traits and `Sized`](https://github.com/rust-lang/rust/pull/144064)
11+
- [Do not materialize `X` in `[X; 0]` when `X` is unsizing a const](https://github.com/rust-lang/rust/pull/145277)
12+
- [Support combining `#[track_caller]` and `#[no_mangle]` (requires every declaration specifying `#[track_caller]` as well)](https://github.com/rust-lang/rust/pull/145724)
13+
- [Make never type lints `never_type_fallback_flowing_into_unsafe` and `dependency_on_unit_never_type_fallback` deny-by-default](https://github.com/rust-lang/rust/pull/146167)
14+
- [Allow specifying multiple bounds for same associated item, except in trait objects](https://github.com/rust-lang/rust/pull/146593)
15+
- [Slightly strengthen higher-ranked region handling in coherence](https://github.com/rust-lang/rust/pull/146725)
16+
- [The `unused_must_use` lint no longer warns on `Result<(), Uninhabited>` (for instance, `Result<(), !>`), or `ControlFlow<Uninhabited, ()>`](https://github.com/rust-lang/rust/pull/147382). This avoids having to check for an error that can never happen.
17+
18+
<a id="1.92.0-Compiler"></a>
19+
20+
Compiler
21+
--------
22+
- [Make `mips64el-unknown-linux-muslabi64` link dynamically](https://github.com/rust-lang/rust/pull/146858)
23+
- [Remove current code for embedding command-line args in PDB](https://github.com/rust-lang/rust/pull/147022)
24+
Command-line information is typically not needed by debugging tools, and the removed code
25+
was causing problems for incremental builds even on targets that don't use PDB debuginfo.
26+
27+
<a id="1.92.0-Libraries"></a>
28+
29+
Libraries
30+
---------
31+
- [Specialize `Iterator::eq{_by}` for `TrustedLen` iterators](https://github.com/rust-lang/rust/pull/137122)
32+
- [Simplify `Extend` for tuples](https://github.com/rust-lang/rust/pull/138799)
33+
- [Added details to `Debug` for `EncodeWide`](https://github.com/rust-lang/rust/pull/140153).
34+
- [`iter::Repeat::last`](https://github.com/rust-lang/rust/pull/147258) and [`count`](https://github.com/rust-lang/rust/pull/146410) will now panic, rather than looping infinitely.
35+
36+
<a id="1.92.0-Stabilized-APIs"></a>
37+
38+
Stabilized APIs
39+
---------------
40+
41+
- [`NonZero<u{N}>::div_ceil`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.div_ceil)
42+
- [`Location::file_as_c_str`](https://doc.rust-lang.org/stable/std/panic/struct.Location.html#method.file_as_c_str)
43+
- [`RwLockWriteGuard::downgrade`](https://doc.rust-lang.org/stable/std/sync/struct.RwLockWriteGuard.html#method.downgrade)
44+
- [`Box::new_zeroed`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_zeroed)
45+
- [`Box::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.new_zeroed_slice)
46+
- [`Rc::new_zeroed`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_zeroed)
47+
- [`Rc::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.new_zeroed_slice)
48+
- [`Arc::new_zeroed`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_zeroed)
49+
- [`Arc::new_zeroed_slice`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.new_zeroed_slice)
50+
- [`btree_map::Entry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/btree_map/enum.Entry.html#method.insert_entry)
51+
- [`btree_map::VacantEntry::insert_entry`](https://doc.rust-lang.org/stable/std/collections/btree_map/struct.VacantEntry.html#method.insert_entry)
52+
- [`impl Extend<proc_macro::Group> for proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CGroup%3E-for-TokenStream)
53+
- [`impl Extend<proc_macro::Literal> for proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CLiteral%3E-for-TokenStream)
54+
- [`impl Extend<proc_macro::Punct> for proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CPunct%3E-for-TokenStream)
55+
- [`impl Extend<proc_macro::Ident> for proc_macro::TokenStream`](https://doc.rust-lang.org/stable/proc_macro/struct.TokenStream.html#impl-Extend%3CIdent%3E-for-TokenStream)
56+
57+
These previously stable APIs are now stable in const contexts:
58+
59+
- [`<[_]>::rotate_left`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.rotate_left)
60+
- [`<[_]>::rotate_right`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.rotate_right)
61+
62+
<a id="1.92.0-Cargo"></a>
63+
64+
Cargo
65+
-----
66+
- [Added a new chapter](https://github.com/rust-lang/cargo/issues/16119) to the Cargo book, ["Optimizing Build Performance"](https://doc.rust-lang.org/stable/cargo/guide/build-performance.html).
67+
68+
<a id="1.92.0-Rustdoc"></a>
69+
70+
Rustdoc
71+
-----
72+
- [If a trait item appears in rustdoc search, hide the corresponding impl items](https://github.com/rust-lang/rust/pull/145898). Previously a search for "last" would show both `Iterator::last` as well as impl methods like `std::vec::IntoIter::last`. Now these impl methods will be hidden, freeing up space for inherent methods like `BTreeSet::last`.
73+
- [Relax rules for identifiers in search](https://github.com/rust-lang/rust/pull/147860). Previously you could only search for identifiers that were valid in rust code, now searches only need to be valid as part of an identifier. For example, you can now perform a search that starts with a digit.
74+
75+
<a id="1.92.0-Compatibility-Notes"></a>
76+
77+
Compatibility Notes
78+
-------------------
79+
* [Fix backtraces with `-C panic=abort` on Linux by generating unwind tables by default](https://github.com/rust-lang/rust/pull/143613). Build with `-C force-unwind-tables=no` to keep omitting unwind tables.
80+
- As part of the larger effort refactoring compiler built-in attributes and their diagnostics, [the future-compatibility lint `invalid_macro_export_arguments` is upgraded to deny-by-default and will be reported in dependencies too.](https://github.com/rust-lang/rust/pull/143857)
81+
- [Update the minimum external LLVM to 20](https://github.com/rust-lang/rust/pull/145071)
82+
- [Prevent downstream `impl DerefMut for Pin<LocalType>`](https://github.com/rust-lang/rust/pull/145608)
83+
- [Don't apply temporary lifetime extension rules to the arguments of non-extended `pin!` and formatting macros](https://github.com/rust-lang/rust/pull/145838)
84+
85+
186
Version 1.91.1 (2025-11-10)
287
===========================
388

bootstrap.example.toml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,31 @@
191191
# Currently, this is only supported for the `x86_64-unknown-linux-gnu` target.
192192
#gcc.download-ci-gcc = false
193193

194+
# Provide a directory of prebuilt libgccjit.so dylibs for given (host, target) compilation pairs.
195+
# This is useful when you want to cross-compile `rustc` to another target since GCC is not a
196+
# multi-target compiler.
197+
# You have to use a directory structure that looks like this:
198+
# `<libgccjit-libs-dir>/<host>/<target>/libgccjit.so`.
199+
# For example:
200+
#
201+
# ```
202+
# <libgccjit-libs-dir>
203+
# ├── m68k-unknown-linux-gnu
204+
# │ └── m68k-unknown-linux-gnu
205+
# │ └── libgccjit.so
206+
# └── x86_64-unknown-linux-gnu
207+
# ├── m68k-unknown-linux-gnu
208+
# │ └── libgccjit.so
209+
# └── x86_64-unknown-linux-gnu
210+
# └── libgccjit.so
211+
# ```
212+
# The directory above would allow you to cross-compile rustc from x64 to m68k
213+
#
214+
# Note that this option has priority over `gcc.download-ci-gcc`.
215+
# If you set both, bootstrap will first try to load libgccjit.so from this directory.
216+
# Only if it isn't found, it will try to download it from CI or build it locally.
217+
#gcc.libgccjit-libs-dir = "/path/to/libgccjit-libs-dir"
218+
194219
# =============================================================================
195220
# General build configuration options
196221
# =============================================================================

compiler/rustc_abi/src/callconv.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ impl<'a, Ty> TyAndLayout<'a, Ty> {
6060
/// This is public so that it can be used in unit tests, but
6161
/// should generally only be relevant to the ABI details of
6262
/// specific targets.
63+
#[tracing::instrument(skip(cx), level = "debug")]
6364
pub fn homogeneous_aggregate<C>(&self, cx: &C) -> Result<HomogeneousAggregate, Heterogeneous>
6465
where
6566
Ty: TyAbiInterface<'a, C> + Copy,
@@ -82,6 +83,10 @@ impl<'a, Ty> TyAndLayout<'a, Ty> {
8283
}))
8384
}
8485

86+
BackendRepr::ScalableVector { .. } => {
87+
unreachable!("`homogeneous_aggregate` should not be called for scalable vectors")
88+
}
89+
8590
BackendRepr::ScalarPair(..) | BackendRepr::Memory { sized: true } => {
8691
// Helper for computing `homogeneous_aggregate`, allowing a custom
8792
// starting offset (used below for handling variants).

0 commit comments

Comments
 (0)