about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2025-07-08Auto merge of #134628 - estebank:const-default, r=oli-obkbors-2/+4
Make `Default` const and add some `const Default` impls Full list of `impl const Default` types: - () - bool - char - std::ascii::Char - usize - u8 - u16 - u32 - u64 - u128 - i8 - i16 - i32 - i64 - i128 - f16 - f32 - f64 - f128 - std::marker::PhantomData<T> - Option<T> - std::iter::Empty<T> - std::ptr::Alignment - &[T] - &mut [T] - &str - &mut str - String - Vec<T>
2025-07-08Auto merge of #142869 - nnethercote:join_path-mini, r=camelidbors-2/+2
Use `join_with_double_colon` in `write_shared.rs`. For consistency. Also, it's faster because `join_with_double_colon` does a better job estimating the allocation size than `join` from `itertools`. r? `@camelid`
2025-07-07Account for const stability in clippy when checking constnessEsteban Küber-6/+14
2025-07-07Make `Default` const and add some `const Default` implsEsteban Küber-10/+4
Full list of `impl const Default` types: - () - bool - char - Cell - std::ascii::Char - usize - u8 - u16 - u32 - u64 - u128 - i8 - i16 - i32 - i64 - i128 - f16 - f32 - f64 - f128 - std::marker::PhantomData<T> - Option<T> - std::iter::Empty<T> - std::ptr::Alignment - &[T] - &mut [T] - &str - &mut str - String - Vec<T>
2025-07-07Auto merge of #143601 - matthiaskrgr:rollup-9iw2sqk, r=matthiaskrgrbors-43/+39
Rollup of 9 pull requests Successful merges: - rust-lang/rust#132469 (Do not suggest borrow that is already there in fully-qualified call) - rust-lang/rust#143340 (awhile -> a while where appropriate) - rust-lang/rust#143438 (Fix the link in `rustdoc.md`) - rust-lang/rust#143539 (Regression tests for repr ICEs) - rust-lang/rust#143566 (Fix `x86_64-unknown-netbsd` platform support page) - rust-lang/rust#143572 (Remove unused allow attrs) - rust-lang/rust#143583 (`loop_match`: fix 'no terminator on block') - rust-lang/rust#143584 (make `Machine::load_mir` infallible) - rust-lang/rust#143591 (Fix missing words in future tracking issue) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-07Rollup merge of #143572 - yotamofek:pr/unused-allow-attrs, r=fee1-deadMatthias Krüger-2/+0
Remove unused allow attrs These `#[allow]`s seem to be unused (at least according to `x check`, didn't run `x test` locally). Let's clean them up! 🧹
2025-07-07Rollup merge of #143566 - jieyouxu:fix-x86_64-unknown-netbsd, r=fee1-deadMatthias Krüger-15/+13
Fix `x86_64-unknown-netbsd` platform support page `x86_64-unknown-netbsd` is Tier 2 with host tools, not Tier 3. cc `@he32.` r? compiler
2025-07-07Rollup merge of #143438 - makai410:rustdoc-fix, r=ehussMatthias Krüger-1/+1
Fix the link in `rustdoc.md`
2025-07-07Rollup merge of #143340 - nabijaczleweli:awhile, r=mati865Matthias Krüger-25/+25
awhile -> a while where appropriate
2025-07-07Auto merge of #143182 - xdoardo:more-addrspace, r=workingjubileebors-10/+11
Allow custom default address spaces and parse `p-` specifications in the datalayout string Some targets, such as CHERI, use as default an address space different from the "normal" default address space `0` (in the case of CHERI, [200 is used](https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-877.pdf)). Currently, `rustc` does not allow to specify custom address spaces and does not take into consideration [`p-` specifications in the datalayout string](https://llvm.org/docs/LangRef.html#langref-datalayout). This patch tries to mitigate these problems by allowing targets to define a custom default address space (while keeping the default value to address space `0`) and adding the code to parse the `p-` specifications in `rustc_abi`. The main changes are that `TargetDataLayout` now uses functions to refer to pointer-related informations, instead of having specific fields for the size and alignment of pointers in the default address space; furthermore, the two `pointer_size` and `pointer_align` fields in `TargetDataLayout` are replaced with an `FxHashMap` that holds info for all the possible address spaces, as parsed by the `p-` specifications. The potential performance drawbacks of not having ad-hoc fields for the default address space will be tested in this PR's CI run. r? workingjubilee
2025-07-07fix the link in `rustdoc.md`Makai-1/+1
2025-07-07Remove unused allow attrsYotam Ofek-2/+0
2025-07-07Rollup merge of #143577 - Noratrieb:Noratrieb-patch-4, r=Kobzol许杰友 Jieyou Xu (Joe)-1/+7
Disable download-rustc for library profile The feature currently completely breaks `x test` (rust-lang/rust#142505), core functionality of working on the standard library. Therefore it should be disabled by default until that problem is fixed. Having to wait a bit longer for a check build is nothing compared to completely mysterious build errors when testing.
2025-07-07Rollup merge of #143528 - RalfJung:stack-pop-cleanup, r=oli-obk许杰友 Jieyou Xu (Joe)-16/+16
interpret: rename StackPopCleanup The name `StackPopCleanup` stopped making sense a long time ago IMO -- in the common case, it has nothing to do with "cleanup", and everything with where the program should jump next. If we didn't have unwinding this would be just the return block, but given that we do have unwinding I figured maybe "continuation" would be a good name. This comes up in [continuation-passing style](https://en.wikipedia.org/wiki/Continuation-passing_style) and refers to where the program will *continue* when a function is done. So from a PL perspective it is the most fitting term I think -- but it may be too jargony. r? `@oli-obk` what do you think?
2025-07-07Rollup merge of #143415 - Gelbpunkt:cleanup-dist-ppc64le-toolchain, r=marcoieni许杰友 Jieyou Xu (Joe)-90/+7
Get rid of build-powerpc64le-toolchain.sh The dist-powerpc64le-linux-musl runner never actually used the toolchain that the script produced, it instead used the one from crosstool-ng. The dist-powerpc64le-linux-gnu runner did use it, from what I can tell mainly to get a glibc 2.17 version with ppc64le support backported. Since crosstool-ng has the necessary patches, we can just use crosstool-ng to get an appropriate toolchain. While at it, use kernel 3.10 headers since that's the version documented in platform support for this target. try-job: dist-powerpc64le-linux-gnu try-job: dist-powerpc64le-linux-musl
2025-07-07Add change tracker entry for disabling `download-rustc` temporarilyJieyou Xu-0/+5
2025-07-07Disable download-rustc for library profilenora-1/+2
The feature currently completely breaks `x test`, core functionality of working on the standard library. Therefore it should be disabled by default until that problem is fixed. Having to wait a bit longer for a check build is nothing compared to completely mysterious build errors when testing.
2025-07-07Fix `x86_64-unknown-netbsd` platform support pageJieyou Xu-15/+13
`x86_64-unknown-netbsd` is Tier 2 with host tools, not Tier 3.
2025-07-07Auto merge of #143565 - lnicola:sync-from-ra, r=lnicolabors-668/+1281
Subtree update of `rust-analyzer` r? `@ghost`
2025-07-07compiler: Parse `p-` specs in datalayout string, allow definition of custom ↵Edoardo Marangoni-10/+11
default data address space
2025-07-07Auto merge of #143048 - Kobzol:bootstrap-check-stage-1, r=jieyouxubors-284/+304
Enforce in bootstrap that check must have stage at least 1 This PR is another step towards https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Proposal.20to.20cleanup.20stages.20and.20steps.20after.20the.20redesign/with/523586917, this time dealing with `x check`. It enforces the invariant that: - We check std stage N with rustc stage N - We check everything else stage N with rustc stage N - 1 It creates a single function that prepares a proper build compiler for checking something, and also adds snapshot tests for various common check steps. Some obsolete code was also removed. The default check stage also becomes 1, for all profiles. I tested manually that `x check std` with `download-ci-rustc` still works and doesn't build rustc locally. Closes: https://github.com/rust-lang/rust/pull/139170 r? `@ghost`
2025-07-07Auto merge of #143556 - jhpratt:rollup-nid39y2, r=jhprattbors-28/+28
Rollup of 9 pull requests Successful merges: - rust-lang/rust#143206 (Align attr fixes) - rust-lang/rust#143236 (Stabilize `mixed_integer_ops_unsigned_sub`) - rust-lang/rust#143344 (Port `#[path]` to the new attribute parsing infrastructure ) - rust-lang/rust#143359 (Link to 2024 edition page for `!` fallback changes) - rust-lang/rust#143456 (mbe: Change `unused_macro_rules` to a `DenseBitSet`) - rust-lang/rust#143529 (Renamed retain_mut to retain on LinkedList as mentioned in the ACP) - rust-lang/rust#143535 (Remove duplicate word) - rust-lang/rust#143544 (compiler: rename BareFn to FnPtr) - rust-lang/rust#143552 (lib: more eagerly return `self.len()` from `ceil_char_boundary`) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-07Rollup merge of #143544 - workingjubilee:rename-bare-fn, r=fmeaseJacob Pratt-28/+28
compiler: rename BareFn to FnPtr At some point "BareFn" was the chosen name for a "bare" function, without the niceties of `~fn`, `&fn`, or a few other ways of writing a function type. However, at some point the syntax for a "bare function" and any other function diverged even more. We started calling them what they are: function pointers, denoted by their own syntax. However, we never changed the *internal* name for these, as this divergence was very gradual. Personally, I have repeatedly searched for "FnPtr" and gotten confused until I find the name is BareFn, only to forget this until the next time, since I don't routinely interact with the higher-level AST and HIR. But even tools that interact with these internal types only touch on them in a few places, making a migration easy enough. Let's use a more intuitive and obvious name, as this 12+ year old name has little to do with current Rust.
2025-07-06Auto merge of #141829 - dvdsk:sleep_until_linux, r=cuviper,RalfJungbors-0/+192
Specialize sleep_until implementation for unix (except mac) related tracking issue: https://github.com/rust-lang/rust/issues/113752 Supersedes https://github.com/rust-lang/rust/pull/118480 for the reasons see: https://github.com/rust-lang/rust/issues/113752#issuecomment-2902594469 Replaces the generic catch all implementation with target_os specific ones for: linux/netbsd/freebsd/android/solaris/illumos etc. Other platforms like wasi, macos/ios/tvos/watchos and windows will follow in later separate PR's (once this is merged).
2025-07-06rustfmt: migrate BareFn -> FnPtrJubilee Young-9/+9
2025-07-06clippy: migrate BareFn -> FnPtrJubilee Young-17/+17
2025-07-06rustdoc: migrate BareFn -> FnPtrJubilee Young-2/+2
2025-07-06Auto merge of #143526 - matthiaskrgr:rollup-pm69g5v, r=matthiaskrgrbors-5/+5
Rollup of 4 pull requests Successful merges: - rust-lang/rust#143252 (Rewrite empty attribute lint for new attribute parser) - rust-lang/rust#143492 (Use `object` crate from crates.io to fix windows build error) - rust-lang/rust#143514 (Organize macro tests a bit more) - rust-lang/rust#143518 (rustc_builtin_macros: Make sure registered attributes stay sorted) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-06sleep_until: add clock_nanosleep support to Miridvdsk-0/+192
The clock_nanosleep support is there to allow code using `sleep_until` to run under Miri. Therefore the implementation is minimal. - Only the clocks REALTIME and MONOTONIC are supported. The first is supported simply because it was trivial to add not because it was needed for sleep_until. - The only supported flag combinations are no flags or TIMER_ABSTIME only. If an unsupported flag combination or clock is passed in this throws unsupported.
2025-07-06Do not ever cross-check bootstrap toolsJakub Beránek-2/+7
2025-07-06Fix CIJakub Beránek-4/+4
2025-07-06Horrible hack to make codegen backends "work" during checkJakub Beránek-11/+32
2025-07-06Add support for allowing features when checking toolsJakub Beránek-2/+15
2025-07-06Use stage auto-bump when cross-checking on stage 1Jakub Beránek-17/+14
2025-07-06Add `#[tracing::instrument]` to the LLVM build stepJakub Beránek-0/+9
2025-07-06Update library cross-compilation testJakub Beránek-3/+2
2025-07-06Update `Mode::ToolStd` commentJakub Beránek-2/+7
2025-07-06Add staging comment to `check::Rustc`Jakub Beránek-0/+2
2025-07-06Add change tracker entryJakub Beránek-0/+5
2025-07-06Unify selection of build compiler for checking in a single functionJakub Beránek-48/+47
2025-07-06Implement `CoverageDump` checking through the `tool_check_step` macroJakub Beránek-66/+5
2025-07-06Fixup check of rust-analyzer, codegen backends, compiletest and other toolsZalathar-64/+113
2025-07-06Make build compiler explicit in `check::Rustc` and `check::Std`Jakub Beránek-73/+87
2025-07-06Remove `custom_stage` override from `check::Std` and make 1 be the default ↵Jakub Beránek-54/+11
check stage for it
2025-07-06Make default check stage be 1, and error out on checking with stage 0Jakub Beránek-5/+11
2025-07-06interpret: rename StackPopCleanupRalf Jung-16/+16
2025-07-06Rollup merge of #143252 - JonathanBrouwer:rewrite_empty_attribute, ↵Matthias Krüger-5/+5
r=jdonszelmann Rewrite empty attribute lint for new attribute parser cc `@jdonszelmann`
2025-07-06Auto merge of #143515 - rust-lang:cargo_update, r=clubby789bors-2/+2
Weekly `cargo update` Automation to keep dependencies in `Cargo.lock` current. r? dep-bumps The following is the output from `cargo update`: ```txt compiler & tools dependencies: Locking 6 packages to latest compatible versions Adding io-uring v0.7.8 Updating jsonpath-rust v1.0.2 -> v1.0.3 Updating libffi v4.1.0 -> v4.1.1 Updating libffi-sys v3.3.1 -> v3.3.2 Updating tokio v1.45.1 -> v1.46.1 Updating wasm-component-ld v0.5.14 -> v0.5.15 note: pass `--verbose` to see 41 unchanged dependencies behind latest library dependencies: Locking 0 packages to latest compatible versions note: pass `--verbose` to see 4 unchanged dependencies behind latest rustbook dependencies: Locking 1 package to latest compatible version Updating cc v1.2.27 -> v1.2.29 ```
2025-07-06Auto merge of #143521 - matthiaskrgr:rollup-kpv1og3, r=matthiaskrgrbors-7/+19
Rollup of 6 pull requests Successful merges: - rust-lang/rust#143416 (mbe: Defer checks for `compile_error!` until reporting an unused macro rule) - rust-lang/rust#143470 (std: sys: net: uefi: tcp4: Implement read) - rust-lang/rust#143477 (use `is_multiple_of` and `div_ceil`) - rust-lang/rust#143484 (distinguish the duplicate item of rpitit) - rust-lang/rust#143493 (tidy: use --bless for tidy spellcheck instead of spellcheck:fix) - rust-lang/rust#143504 (compiletest: print slightly more information on fs::write failure) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-06Merge pull request #20184 from Veykril/push-ywpynxnltpokLukas Wirth-32/+44
chore: Remove dead field from `InferenceContext`