about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-06-04remove outdated RUSTC_SYSROOT handling for ci-rustconur-ozkan-10/+0
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-04make it possible to request stage 0 std with `Builder::ensure`onur-ozkan-15/+19
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-04run `check::Std` as the final steponur-ozkan-1/+7
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-03Auto merge of #141984 - matthiaskrgr:rollup-wy6j9ca, r=matthiaskrgrbors-5460/+5958
Rollup of 8 pull requests Successful merges: - rust-lang/rust#137725 (Add `iter` macro) - rust-lang/rust#141455 (std: abort the process on failure to allocate a TLS key) - rust-lang/rust#141569 (Replace ad-hoc ABI "adjustments" with an `AbiMap` to `CanonAbi`) - rust-lang/rust#141698 (Use the informative error as the main const eval error message) - rust-lang/rust#141925 (Remove bootstrap cfgs from library/) - rust-lang/rust#141943 (Remove pre-expansion AST stats.) - rust-lang/rust#141945 (Remove `Path::is_ident`.) - rust-lang/rust#141957 (Add missing `dyn` keywords to tests that do not test for them Part 2) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-03Rollup merge of #141957 - ferrocene:lw/missing-dyn-kw2, r=compiler-errorsMatthias Krüger-31/+26
Add missing `dyn` keywords to tests that do not test for them Part 2 Some more tests that were found
2025-06-03Rollup merge of #141945 - nnethercote:rm-Path-is_ident, r=compiler-errorsMatthias Krüger-14/+10
Remove `Path::is_ident`. It checks that a path has a single segment that matches the given symbol, and that there are zero generic arguments. It has a single use. We also have `impl PartialEq<Symbol> for Path` which does exactly the same thing *except* it doesn't check for zero generic arguments, which seems like an oversight. It has numerous uses. This commit removes `Path::is_ident`, adds a test for zero generic arguments to `PartialEq<Symbol> for Path`, and changes the single use of `is_ident` to instead use `==`. r? `@wesleywiser`
2025-06-03Rollup merge of #141943 - nnethercote:rm-pre-expansion-ast-stats, ↵Matthias Krüger-122/+61
r=compiler-errors Remove pre-expansion AST stats. They're very little value, because they only measure the top-level `main.rs` or `lib.rs` file. (Other `.rs` files don't get read and parsed until expansion occurs.) I saw an example recently where the pre-expansion AST was 3KB in size and the post-expansion AST was 66MB. I kept the "POST EXPANSION" in the output header, I think that's useful information to avoid possible confusion about when the measurement happens. r? `@davidtwco`
2025-06-03Rollup merge of #141925 - cuviper:vestigial-bootstrap, r=workingjubileeMatthias Krüger-134/+14
Remove bootstrap cfgs from library/ These `cfg(bootstrap)` are always false now that rust-lang/rust#119899 has landed, and likewise `cfg(not(bootstrap))` is always true. Therefore, we don't need to wait for the usual stage0 bump to clean these up.
2025-06-03Rollup merge of #141698 - oli-obk:ctfe-err-flip, r=RalfJungMatthias Krüger-4299/+4132
Use the informative error as the main const eval error message r? `@RalfJung` I only did the minimal changes necessary to the const eval error machinery. I'd prefer not to mix test changes with refactorings 😆
2025-06-03Rollup merge of #141569 - workingjubilee:canonicalize-abi, r=bjorn3Matthias Krüger-788/+879
Replace ad-hoc ABI "adjustments" with an `AbiMap` to `CanonAbi` Our `conv_from_spec_abi`, `adjust_abi`, and `is_abi_supported` combine to give us a very confusing way of reasoning about what _actual_ calling convention we want to lower our code to and whether we want to compile the resulting code at all. Instead of leaving this code as a miniature adventure game in which someone tries to combine stateful mutations into a Rube Goldberg machine that will let them escape the maze and arrive at the promised land of codegen, we let `AbiMap` devour this complexity. Once you have an `AbiMap`, you can answer which `ExternAbi`s will lower to what `CanonAbi`s (and whether they will lower at all). Removed: - `conv_from_spec_abi` replaced by `AbiMap::canonize_abi` - `adjust_abi` replaced by same - `Conv::PreserveAll` as unused - `Conv::Cold` as unused - `enum Conv` replaced by `enum CanonAbi` target-spec.json changes: - If you have a target-spec.json then now your "entry-abi" key will be specified in terms of one of the `"{abi}"` strings Rust recognizes, e.g. ```json "entry-abi": "C", "entry-abi": "win64", "entry-abi": "aapcs", ```
2025-06-03Rollup merge of #141455 - joboet:tls_exhaustion_abort, r=tgross35Matthias Krüger-11/+10
std: abort the process on failure to allocate a TLS key The panic machinery uses TLS, so panicking if no TLS keys are left can lead to infinite recursion (see https://github.com/rust-lang/rust/issues/140798#issuecomment-2872307377). Rather than having separate logic for the panic count and the thread name, just always abort the process if a TLS key allocation fails. This also has the benefit of aligning the key-based TLS implementation with the documentation, which does not mention that a panic could also occur because of resource exhaustion.
2025-06-03Rollup merge of #137725 - oli-obk:i-want-to-move-it-move-it, ↵Matthias Krüger-61/+826
r=compiler-errors,traviscross Add `iter` macro See related discussion in https://rust-lang.zulipchat.com/#narrow/channel/481571-t-lang.2Fgen/topic/iter!.20macro/near/500784563 very little error case testing so far, but the success path works. There is also no `IterFn` trait yet, as T-lang didn't consider it something urgently needed I think we can implement it in follow-up PRs. r? lang for the tests, `@compiler-errors` for the impl
2025-06-03Auto merge of #141229 - tgross35:builtins-josh-subtree, r=Kobzolbors-3/+53018
Merge `compiler-builtins` as a Josh subtree Use the Josh [1] utility to add `compiler-builtins` as a subtree, which will allow us to stop using crates.io for updates. This is intended to help resolve some problems when unstable features change and require code changes in `compiler-builtins`, which sometimes gets trapped in a bootstrap cycle. This was done using `josh-filter` built from the r24.10.04 tag: git fetch https://github.com/rust-lang/compiler-builtins.git 233434412fe7eced8f1ddbfeddabef1d55e493bd josh-filter ":prefix=library/compiler-builtins" FETCH_HEAD git merge --allow-unrelated FILTERED_HEAD The HEAD in the `compiler-builtins` repository is 233434412f ("fix an if statement that can be collapsed"). [1]: https://github.com/josh-project/josh
2025-06-03Add `iter` macroOli Scherer-61/+826
This adds an `iter!` macro that can be used to create movable generators. This also adds a yield_expr feature so the `yield` keyword can be used within iter! macro bodies. This was needed because several unstable features each need `yield` expressions, so this allows us to stabilize them separately from any individual feature. Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de> Co-authored-by: Jieyou Xu <jieyouxu@outlook.com> Co-authored-by: Travis Cross <tc@traviscross.com>
2025-06-03compiler: actually remove Conv now that it is irrelevantJubilee Young-163/+1
2025-06-03compiler: simplify TargetOptions ABI functionsJubilee Young-108/+2
`adjust_abi` is not needed and `is_abi_supported` can be a 1-liner.
2025-06-03bless test for CanonAbi::X86(SysV64) changeJubilee Young-1/+3
2025-06-03miri: sed to CanonAbiJubilee Young-327/+354
2025-06-03cg_gcc: convert to CanonAbiJubilee Young-48/+31
2025-06-03cg_clif: convert to CanonAbiJubilee Young-27/+22
2025-06-03cg_llvm: convert to CanonAbiJubilee Young-29/+40
2025-06-03compiler: change Conv to CanonAbiJubilee Young-65/+64
2025-06-03compiler: use CanonAbi for entry_abiJubilee Young-22/+27
makes entry_abi a lowering of the ABI string, so now it can be ```json "entry_abi": "C", "entry_abi": "win64", "entry_abi": "aapcs", ```
2025-06-03compiler: add AbiMapJubilee Young-1/+190
- Add AbiMapping for encoding the nuance of deprecated ABIs
2025-06-03Auto merge of #141961 - matthiaskrgr:rollup-r09j2sp, r=matthiaskrgrbors-241/+673
Rollup of 8 pull requests Successful merges: - rust-lang/rust#141724 (fix(rust-lang/rust#141141): When expanding `PartialEq`, check equality of scalar types first.) - rust-lang/rust#141833 (`tests/ui`: A New Order [2/N]) - rust-lang/rust#141861 (Switch `x86_64-msvc-{1,2}` back to Windows Server 2025 images) - rust-lang/rust#141914 (redesign stage 0 std follow-ups) - rust-lang/rust#141918 (Deconstruct values in the THIR visitor) - rust-lang/rust#141923 (Update books) - rust-lang/rust#141931 (Deconstruct values in the THIR visitor) - rust-lang/rust#141956 (Remove two trait methods from cg_ssa) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-03Auto merge of #136942 - Kobzol:stage0-sccache, r=jieyouxubors-0/+22
Use ccache for stage0 tool builds Now after the stage0 redesign, we can actually start ccaching the build of the compiler itself. We can also cache the bootstrap tools, since these are also built with the stage0 compiler. Stage0 compiler builds are now being cached: https://github.com/rust-lang/rust/actions/runs/15397246267#summary-43321151192 (`..bootstrap::core::build_steps::compile::Rustc 483.10s 40.41s -91.6%`). It's not a gigantic win everywhere, but it should help. It seems to make the Linux jobs ~10 minute faster. It should be especially useful on PR builds after https://github.com/rust-lang/rust/pull/141948. r? `@jieyouxu` try-job: `x86_64-gnu-llvm-19*` try-job: `x86_64-msvc*` try-job: `x86_64-apple*` try-job: `dist-x86_64-linux`
2025-06-03Rollup merge of #141956 - bjorn3:minor_cg_ssa_cleanup, r=oli-obkMatthias Krüger-25/+11
Remove two trait methods from cg_ssa They are only called by cg_llvm.
2025-06-03Rollup merge of #141931 - ArtemIsmagilov:issue-141849_2, r=nnethercoteMatthias Krüger-90/+147
Deconstruct values in the THIR visitor I continue to add deconstruction for task rust-lang/rust#141849 The changes concern a more complex part of the task `compiler/rustc_hir/src/intravisit.rs` r? `@nnethercote`
2025-06-03Rollup merge of #141923 - rustbot:docs-update, r=ehussMatthias Krüger-0/+0
Update books ## rust-lang/book 4 commits in 230c68bc1e08f5f3228384a28cc228c81dfbd10d..634724ea85ebb08a542970bf8871ac8b0f77fd15 2025-05-29 13:16:14 UTC to 2025-05-22 21:35:03 UTC - Chapter 10 from tech review (rust-lang/book#4379) - Chapter 9 from tech review (rust-lang/book#4377) - Chapter 8 from tech review (rust-lang/book#4378) - Chapter 7 from tech review (rust-lang/book#4374) ## rust-embedded/book 3 commits in 0b8219ac23a3e09464e4e0166c768cf1c4bba0d5..10fa1e084365f23f24ad0000df541923385b73b6 2025-05-27 18:37:30 UTC to 2025-05-27 18:26:36 UTC - portability: add reference to embedded-hal docs (rust-embedded/book#391) - remove the unused and deprecated `multilingual` field from `book.toml` (rust-embedded/book#388) - Ci upgrade 20250522 (rust-embedded/book#393) ## rust-lang/nomicon 4 commits in c76a20f0d987145dcedf05c5c073ce8d91f2e82a..8b61acfaea822e9ac926190bc8f15791c33336e8 2025-05-26 10:16:09 UTC to 2025-05-23 15:03:00 UTC - Use inline const expression in unchecked-uninit.md (rust-lang/nomicon#492) - Fix code sample output in unchecked-uninit.md (rust-lang/nomicon#491) - Use consistent type parameters in subtyping.md (rust-lang/nomicon#493) - Fix typo in atomics.md (rust-lang/nomicon#494) ## rust-lang/reference 1 commits in 118fd1f1f0854f50e3ae1fe4b64862aad23009ca..8e0f593a30f3b56ddb0908fb7ab9249974e08738 2025-05-31 20:12:39 UTC to 2025-05-31 20:12:39 UTC - Minor fixes to `$crate` behavior (rust-lang/reference#1816) ## rust-lang/rust-by-example 4 commits in c9d151f9147c4808c77f0375ba3fa5d54443cb9e..21f4e32b8b40d36453fae16ec07ad4b857c445b6 2025-05-29 12:45:08 UTC to 2025-05-29 12:44:23 UTC - Update book.toml rename `author` field to `authors` (rust-lang/rust-by-example#1917) - Add example to comment.md to teach how to toggle a whole code block using block comments (rust-lang/rust-by-example#1919) - The example is not meant to be compiled with out passing arguments. (rust-lang/rust-by-example#1930) - added a shorthand for the #[should_panic(expected = "msg") (rust-lang/rust-by-example#1931)
2025-06-03Rollup merge of #141918 - ArtemIsmagilov:issue-141849, r=nnethercoteMatthias Krüger-10/+16
Deconstruct values in the THIR visitor Hi! I am a beginner rust developer. I'm trying to solve your problem rust-lang/rust#141849 I see that 2 files need to be corrected, so I’m starting with a simpler step, `compiler/rustc_middle/src/thir/visit.rs` r? `@krikera`
2025-06-03Rollup merge of #141914 - onur-ozkan:follow-ups, r=KobzolMatthias Krüger-18/+56
redesign stage 0 std follow-ups Various follow-ups pointed out on Zulip during post-merge discussions of [redesign stage 0 std #119899](https://github.com/rust-lang/rust/pull/119899). r? `@jieyouxu` Fixes https://github.com/rust-lang/rust/issues/141902. Fixes https://github.com/rust-lang/rust/issues/141905. cc `@jyn514`
2025-06-03Rollup merge of #141861 - jieyouxu:windows-server-2025-20250527, r=KobzolMatthias Krüger-8/+2
Switch `x86_64-msvc-{1,2}` back to Windows Server 2025 images New Windows Server 2025 images have been released (**20250527.1.0**). New images appear to not exhibit the lack-of-disk-space problem as tracked by rust-lang/rust#141022, and the new runner image's storage capacity appears to be configured correctly. Windows Server 2025 image version **20250527.1.0** release notes: <https://github.com/actions/runner-images/releases/tag/win25%2F20250527.1>. Resolves rust-lang/rust#141022.
2025-06-03Rollup merge of #141833 - Kivooeo:test-reform1, r=jieyouxuMatthias Krüger-32/+51
`tests/ui`: A New Order [2/N] part of rust-lang/rust#133895 r? `@jieyouxu` let's try this kind of commits, one for each file, commit's name shows what i did, hope this is not harder to review than previous
2025-06-03Rollup merge of #141724 - Sol-Ell:issue-141141-fix, r=nnethercoteMatthias Krüger-58/+390
fix(#141141): When expanding `PartialEq`, check equality of scalar types first. Fixes rust-lang/rust#141141. Now, `cs_eq` function of `partial_eq.rs` compares [scalar types](https://doc.rust-lang.org/rust-by-example/primitives.html#scalar-types) first. - Add `is_scalar` field to `FieldInfo`. - Add `is_scalar` method to `TyKind`. - Pass `FieldInfo` via `CsFold::Combine` and refactor code relying on it. - Implement `TryFrom<&str>` and `TryFrom<Symbol>` for FloatTy. - Implement `TryFrom<&str>` and `TryFrom<Symbol>` for IntTy. - Implement `TryFrom<&str>` and `TryFrom<Symbol>` for UintTy.
2025-06-03Add missing `dyn` keywords to tests that do not test for them Part 2Lukas Wirth-31/+26
2025-06-03Deconstruct values in the THIR visitorArtemIsmagilov-90/+147
2025-06-03Deconstruct values in the THIR visitorArtemIsmagilov-10/+16
2025-06-03Remove type_test from IntrinsicCallBuilderMethodsbjorn3-16/+5
It is only used within cg_llvm.
2025-06-03Remove get_dbg_loc from DebugInfoBuilderMethodsbjorn3-9/+6
It is only used within cg_llvm.
2025-06-03use better default stage for `check::Std` when stage isn't explicitonur-ozkan-9/+29
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-03Auto merge of #141954 - matthiaskrgr:rollup-zptd6t9, r=matthiaskrgrbors-725/+1009
Rollup of 9 pull requests Successful merges: - rust-lang/rust#141554 (Improve documentation for codegen options) - rust-lang/rust#141817 (rustc_llvm: add Windows system libs only when cross-compiling from Wi…) - rust-lang/rust#141843 (Add `visit_id` to ast `Visitor`) - rust-lang/rust#141881 (Subtree update of `rust-analyzer`) - rust-lang/rust#141898 ([rustdoc-json] Implement PartialOrd and Ord for rustdoc_types::Id) - rust-lang/rust#141921 (Disable f64 minimum/maximum tests for arm 32) - rust-lang/rust#141930 (Enable triagebot `[concern]` functionality) - rust-lang/rust#141936 (Decouple "reporting in deps" from `FutureIncompatibilityReason`) - rust-lang/rust#141949 (move `test-float-parse` tool into `src/tools` dir) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-03Rollup merge of #141949 - onur-ozkan:move-test-float-parse, r=KobzolMatthias Krüger-10/+10
move `test-float-parse` tool into `src/tools` dir Obviously `test-float-parse` is a tool like any other in `src/tools`. cc `@tgross35`
2025-06-03Rollup merge of #141936 - WaffleLapkin:report-in-deps-decoupling, r=oli-obkMatthias Krüger-82/+67
Decouple "reporting in deps" from `FutureIncompatibilityReason` The reason should just be it -- the reason. It never felt right to me that it was also responsible for whatever we include the warning in cargo's reports. It gets especially unruly if you want to add non-`FutureReleaseError*` warnings which are included in the reports. I just added a field to `FutureIncompatibleInfo` to control whatever the diagnostic is included in the cargo's reports.
2025-06-03Rollup merge of #141930 - Urgau:triagebot_concern, r=KobzolMatthias Krüger-0/+5
Enable triagebot `[concern]` functionality Documentation at: https://forge.rust-lang.org/triagebot/concern.html Example at: https://github.com/rust-lang/triagebot/pull/2024 r? Kobzol
2025-06-03Rollup merge of #141921 - ehuss:arm-min-max, r=tgross35Matthias Krüger-2/+2
Disable f64 minimum/maximum tests for arm 32 This disables the f64 minimum/maximum tests for the arm-unknown-linux-gnueabihf job. The next release will be supporting cross-compiled doctests, and these tests fail on that platform. It looks like this was just fixed via https://github.com/llvm/llvm-project/pull/142170, but I assume that will not trickle down to our copy of llvm in the next couple of weeks. Assuming that does get fixed when llvm is updated, then these can be removed. cc https://github.com/rust-lang/rust/issues/141087
2025-06-03Rollup merge of #141898 - LukeMathWalker:patch-1, r=aDotInTheVoidMatthias Krüger-1/+1
[rustdoc-json] Implement PartialOrd and Ord for rustdoc_types::Id This allows consumers to create collections that required an ordering relationship for their keys—e.g. a `BTreeMap`.
2025-06-03Rollup merge of #141881 - lnicola:sync-from-ra, r=lnicolaMatthias Krüger-298/+641
Subtree update of `rust-analyzer` r? `@ghost`
2025-06-03Rollup merge of #141843 - fee1-dead-contrib:ast_visitor_visit_id, r=oli-obkMatthias Krüger-327/+232
Add `visit_id` to ast `Visitor` This helps with efforts to deduplicate the `MutVisitor` and the `Visitor` code. All users of `Visitor`'s methods that have extra `NodeId` as parameters really just want to visit the id on its own. Also includes some methods deduplicated and cleaned up as a result of this change. r? oli-obk
2025-06-03Rollup merge of #141817 - mati865:fix-system-libs-when-cross-compiling, ↵Matthias Krüger-2/+2
r=cuviper rustc_llvm: add Windows system libs only when cross-compiling from Wi… …ndows This obviously doesn't work when cross-compiling from Linux. Split out from: https://github.com/rust-lang/rust/pull/140772 Fixes the issue described at [#general > Problems while trying to cross compile rustc for windows](https://rust-lang.zulipchat.com/#narrow/channel/122651-general/topic/Problems.20while.20trying.20to.20cross.20compile.20rustc.20for.20windows/with/520508561)
2025-06-03Rollup merge of #141554 - Noratrieb:document-codegen-opts-better, r=bjorn3Matthias Krüger-3/+49
Improve documentation for codegen options This adds more information to many different codegen options. It should not add any new guarantees, just document existing behavior. r? bjorn3