about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-09-25rustdoc: Fix documentation for `--doctest-build-arg`León Orell Valerian Liehr-21/+5
2025-09-12Auto merge of #146329 - lcnr:opaque-type-infer-alias-candidates, r=BoxyUwUbors-38/+490
consider item bounds for non-yet-defined opaque types Based on rust-lang/rust#140405. fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/182 fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/196 fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/205 there's some jank here, see https://github.com/rust-lang/trait-system-refactor-initiative/issues/229 ## Design If the self type is an inference variable which has been sub-unified with am opaque type, we need to incompletely guide inference to avoid breakage. In this case, we - look at the item bounds of all sub-unified opaque types, and - blanket impls which do not constrain the self type Even if there are applicable candidates, we always force their certainty to be `Maybe`, so they will always have to be reproven once we've constrained the inference variable. This is a bit iffy, see the added tests. r? `@BoxyUwU`
2025-09-12Auto merge of #146468 - Zalathar:rollup-6u3s44d, r=Zalatharbors-204/+502
Rollup of 15 pull requests Successful merges: - rust-lang/rust#144549 (match clang's `va_arg` assembly on arm targets) - rust-lang/rust#145895 (thread parking: fix docs and examples) - rust-lang/rust#146308 (support integer literals in `${concat()}`) - rust-lang/rust#146323 (check before test for hardware capabilites in bits 32~63 of usize) - rust-lang/rust#146332 (tidy: make behavior of extra-checks more uniform) - rust-lang/rust#146374 (Update `browser-ui-test` version to `0.22.2`) - rust-lang/rust#146413 (Improve suggestion in case a bare URL is surrounded by brackets) - rust-lang/rust#146426 (Bump miow to 0.60.1) - rust-lang/rust#146432 (Implement `Socket::take_error` for Hermit) - rust-lang/rust#146433 (rwlock tests: fix miri macos test regression) - rust-lang/rust#146435 (Change the default value of `gcc.download-ci-gcc` to `true`) - rust-lang/rust#146439 (fix cfg for poison test macro) - rust-lang/rust#146448 ([rustdoc] Correctly handle literal search on paths) - rust-lang/rust#146449 (Fix `libgccjit` symlink when we build GCC locally) - rust-lang/rust#146455 (test: remove an outdated normalization for rustc versions) r? `@ghost` `@rustbot` modify labels: rollup
2025-09-12Rollup merge of #146455 - cuviper:no-rustc-version, r=jieyouxuStuart Cook-3/+2
test: remove an outdated normalization for rustc versions These "you are using $RUSTC_VERSION" help messages were removed in rust-lang/rust#142943, but rust-lang/rust#142681 started before that and merged later, so its normalization is vestigial.
2025-09-12Rollup merge of #146449 - Kobzol:gcc-fix-symlink, r=GuillaumeGomezStuart Cook-1/+13
Fix `libgccjit` symlink when we build GCC locally Unblocks https://github.com/rust-lang/rust/pull/146414. r? ```@GuillaumeGomez```
2025-09-12Rollup merge of #146448 - GuillaumeGomez:fix-literal-search-paths, ↵Stuart Cook-2/+34
r=lolbinarycat [rustdoc] Correctly handle literal search on paths Fixes https://github.com/rust-lang/rust/issues/146129. cc ```@notriddle``` r? ```@lolbinarycat```
2025-09-12Rollup merge of #146439 - connortsui20:fix-sync-macro-attr, r=RalfJungStuart Cook-12/+15
fix cfg for poison test macro Fixes test regression in https://github.com/rust-lang/rust/pull/144648 Continuation of https://github.com/rust-lang/rust/pull/146433 I think this is right? Not really sure how to test this myself to be honest. r? ```@RalfJung``` I'll also leave the improvement to the test macro for a separate PR (described [here](https://github.com/rust-lang/rust/pull/146433#issuecomment-3280210451)) since I've never done something like that before. Though since this fixes all of the tests, it might not be necessary since anyone in the future will see the `cfg()` and not `cfg_attr()`?
2025-09-12Rollup merge of #146435 - Kobzol:gcc-download-default-true, r=GuillaumeGomezStuart Cook-1/+10
Change the default value of `gcc.download-ci-gcc` to `true` It makes sense for the vast majority of uses (https://github.com/rust-lang/rustc-dev-guide/pull/2587#discussion_r2337374719). r? ```@GuillaumeGomez```
2025-09-12Rollup merge of #146433 - RalfJung:rwlock-miri, r=tgross35Stuart Cook-3/+3
rwlock tests: fix miri macos test regression https://github.com/rust-lang/rust/pull/144648 broke the attributes that ignore the tests on Miri; this patch should fix that.
2025-09-12Rollup merge of #146432 - hermit-os:hermit-take_error, r=joboetStuart Cook-2/+3
Implement `Socket::take_error` for Hermit This PR fixes an unused-imports compilation error introduced in 845311a065a5638c516ed96c73b09862b176b329 and implements `Socket::take_error` for Hermit. Hermit's `Socket::take_error` implementation works exactly like the one for Unix. r? joboet
2025-09-12Rollup merge of #146426 - dpaoliello:miow, r=lqdStuart Cook-69/+3
Bump miow to 0.60.1 Updates the `miow` crate to 0.60.1, which removes the final use of `windows-sys` 0.48.0.
2025-09-12Rollup merge of #146413 - GuillaumeGomez:rustdoc-bare-urls, r=lolbinarycatStuart Cook-19/+136
Improve suggestion in case a bare URL is surrounded by brackets Fixes https://github.com/rust-lang/rust/issues/146162. With this change, output looks like this: ``` | 1 | //! [https://github.com] | ^^^^^^^^^^^^^^^^^^^^ help: use an automatic link instead: `<https://github.com>` | = note: bare URLs are not automatically turned into clickable links = note: `#[warn(rustdoc::bare_urls)]` on by default ``` cc ```@fmease``` r? ```@lolbinarycat```
2025-09-12Rollup merge of #146374 - GuillaumeGomez:update-browser-ui-test, ↵Stuart Cook-5/+5
r=GuillaumeGomez Update `browser-ui-test` version to `0.22.2` Mostly some internal improvements and new commands (like `store-count`). r? ```@lolbinarycat```
2025-09-12Rollup merge of #146332 - lolbinarycat:tidy-extra-checks-regularize, r=KobzolStuart Cook-13/+45
tidy: make behavior of extra-checks more uniform
2025-09-12Rollup merge of #146323 - h3fang:issue-146230-fix, r=AmanieuStuart Cook-33/+44
check before test for hardware capabilites in bits 32~63 of usize This commit tries to fix https://github.com/rust-lang/rust/issues/146230. `std::arch::is_aarch64_feature_detected` panics on aarch64 ILP32 targets. After some digging, the real problem is https://github.com/rust-lang/rust/blob/91edc3ebccc4daa46c20a93f4709862376da1fdd/library/std_detect/src/detect/os/linux/aarch64.rs#L210-L241 checks bits 32~63 of usize unconditionally on normal aarch64 LP64 target and aarch64 ILP32 target. Here I propose to move these to a block guarded by `#[cfg(target_pointer_width="64")]`. See rust-lang/rust#146230 for more detailed analysis. r? ```@Amanieu```
2025-09-12Rollup merge of #146308 - cyrgani:concat-integer-literals, r=jackh726Stuart Cook-24/+62
support integer literals in `${concat()}` Tracking issue: rust-lang/rust#124225 Adds support for using integer literals as arguments to `${concat()}` macro expressions. Integer formatting such as `1_000` is preserved by this.
2025-09-12Rollup merge of #145895 - RalfJung:unpark, r=joboetStuart Cook-16/+60
thread parking: fix docs and examples Fixes https://github.com/rust-lang/rust/issues/145816 r? ```@joboet``` Cc ```@m-ou-se``` ```@Amanieu```
2025-09-12Rollup merge of #144549 - folkertdev:va-arg-arm, r=saethlinStuart Cook-1/+67
match clang's `va_arg` assembly on arm targets tracking issue: https://github.com/rust-lang/rust/issues/44930 For this example ```rust #![feature(c_variadic)] #[unsafe(no_mangle)] unsafe extern "C" fn variadic(a: f64, mut args: ...) -> f64 { let b = args.arg::<f64>(); let c = args.arg::<f64>(); a + b + c } ``` We currently generate (via llvm): ```asm variadic: sub sp, sp, #12 stmib sp, {r2, r3} vmov d0, r0, r1 add r0, sp, #4 vldr d1, [sp, #4] add r0, r0, #15 bic r0, r0, #7 vadd.f64 d0, d0, d1 add r1, r0, #8 str r1, [sp] vldr d1, [r0] vadd.f64 d0, d0, d1 vmov r0, r1, d0 add sp, sp, #12 bx lr ``` LLVM is not doing a good job. In fact, it's well-known that LLVM's implementation of `va_arg` is kind of bad, and we implement it ourselves (based on clang) for many targets already. For arm, our own `emit_ptr_va_arg` saves 3 instructions. Next, it turns out it's important for LLVM to explicitly start and end the lifetime of the `va_list`. In https://github.com/rust-lang/rust/pull/146059 I already end the lifetime, but when looking at this again, I noticed that it is important to also start it, see https://godbolt.org/z/EGqvKTTsK: failing to explicitly start the lifetime uses an extra register. So, the combination of `emit_ptr_va_arg` with starting/ending the lifetime makes rustc emit exactly the instructions that clang generates:: ```asm variadic: sub sp, sp, #12 stmib sp, {r2, r3} vmov d16, r0, r1 vldr d17, [sp, #4] vadd.f64 d16, d16, d17 vldr d17, [sp, #12] vadd.f64 d16, d16, d17 vmov r0, r1, d16 add sp, sp, #12 bx lr ``` The arguments to `emit_ptr_va_arg` are based on [the clang implementation](https://github.com/llvm/llvm-project/blob/03dc2a41f3d9a500e47b513de5c5008c06860d65/clang/lib/CodeGen/Targets/ARM.cpp#L798-L844). r? ``@workingjubilee`` (I can re-roll if your queue is too full, but you do seem like the right person here) try-job: armhf-gnu
2025-09-12Auto merge of #146019 - joboet:better-dlsym, r=tgross35bors-51/+112
std: optimize `dlsym!` macro and add a test for it The `dlsym!` macro always ensures that the name string is nul-terminated, so there is no need to perform the check at runtime. Also, acquire loads are generally faster than a load and a barrier, so use them. This is only false in the case where the symbol is missing, but that shouldn't matter too much.
2025-09-12Auto merge of #146328 - zetanumbers:fix-141951, r=lcnrbors-5/+40
Skip typeck for items w/o their own typeck context Skip items which forward typeck to their ancestor. Should remove some potential but unnecessary typeck query waits, hence might improve performance for the parallel frontend. Thanks to `@ywxt` for a fix suggestion Fixes rust-lang/rust#141951
2025-09-12fix typo in commentFang He-1/+1
2025-09-11Auto merge of #145177 - joboet:move-pal-thread, r=ibraheemdevbors-1121/+921
std: move `thread` into `sys` Part of https://github.com/rust-lang/rust/issues/117276.
2025-09-11test: remove an outdated normalization for rustc versionsJosh Stone-3/+2
These "you are using $RUSTC_VERSION" help messages were removed in rust-lang/rust#142943, but rust-lang/rust#142681 started before that and merged later, so its normalization is vestigial.
2025-09-11Auto merge of #146386 - weihanglo:update-cargo, r=weihanglobors-0/+0
Update cargo submodule 13 commits in 761c4658d0079d607e6d33cf0c060e61a617cad3..24bb93c388fb8c211a37986539f24a819dc669d3 2025-09-04 01:25:01 +0000 to 2025-09-10 23:16:07 +0000 - Bump miow to 0.60.1 (rust-lang/cargo#15950) - test(help): Ensure consistent behavior regardless of rustup use (rust-lang/cargo#15949) - docs(changelog): Clarify how manifest paths are used (rust-lang/cargo#15946) - fix(flock): check if they are marked unsupported in libstd (rust-lang/cargo#15941) - test(manifest): Fix test output order (rust-lang/cargo#15940) - refactor(shell): Simplify some code (rust-lang/cargo#15937) - fix(manifest): Report script manifest errors for the right line number (rust-lang/cargo#15927) - refactor: replace flock with std flock (rust-lang/cargo#15935) - fix(cli): Adjust messages to match rustc (rust-lang/cargo#15928) - fix: Switch from --nocapture to --no-capture (rust-lang/cargo#15930) - Render individual compilation sections in `--timings` pipeline graph (rust-lang/cargo#15923) - test(credential): Switch more expected results to snapshots (rust-lang/cargo#15929) - refactor(cli): Pull out error chain iteration (rust-lang/cargo#15926)
2025-09-11update doc commentConnor Tsui-1/+1
Co-authored-by: Ralf Jung <post@ralfj.de>
2025-09-11Fix `libgccjit` symlink when we build GCC locallyJakub Beránek-1/+13
2025-09-11fix config for poison macro testConnor Tsui-15/+18
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
2025-09-11Add regression test for literal search on pathsGuillaume Gomez-0/+30
2025-09-11Correctly handle literal search on pathsGuillaume Gomez-2/+4
2025-09-11Update cargo submoduleWeihang Lo-0/+0
2025-09-11incompletely prefer opaque type bounds when self type bottoms out in inferMichael Goulet-14/+457
2025-09-11consider the `sub_unification_table` in `stalled_on`lcnr-24/+33
2025-09-11Change the default value of `gcc.download-ci-gcc` to `true`Jakub Beránek-1/+10
2025-09-11Auto merge of #146429 - Zalathar:rollup-eivhl6u, r=Zalatharbors-534/+576
Rollup of 11 pull requests Successful merges: - rust-lang/rust#142315 (core::ptr: deduplicate docs for as_ref, addr, and as_uninit_ref) - rust-lang/rust#146335 (disable core dumps for panic-uninitialized-zeroed) - rust-lang/rust#146347 (report duplicate symbols added by the driver) - rust-lang/rust#146370 (Update the LoongArch target documentation) - rust-lang/rust#146379 (Fix `compare_against_sw_vers` test) - rust-lang/rust#146380 (Unify and deduplicate bits conv float tests) - rust-lang/rust#146415 (s390x: mark soft-float target feature as incompatible) - rust-lang/rust#146422 (Less greedily parse `[const]` bounds) - rust-lang/rust#146424 (Improve `core::ops` coverage) - rust-lang/rust#146425 (Improve `core::array` coverage) - rust-lang/rust#146428 (Revert `assert!` desugaring changes (rust-lang/rust#122661)) r? `@ghost` `@rustbot` modify labels: rollup
2025-09-11rwlock tests: fix miri macos test regressionRalf Jung-3/+3
2025-09-11Implement `Socket::take_error` for HermitMartin Kröning-1/+2
2025-09-11Remove unused import from sys/pal/hermit/os.rsMartin Kröning-1/+1
This fixes ``` error: unused import: `str` --> library/std/src/sys/pal/hermit/os.rs:6:22 | 6 | use crate::{fmt, io, str}; | ^^^ | = note: `-D unused-imports` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(unused_imports)]` ``` This was caused by 845311a065a5638c516ed96c73b09862b176b329.
2025-09-11Auto merge of #146400 - nikic:llvm-21.1.1, r=dianqkbors-0/+0
Update to LLVM 21.1.1 Fixes https://github.com/rust-lang/rust/issues/145988. Fixes https://github.com/rust-lang/rust/issues/146163.
2025-09-11Rollup merge of #146428 - jieyouxu:revert-assert-desugaring, r=estebank,jackh726Stuart Cook-135/+74
Revert `assert!` desugaring changes (#122661) Reverts rust-lang/rust#122661 to prevent rust-lang/rust#145770 slipping into beta. cc `@estebank` (FYI) ### Review remarks - Commit 1 is the MCVE reported in rust-lang/rust#145770 added as a regression test `tests/ui/macros/assert-desugaring-145770.rs`. Against `master`, this test fails. - Commit 2 reverts rust-lang/rust#122661 (with a merge conflict fixed). `tests/ui/macros/assert-desugaring-145770.rs` now passes.
2025-09-11Rollup merge of #146425 - ferrocene:pvdrz/improve-array-coverage, ↵Stuart Cook-0/+7
r=workingjubilee Improve `core::array` coverage This PR improves the `core::array` coverage by adding new tests to `coretests`
2025-09-11Rollup merge of #146424 - ferrocene:pvdrz/improve-ops-coverage, r=workingjubileeStuart Cook-1/+75
Improve `core::ops` coverage This PR improves the `core::ops` coverage by adding new tests to `coretests`
2025-09-11Rollup merge of #146422 - fmease:less-greedy-maybe-const-bounds, r=estebankStuart Cook-105/+156
Less greedily parse `[const]` bounds > [!IMPORTANT] > If you're coming here from any beta backport nomination thread on Zulip, only the last commit is truly relevant (the first commit doesn't need to be backported, it only contains test modifications)! Don't consider `[` to start a bound, only consider `[const]` in its entirety to do so. This drastically reduces (but doesn't eliminate!) the chance of *real* breakages. Like `const`, `~const` and `async` before, `[const]` unavoidably brings along theoretical breakages, see preexisting tests: `macro-const-trait-bound-theoretical-regression.rs` and `macro-async-trait-bound-theoretical-regression.rs`. Side note: It's unfortunate that we have to do this but apart from the known fact that MBE hurts forward compatibility, the `[const]` syntax is simply a bit scuffed (also CC'ing https://github.com/rust-lang/rust/issues/146122, section (3)). Fixes [after beta backport] rust-lang/rust#146417. * 1st commit: Restore the original test intentions of several preexisting related tests that were unfortunately lost over time * I've added a bunch of SCREAMING comments to make it less likely to be lost again * CC PR rust-lang/rust#119099 which added most of these tests * CC [#144409 (comment)](https://github.com/rust-lang/rust/pull/144409#discussion_r2337587513) for further context (NB: It's not the only PR that negatively affected the test intention) * 2nd commit: Actually address the regression r? `@oli-obk` or anyone
2025-09-11Rollup merge of #146415 - RalfJung:s390x-softfloat, r=workingjubileeStuart Cook-31/+45
s390x: mark soft-float target feature as incompatible This provides a more informative warning when someone manually sets `+soft-float` on s390x.
2025-09-11Rollup merge of #146380 - rperier:unify_and_dedup_bits_conv_float_tests, ↵Stuart Cook-110/+63
r=tgross35 Unify and deduplicate bits conv float tests cc rust-lang/rust#141726 This is a proposal to unify and deduplicate the bits conv tests for f16, f32, f64 and f128
2025-09-11Rollup merge of #146379 - madsmtm:fix-platform_version-test, r=tgross35Stuart Cook-3/+3
Fix `compare_against_sw_vers` test The `saturating_sub` doesn't actually perform its intended since the version numbers are signed integers (which I changed in a later revision of https://github.com/rust-lang/rust/pull/138944). Fixes the issue described in https://github.com/rust-lang/rust/pull/138944#issuecomment-3270662876. r? tgross35
2025-09-11Rollup merge of #146370 - heiher:update-loong-linux-docs, r=jieyouxuStuart Cook-8/+11
Update the LoongArch target documentation This patch defines minimum CPU feature requirements, updates toolchain baseline, and streamlines maintainer list: - Specify double-precision floating-point and LSX as mandatory CPU features - Raise the minimum required binutils version to 2.42+, due to relocations introduced by the default medium code model - Remove outdated maintainers to reduce irrelevant notifications r? `@jieyouxu`
2025-09-11Rollup merge of #146347 - folkertdev:duplicate-symbol-panic, r=fee1-deadStuart Cook-6/+15
report duplicate symbols added by the driver The panic message did not mention what symbols were duplicates, which made the panic hard to debug. This came up in [#t-compiler/help > Easiest way to find offending duplicate symbols](https://rust-lang.zulipchat.com/#narrow/channel/182449-t-compiler.2Fhelp/topic/Easiest.20way.20to.20find.20offending.20duplicate.20symbols/with/538295740). This behavior was introduced in https://github.com/rust-lang/rust/pull/138682. r? ```@fee1-dead```
2025-09-11Rollup merge of #146335 - arielb1:dont-dump-core, r=nnethercoteStuart Cook-1/+16
disable core dumps for panic-uninitialized-zeroed That test causes a large amount of crashes. If a system has a /proc/sys/kernel/core_pattern that uploads core dumps enabled, it will take a long time to complete. Set dumpable to 0 to avoid that. Before: ``` $ time ./panic-uninitialized-zeroed real 0m47.457s user 0m0.023s sys 0m0.021s ``` After: ``` $ ./panic-uninitialized-zeroed real 0m0.029s user 0m0.019s sys 0m0.010s ```
2025-09-11Rollup merge of #142315 - lolbinarycat:core-dedup-ptr-docs-139190-pt3, ↵Stuart Cook-134/+111
r=workingjubilee core::ptr: deduplicate docs for as_ref, addr, and as_uninit_ref also add INFO.md file explaining the purpose of the ptr/docs dir, and give some pointers (heh) to future maintainers. follow up to rust-lang/rust#142101 part of rust-lang/rust#139190 r? `@workingjubilee`
2025-09-11Revert "Rollup merge of #122661 - estebank:assert-macro-span, r=petrochenkov"Jieyou Xu-150/+53
This reverts commit 1eeb8e8b151d1da7daa73837a25dc5f7a1a7fa28, reversing changes made to 324bf2b9fd8bf9661e7045c8a93f5ff0ec1a8ca5. Unfortunately the assert desugaring change is not backwards compatible, see RUST-145770. Code such as ```rust #[derive(Debug)] struct F { data: bool } impl std::ops::Not for F { type Output = bool; fn not(self) -> Self::Output { !self.data } } fn main() { let f = F { data: true }; assert!(f); } ``` would be broken by the assert desugaring change. We may need to land the change over an edition boundary, or limit the editions that the desugaring change impacts.