about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-02-24Merge pull request #19218 from Veykril/push-vqsronpuvrnxLukas Wirth-1/+0
Disable incremental on release builds
2025-02-24Disable incremental on release buildsLukas Wirth-1/+0
2025-02-24Merge pull request #19217 from lnicola/event-nameLaurențiu Nicola-6/+6
Fix `event_name` check is workflows
2025-02-24Merge pull request #19216 from lnicola/ubuntu-22.04Laurențiu Nicola-2/+2
internal: Downgrade to ubuntu-22.04 for aarch64 and arm builds
2025-02-24Fix event_name check in workflowsLaurențiu Nicola-6/+6
2025-02-24Downgrade to ubuntu-22.04 for aarch64-unknown-linux-gnu and ↵Laurențiu Nicola-2/+2
arm-unknown-linux-gnueabihf builds
2025-02-24Merge pull request #19212 from lnicola/sync-from-rustLaurențiu Nicola-10677/+16105
minor: sync from downstream
2025-02-24Update assist docsLaurențiu Nicola-149/+175
2025-02-24Format codeLaurențiu Nicola-2/+8
2025-02-24Add rustc_hashes and bump the othersLaurențiu Nicola-17/+38
2025-02-24Merge from rust-lang/rustLaurențiu Nicola-10510/+15885
2025-02-24Preparing for merge from rust-lang/rustLaurențiu Nicola-1/+1
2025-02-24Auto merge of #137271 - nikic:gep-nuw-2, r=scottmcmbors-29/+93
Emit getelementptr inbounds nuw for pointer::add() Lower pointer::add (via intrinsic::offset with unsigned offset) to getelementptr inbounds nuw on LLVM versions that support it. This lets LLVM make use of the pre-condition that the offset addition does not wrap in an unsigned sense. Together with inbounds, this also implies that the offset is non-negative. Fixes https://github.com/rust-lang/rust/issues/137217.
2025-02-23Auto merge of #137497 - tgross35:rollup-1oeclrr, r=tgross35bors-441/+406
Rollup of 8 pull requests Successful merges: - #136439 (Misc. `rustc_codegen_ssa` cleanups 🧹) - #136543 (intrinsics: unify rint, roundeven, nearbyint in a single round_ties_even intrinsic) - #136637 (Add binary_format to rustc target specs) - #137099 (Fix rustdoc test directives that were accidentally ignored 🧐) - #137297 (Update `compiler-builtins` to 0.1.147) - #137451 (FIx `sym` -> `syn` typo in tail-expr-drop-order type opt-out) - #137452 (bootstrap: add module docs for core:metadata) - #137483 (rename sub_ptr to offset_from_unsigned) r? `@ghost` `@rustbot` modify labels: rollup
2025-02-23Auto merge of #137476 - onur-ozkan:137469, r=jieyouxubors-47/+14
avoid `compiler_for` for dist tools and force the current compiler Using `compiler_for` in dist steps was causing to install stage1 tools into the dist tarballs, which doesn't match with the stage2 compiler. Fixes https://github.com/rust-lang/rust/issues/137469
2025-02-23Rollup merge of #137483 - bend-n:😅, r=NoratriebTrevor Gross-51/+51
rename sub_ptr to offset_from_unsigned i also made `byte_sub_ptr` `byte_offset_from_unsigned` fixes #137121 tracking issue #95892
2025-02-23Rollup merge of #137452 - ↵Trevor Gross-0/+7
Shourya742:2025-02-23-add-module-level-doc-for-core-metadata, r=Kobzol bootstrap: add module docs for core:metadata Add module doc for bootstrap:core:metadata
2025-02-23Rollup merge of #137451 - compiler-errors:synm, r=NoratriebTrevor Gross-1/+1
FIx `sym` -> `syn` typo in tail-expr-drop-order type opt-out The #131326 PR attempts to reduce some false positives for the `tail_expr_drop_order` lint by hard-coding some common ecosystem crate names. Specifically, I believe it attempts to opt out the drop impls from `syn` which only exist as optimizations. However, this was typo'd like "sym", which is a crate that has been [yanked](https://crates.io/crates/sym) (lol). This PR fixes that. cc `@dingxiangfei2009` `@nikomatsakis` -- did I mistake this? Was this meant to be a different crate? `@bors` rollup
2025-02-23Rollup merge of #137297 - tgross35:update-builtins, r=tgross35Trevor Gross-6/+6
Update `compiler-builtins` to 0.1.147 Removes an ABI hack that used `<2 x i64>` to return `i128` in `xmm0` on Windows [1]. [1]: https://github.com/rust-lang/compiler-builtins/pull/759 Link: https://github.com/rust-lang/rust/issues/116558 Link: https://github.com/rust-lang/compiler-builtins/issues/758 try-job: x86_64-mingw-1 try-job: x86_64-mingw-2
2025-02-23Rollup merge of #137099 - yotamofek:pr/rustdoc/fix-ignored-test-directives, ↵Trevor Gross-17/+17
r=fmease Fix rustdoc test directives that were accidentally ignored 🧐 Replace "// `@"` with "//@ ", and fix the tests so they actually pass, after directives are checked. ~~Only the first commit is mandatory, other two are small drive-bys.~~
2025-02-23Rollup merge of #136637 - Pyr0de:binary-format, r=NoratriebTrevor Gross-48/+102
Add binary_format to rustc target specs Added binary format field to `TargetOptions` Fixes #135724 r? `@Noratrieb`
2025-02-23Rollup merge of #136543 - RalfJung:round-ties-even, r=tgross35Trevor Gross-208/+127
intrinsics: unify rint, roundeven, nearbyint in a single round_ties_even intrinsic LLVM has three intrinsics here that all do the same thing (when used in the default FP environment). There's no reason Rust needs to copy that historically-grown mess -- let's just have one intrinsic and leave it up to the LLVM backend to decide how to lower that. Suggested by `@hanna-kruppe` in https://github.com/rust-lang/rust/issues/136459; Cc `@tgross35` try-job: test-various
2025-02-23Rollup merge of #136439 - yotamofek:pr/codegen-ssa-no-indexing, r=NoratriebTrevor Gross-110/+95
Misc. `rustc_codegen_ssa` cleanups 🧹 Just a bunch of stuff I found while reading the crate's code. Each commit can stand on its own. Maybe r? `@Noratrieb` because I saw you did some similar cleanups on these files a while ago? (feel free to re-assign, I'm just guessing)
2025-02-23Merge pull request #19191 from Veykril/push-yzzlosskwrxsLukas Wirth-131/+23
Remove `limit` crate in favor `usize`
2025-02-23Remove `limit` crate in favor `usize`Lukas Wirth-131/+23
2025-02-23rename sub_ptr 😅bendn-51/+51
2025-02-23Auto merge of #137225 - RalfJung:vectorcall, r=nnethercotebors-108/+172
vectorcall ABI: require SSE2 According to the official docs at https://learn.microsoft.com/en-us/cpp/cpp/vectorcall, SSE2 is required for this ABI. Add a check that enforces this. I put this together with the other checks ensuring the target features required for a function are present... however, since the ABI is known pre-monomorphization, it would be possible to do this check earlier, which would have the advantage of checking even in `cargo check`. It would have the disadvantage of spreading this code in yet more places. The first commit just does a little refactoring of the mono-time ABI check to make it easier to add the new check. Cc `@workingjubilee` try-job: dist-i586-gnu-i586-i686-musl
2025-02-23add FIXME note on `Builder::compiler_for`onur-ozkan-0/+3
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-23avoid `compiler_for` for dist tools and force the current compileronur-ozkan-47/+11
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-23Merge pull request #19209 from niller-g/masterLukas Wirth-73/+68
Parser inline test codegen panics and/or does not run
2025-02-23Auto merge of #137237 - cuviper:stage0, r=Mark-Simulacrumbors-1102/+543
Master bootstrap update https://forge.rust-lang.org/release/process.html#master-bootstrap-update-tuesday r? `@Mark-Simulacrum`
2025-02-23add stdarch compatibility hackRalf Jung-0/+12
2025-02-23Fix codegen of parser inline tests runnerniller-g-61/+59
When running `cargo codegen` the `crates/parser/test_data/generated/runner.rs` file is only updated when some file in `crates/parser/test_data/inline` changes. However this is not sufficient in all cases
2025-02-23Fix parser inline tests codegen panicsniller-g-13/+10
When running `cargo codegen` the cwd="rust-analyzer" however when running `cargo test` the cwd="rust-analyzer/xtask" which makes the codegen panic
2025-02-23Auto merge of #137466 - jhpratt:rollup-spyi02y, r=jhprattbors-420/+1151
Rollup of 9 pull requests Successful merges: - #135354 ([Debuginfo] Add MSVC Synthetic and Summary providers to LLDB) - #136826 (Replace mem::zeroed with mem::MaybeUninit::uninit for large struct in Unix) - #137194 (More const {} init in thread_local) - #137334 (Greatly simplify lifetime captures in edition 2024) - #137382 (bootstrap: add doc for vendor build step) - #137423 (Improve a bit HIR pretty printer) - #137435 (Fix "missing match arm body" suggestion involving `!`) - #137448 (Fix bugs due to unhandled `ControlFlow` in compiler) - #137458 (Fix missing self subst when rendering `impl Fn*<T>` with no output type) r? `@ghost` `@rustbot` modify labels: rollup
2025-02-23Rollup merge of #137458 - compiler-errors:render-fn, r=fmeaseJacob Pratt-21/+39
Fix missing self subst when rendering `impl Fn*<T>` with no output type r? `@fmease` or reassign Fixes #133597 cc #137456
2025-02-23Rollup merge of #137448 - compiler-errors:control-flow-oops, r=scottmcmJacob Pratt-2/+2
Fix bugs due to unhandled `ControlFlow` in compiler Well, one bug and one nit.
2025-02-23Rollup merge of #137435 - estebank:match-arm-2, r=compiler-errorsJacob Pratt-16/+94
Fix "missing match arm body" suggestion involving `!` Include the match arm guard in the gated span, so that the suggestion to add a body is correct instead of inserting the body before the guard. Make the suggestion verbose. ``` error: `match` arm with no body --> $DIR/feature-gate-never_patterns.rs:43:9 | LL | Some(_) if false, | ^^^^^^^^^^^^^^^^ | help: add a body after the pattern | LL | Some(_) if false => { todo!() }, | ++++++++++++++ ``` r? `@compiler-errors`
2025-02-23Rollup merge of #137423 - Urgau:imprv-pretty-hir, r=compiler-errorsJacob Pratt-21/+152
Improve a bit HIR pretty printer This PR improve (a bit) the HIR pretty printer. It does so by: - Not printing elided lifetimes (those are not expressible in surface Rust anyway) - And by rendering implicit self with the shorthand syntax I also tried fixing some indentation and other things but gave up for now. Best reviewed commit by commit.
2025-02-23Rollup merge of #137382 - Shourya742:2025-02-21-add-vendor-step-doc, r=KobzolJacob Pratt-0/+18
bootstrap: add doc for vendor build step This PR adds docs for vendor build step.
2025-02-23Rollup merge of #137334 - compiler-errors:edition-2024-fresh-2, ↵Jacob Pratt-294/+223
r=saethlin,traviscross Greatly simplify lifetime captures in edition 2024 Remove most of the `+ Captures` and `+ '_` from the compiler, since they are now unnecessary with the new edition 2021 lifetime capture rules. Use some `+ 'tcx` and `+ 'static` rather than being overly verbose with precise capturing syntax.
2025-02-23Rollup merge of #137194 - kornelski:ftls, r=tgross35Jacob Pratt-7/+25
More const {} init in thread_local `const {}` in `thread_local!` gets an optimization just based on the syntax, rather than the expression being const-compatible. This is easy to miss, so I've added more examples to the docs. I've also added `const {}` in a couple of places in std where this optimization has been missed.
2025-02-23Rollup merge of #136826 - xizheyin:issue-136737, r=thomccJacob Pratt-26/+45
Replace mem::zeroed with mem::MaybeUninit::uninit for large struct in Unix As discussion in #136737. - Replace `mem::zeroed()` with `MaybeUninit::uninit()` for `sockaddr_storage` in `accept()` and `recvfrom()` since these functions fill in the address structure - Replace `mem::zeroed()` with `MaybeUninit::uninit()` for `pthread_attr_t` in thread-related functions since `pthread_attr_init()` initializes the structure - Add references to man pages to document this behavior
2025-02-23Rollup merge of #135354 - Walnut356:msvc_lldb, r=wesleywiserJacob Pratt-33/+553
[Debuginfo] Add MSVC Synthetic and Summary providers to LLDB Adds handling for `tuple$<>`, `ref$<slice$2<>`, `ref$<str$>` and `enum2$<>`. Also fixes a bug in MSVC vec/string handling where the script was unable to determine the element's type due to LLDB ignoring template arg debug information <details> <summary>Sample code</summary> ```rust pub enum Number { One = 57, Two = 99, } #[repr(u8)] pub enum Container { First(u32), Second { val: u64, val2: i8 }, Third, } ... let u8_val = b'a'; let float = 42.78000000000001; let tuple = (u8_val, float); let str_val = "eef"; let mut string = "freef".to_owned(); let mut_str = string.as_mut_str(); let array: [u8; 4] = [1, 2, 3, 4]; let ref_array = array.as_slice(); let mut array2: [u32; 4] = [1, 2, 3, 4]; let mut_array = array2.as_mut_slice(); let enum_val = Number::One; let mut enum_val2 = Number::Two; let sum_val = Container::First(15); let sum_val_2 = Container::Second { val: 0, val2: 0 }; let sum_val_3 = Container::Third; let non_zero = NonZeroU128::new(100).unwrap(); let large_discr = NonZeroU128::new(255); ``` </details> Before: ![image](https://github.com/user-attachments/assets/19fd0881-a4c3-4c68-b28f-769a67d95e35) After: ![image](https://github.com/user-attachments/assets/d0479035-17ed-4584-8eb4-71d1314f8f7c) try-job: aarch64-apple try-job: x86_64-msvc-1 try-job: i686-msvc-1 try-job: x86_64-mingw-1 try-job: i686-mingw try-job: aarch64-gnu
2025-02-23Update `compiler-builtins` to 0.1.147Trevor Gross-6/+6
Removes an ABI hack that used `<2 x i64>` to return `i128` in `xmm0` on Windows [1]. [1]: https://github.com/rust-lang/compiler-builtins/pull/759 Link: https://github.com/rust-lang/rust/issues/116558 Link: https://github.com/rust-lang/compiler-builtins/issues/758
2025-02-23Auto merge of #137215 - onur-ozkan:rustc-tool-build-stages, r=jieyouxu,Kobzolbors-263/+340
stabilize stage management for rustc tools https://github.com/rust-lang/rust/pull/135990 got out of control due to excessive complexity. This PR aims to achieve the same goal with a simpler approach, likely through multiple smaller PRs. I will keep the other one read-only and open as a reference for future work. This work stabilizes the staging logic for `ToolRustc` programs, so you no longer need to handle build and target compilers separately in steps. Previously, most tools didn't do this correctly, which was causing the compiler to be built twice (e.g., `x test cargo --stage 1` would compile the stage 2 compiler before, but now it only compiles the stage 1 compiler). I also tried to document how we should write `ToolRustc` steps as they are quite different and require more attention than other tools. Next goal is to stabilize how stages are handled for the rustc itself. Currently, `x build --stage 1` builds the stage 1 compiler which is fine, but `x build compiler --stage 1` builds stage 2 compiler. ~~for now, r? ghost~~
2025-02-23Fix missing self subst when rendering Fn* trait with no output typeMichael Goulet-21/+39
2025-02-23bootstrap: add module docs for core:metadatabit-aloo-0/+7
2025-02-23The sym crate is not a thingMichael Goulet-1/+1
2025-02-23Auto merge of #137446 - matthiaskrgr:rollup-16moy6v, r=matthiaskrgrbors-538/+703
Rollup of 6 pull requests Successful merges: - #135501 (Inject `compiler_builtins` during postprocessing and ensure it is made private) - #137121 (stabilize `(const_)ptr_sub_ptr`) - #137180 (Give `global_asm` a fake body to store typeck results, represent `sym fn` as a hir expr to fix `sym fn` operands with lifetimes) - #137256 (compiler: untangle SIMD alignment assumptions) - #137383 (stabilize `unsigned_is_multiple_of`) - #137415 (Remove invalid suggestion of into_iter for extern macro) r? `@ghost` `@rustbot` modify labels: rollup