-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Rollup of 11 pull requests #146351
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Rollup of 11 pull requests #146351
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We have a few ui tests to ensure we emit an error if we encounter too big arrays. Before this fix, compiling the tests with `-Cdebuginfo=2` would not include the spans of the instantiation sites, because the error is then emitted from a different code path that does not include the span. Propagate the span to the error also in the debuginfo case, so the tests passes regardless of debuginfo level.
Adds Windows resources with the rust version information to rustc-main.exe and rustc_driver.dll Sets the product description to "Rust Compiler" or "Rust Compiler (channel)" for non-stable channels
- added full urlencoding to properly check urlencoded anchor links against non-urlencoded heading IDs - added tests urlecoding provided by https://crates.io/crates/urlencoding
The symbols __isPlatformVersionAtLeast and __isOSVersionAtLeast. This allows the user to link both compiler_rt and std.
std: move `thread` into `sys` Part of rust-lang#117276.
…esleywiser compiler: Add Windows resources to rustc-main and rustc_driver Adds Windows resources with the rust version information to rustc-main.exe and rustc_driver.dll Invokes `rc.exe` directly, rather than using one of the crates from the ecosystem to avoid adding dependencies. A new internal `rustc_windows_rc` crate has the common build script machinery for locating `rc.exe` and constructing the resource script
…r=wesleywiser compiler: Include span of too huge array with `-Cdebuginfo=2` We have a few ui tests to ensure we emit an error if we encounter too big arrays. Before this fix, compiling the tests with `-Cdebuginfo=2` would not include the spans of the instantiation sites, because the error is then emitted from a different code path that does not include the span. Propagate the span to the error also in the debuginfo case, so the tests passes regardless of debuginfo level. r? `@wesleywiser` since this is a natural continuation of rust-lang#145967 that you approved (thanks!). cc rust-lang#61117 since this takes is one step closer to increasing `rust.debuginfo-level-tests` to `2` in the **x86_64-gnu-debug** CI job. ## Test failure output without the fix <details> <summary> Here is what the test failures look like if you run the tests without the fix. (Click to expand.) </summary> ``` $ ./x test --set rust.debuginfo-level-tests=2 tests/ui/limits/huge-array-simple-64.rs tests/ui/limits/huge-array.rs tests/ui/limits/issue-15919-64.rs Building bootstrap Finished `dev` profile [unoptimized] target(s) in 0.16s /home/martin/src/rust/build/x86_64-unknown-linux-gnu/ci-llvm/bin/llvm-strip does not exist; skipping copy Building stage1 compiler artifacts (stage0 -> stage1, x86_64-unknown-linux-gnu) Finished `release` profile [optimized + debuginfo] target(s) in 0.40s Creating a sysroot for stage1 compiler (use `rustup toolchain link 'name' build/host/stage1`) Building stage1 lld-wrapper (stage0 -> stage1, x86_64-unknown-linux-gnu) Finished `release` profile [optimized + debuginfo] target(s) in 0.08s Building stage1 library artifacts (stage1 -> stage1, x86_64-unknown-linux-gnu) Compiling addr2line v0.25.0 Compiling std v0.0.0 (/home/martin/src/rust/library/std) Compiling rustc-std-workspace-std v1.99.0 (/home/martin/src/rust/library/rustc-std-workspace-std) Compiling unicode-width v0.2.1 Compiling rustc-literal-escaper v0.0.5 Compiling proc_macro v0.0.0 (/home/martin/src/rust/library/proc_macro) Compiling getopts v0.2.23 Compiling test v0.0.0 (/home/martin/src/rust/library/test) Compiling sysroot v0.0.0 (/home/martin/src/rust/library/sysroot) Finished `release` profile [optimized + debuginfo] target(s) in 14.43s Building stage1 compiletest (stage0 -> stage1, x86_64-unknown-linux-gnu) Finished `release` profile [optimized + debuginfo] target(s) in 0.14s Testing stage2 compiletest suite=ui mode=ui (stage1 -> stage2, x86_64-unknown-linux-gnu) running 6 tests [ui] tests/ui/limits/huge-array.rs#full-debuginfo ... F [ui] tests/ui/limits/issue-15919-64.rs#full-debuginfo ... F [ui] tests/ui/limits/huge-array-simple-64.rs#full-debuginfo ... F ... failures: ---- [ui] tests/ui/limits/huge-array.rs#full-debuginfo stdout ---- Saved the actual stderr to `/home/martin/src/rust/build/x86_64-unknown-linux-gnu/test/ui/limits/huge-array.full-debuginfo/huge-array.full-debuginfo.stderr` diff of stderr: 1 error: values of the type `[[u8; 1518599999]; 1518600000]` are too big for the target architecture - --> $DIR/huge-array.rs:9:9 - | - LL | let s: [T; 1518600000] = [t; 1518600000]; - | ^ 6 7 error: aborting due to 1 previous error 8 The actual stderr differed from the expected stderr To update references, rerun the tests and pass the `--bless` flag To only update this specific test, also pass `--test-args limits/huge-array.rs` error in revision `full-debuginfo`: 1 errors occurred comparing output. status: exit status: 1 command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/martin/src/rust/tests/ui/limits/huge-array.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/home/martin/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/home/martin/src/rust/vendor" "--sysroot" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/stage1" "--target=x86_64-unknown-linux-gnu" "--cfg" "full_debuginfo" "--check-cfg" "cfg(test,FALSE,no_debuginfo,full_debuginfo)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-C" "prefer-dynamic" "--out-dir" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/test/ui/limits/huge-array.full-debuginfo" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Lnative=/home/martin/src/rust/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Cdebuginfo=2" stdout: none --- stderr ------------------------------- error: values of the type `[[u8; 1518599999]; 1518600000]` are too big for the target architecture error: aborting due to 1 previous error ------------------------------------------ ---- [ui] tests/ui/limits/huge-array.rs#full-debuginfo stdout end ---- ---- [ui] tests/ui/limits/issue-15919-64.rs#full-debuginfo stdout ---- Saved the actual stderr to `/home/martin/src/rust/build/x86_64-unknown-linux-gnu/test/ui/limits/issue-15919-64.full-debuginfo/issue-15919-64.full-debuginfo.stderr` diff of stderr: 1 error: values of the type `[usize; usize::MAX]` are too big for the target architecture - --> $DIR/issue-15919-64.rs:10:9 - | - LL | let x = [0usize; 0xffff_ffff_ffff_ffff]; - | ^ 6 7 error: aborting due to 1 previous error 8 The actual stderr differed from the expected stderr To update references, rerun the tests and pass the `--bless` flag To only update this specific test, also pass `--test-args limits/issue-15919-64.rs` error in revision `full-debuginfo`: 1 errors occurred comparing output. status: exit status: 1 command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/martin/src/rust/tests/ui/limits/issue-15919-64.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/home/martin/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/home/martin/src/rust/vendor" "--sysroot" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/stage1" "--target=x86_64-unknown-linux-gnu" "--cfg" "full_debuginfo" "--check-cfg" "cfg(test,FALSE,no_debuginfo,full_debuginfo)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-C" "prefer-dynamic" "--out-dir" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/test/ui/limits/issue-15919-64.full-debuginfo" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Lnative=/home/martin/src/rust/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Cdebuginfo=2" stdout: none --- stderr ------------------------------- error: values of the type `[usize; usize::MAX]` are too big for the target architecture error: aborting due to 1 previous error ------------------------------------------ ---- [ui] tests/ui/limits/issue-15919-64.rs#full-debuginfo stdout end ---- ---- [ui] tests/ui/limits/huge-array-simple-64.rs#full-debuginfo stdout ---- Saved the actual stderr to `/home/martin/src/rust/build/x86_64-unknown-linux-gnu/test/ui/limits/huge-array-simple-64.full-debuginfo/huge-array-simple-64.full-debuginfo.stderr` diff of stderr: 1 error: values of the type `[u8; 2305843011361177600]` are too big for the target architecture - --> $DIR/huge-array-simple-64.rs:12:9 - | - LL | let _fat: [u8; (1<<61)+(1<<31)] = - | ^^^^ 6 7 error: aborting due to 1 previous error 8 The actual stderr differed from the expected stderr To update references, rerun the tests and pass the `--bless` flag To only update this specific test, also pass `--test-args limits/huge-array-simple-64.rs` error in revision `full-debuginfo`: 1 errors occurred comparing output. status: exit status: 1 command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" "/home/martin/src/rust/tests/ui/limits/huge-array-simple-64.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/home/martin/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/home/martin/src/rust/vendor" "--sysroot" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/stage1" "--target=x86_64-unknown-linux-gnu" "--cfg" "full_debuginfo" "--check-cfg" "cfg(test,FALSE,no_debuginfo,full_debuginfo)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-C" "prefer-dynamic" "--out-dir" "/home/martin/src/rust/build/x86_64-unknown-linux-gnu/test/ui/limits/huge-array-simple-64.full-debuginfo" "-A" "unused" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Lnative=/home/martin/src/rust/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-Cdebuginfo=2" stdout: none --- stderr ------------------------------- error: values of the type `[u8; 2305843011361177600]` are too big for the target architecture error: aborting due to 1 previous error ------------------------------------------ ---- [ui] tests/ui/limits/huge-array-simple-64.rs#full-debuginfo stdout end ---- failures: [ui] tests/ui/limits/huge-array.rs#full-debuginfo [ui] tests/ui/limits/issue-15919-64.rs#full-debuginfo [ui] tests/ui/limits/huge-array-simple-64.rs#full-debuginfo test result: FAILED. 3 passed; 3 failed; 0 ignored; 0 measured; 19720 filtered out; finished in 117.18ms Some tests failed in compiletest suite=ui mode=ui host=x86_64-unknown-linux-gnu target=x86_64-unknown-linux-gnu Build completed unsuccessfully in 0:00:17 ``` </details> As can be seen, the span info is missing with debuginfo=2 without the fix.
In the rustc_llvm build script, don't consider arm64* to be 32-bit The build script for `rustc_llvm` needs to detect 32-bit targets so that it links against `libatomics`. To do this, it matches the target architecture against `arm`, unfortunately incorrectly matches Arm64EC, Arm64E, etc. This change adds a check that the target arch doesn't match `arm64`.
fix partial urlencoded link support Hello Rust community. This is my first contribution, hope is useful. While translating in Italian the rust book https://github.com/nixxo/rust-lang-book-it I noticed that the linkchecker tool was failing reporting broken links on some pages even if the link worked properly in the browser. Upon inspection I noticed that mdbook basically urlencoded the links, but not urlencoded the heading IDs resulting in a non-identical anchor/IDs pairing that linkchecker reports as non-valid. looking at the source code for the linkchecker tool I noticed that urlencoding was done by the `small_url_encode` function in a partial way, as the name suggests. Replacing this function with a full urlencoding fixes the issue and the links are properly reported as valid. - added full urlencoding to properly check urlencoded anchor links against non-urlencoded heading IDs - added tests urlecoding provided by https://crates.io/crates/urlencoding
…=jhpratt Implement `Sum` and `Product` for `f16` and `f128`. Tracking issue: rust-lang#116909. This PR implements `core::iter::{Sum, Product}` for `f16` and `f128`. I'm curious as to why these two traits aren't already implemented. I've been unable to find any information about it at all, so if there is anything that currently blocks them, I would appreciate if someone could fill me in.
…umeGomez mark `format_args_nl!` as `#[doc(hidden)]` The `#[unstable]` attribute of the macro already says: > `format_args_nl` is only for internal language use and is subject to change It does seem plausible to hide it from the `std` docs accordingly. The PR also removes the single usage of the macro outside of `std` as it does not seem like the macro is actually needed there.
const-eval: disable pointer fragment support This fixes rust-lang#146291 by disabling pointer fragment support for const-eval. I want to properly fix this eventually, but won't get to it in the next few weeks, so this is an emergency patch to prevent the buggy implementation from landing on stable. The beta cutoff is on Sep 12th so if this PR lands after that, we'll need a backport.
simplify the declaration of the legacy integer modules (`std::u32` etc.) This PR removes some duplicated code from the declaration of the legacy integer modules by expanding the macro which is already used to generate `MIN` and `MAX` to now generate the whole module. This would also make the remaining steps listed in rust-lang#68490 such as fully deprecating the modules or placing `#[doc(hidden)]` on them easier.
Update books ## rust-lang/nomicon 1 commits in 57ed4473660565d9357fcae176b358d7e8724ebf..f17a018b9989430967d1c58e9a12c51169abc744 2025-09-05 22:46:58 UTC to 2025-09-05 22:46:58 UTC - Add missing "C" ABI to FFI example code (rust-lang/nomicon#501) ## rust-lang/reference 7 commits in 89f67b3c1b904cbcd9ed55e443d6fc67c8ca2769..b3ce60628c6f55ab8ff3dba9f3d20203df1c0dee 2025-09-05 20:14:36 UTC to 2025-08-26 20:17:24 UTC - Ensure all lexical elements are SCREAMING_CASE (rust-lang/reference#1990) - Link out to the notation from grammar summary (rust-lang/reference#1989) - Or-patterns are extending (rust-lang/reference#1975) - Specify lifetime extension of `match` arms and `if` consequent/`else` block tail expressions (rust-lang/reference#1981) - clean up and properly test temporary lifetime extension in doctests (rust-lang/reference#1979) - Update `cold` and `inline` to use the attribute template (rust-lang/reference#1907) - Pluralize "syntax diagrams" (rust-lang/reference#1977) ## rust-lang/rust-by-example 1 commits in ad27f82c18464525c761a4a8db2e01785da59e1f..dd26bc8e726dc2e73534c8972d4dccd1bed7495f 2025-09-04 22:33:29 UTC to 2025-09-04 22:33:29 UTC - Fix drop order explanation in trait > drop (rust-lang/rust-by-example#1953)
…ross35 Weakly export `platform_version` symbols The symbols `__isPlatformVersionAtLeast` and `__isOSVersionAtLeast`. This should allow linking both `compiler-rt` and `std`, which fixes rust-lang#138944 (comment). r? tgross35 CC `@zmodem,` could you please verify that this works for you?
@bors r+ rollup=never p=5 |
bors
added a commit
that referenced
this pull request
Sep 8, 2025
Rollup of 11 pull requests Successful merges: - #145177 (std: move `thread` into `sys`) - #146018 (compiler: Add Windows resources to rustc-main and rustc_driver) - #146025 (compiler: Include span of too huge array with `-Cdebuginfo=2`) - #146184 (In the rustc_llvm build script, don't consider arm64* to be 32-bit) - #146195 (fix partial urlencoded link support) - #146300 (Implement `Sum` and `Product` for `f16` and `f128`.) - #146314 (mark `format_args_nl!` as `#[doc(hidden)]`) - #146324 (const-eval: disable pointer fragment support) - #146326 (simplify the declaration of the legacy integer modules (`std::u32` etc.)) - #146339 (Update books) - #146343 (Weakly export `platform_version` symbols) r? `@ghost` `@rustbot` modify labels: rollup
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-LLVM
Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.
O-apple
Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS)
O-hermit
Operating System: Hermit
O-SGX
Target: SGX
O-solid
Operating System: SOLID
O-unix
Operating system: Unix-like
O-wasi
Operating system: Wasi, Webassembly System Interface
O-wasm
Target: WASM (WebAssembly), http://webassembly.org/
O-windows
Operating system: Windows
rollup
A PR which is a rollup
T-bootstrap
Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
T-rustdoc
Relevant to the rustdoc team, which will review and decide on the PR/issue.
T-rustdoc-frontend
Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Successful merges:
thread
intosys
#145177 (std: movethread
intosys
)-Cdebuginfo=2
#146025 (compiler: Include span of too huge array with-Cdebuginfo=2
)Sum
andProduct
forf16
andf128
. #146300 (ImplementSum
andProduct
forf16
andf128
.)format_args_nl!
as#[doc(hidden)]
#146314 (markformat_args_nl!
as#[doc(hidden)]
)std::u32
etc.) #146326 (simplify the declaration of the legacy integer modules (std::u32
etc.))platform_version
symbols #146343 (Weakly exportplatform_version
symbols)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup