Skip to content

Conversation

tgross35
Copy link
Contributor

@tgross35 tgross35 commented Aug 30, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

tgross35 and others added 28 commits August 7, 2025 03:32
Currently `SymInfo` stores a `Section`, which is just an index:

    SymInfo {
        section: Section(
            SectionIndex(
                539,
            ),
        ),
        ...
    },

Look up and store the section name instead if possible, with a fallback
to the `Section` debug printing. This makes output more clear and will
allow us to filter by section name.
Since [1], our object files may now contain a GDB script section. These
symbols wind up with multiple instances in the archive but are weak, so
we can safely ignore them in our duplicates check.

This resolves the current CI failures.

[1]: rust-lang#143679
i128/u128 haven't flagged `improper_ctypes` for a while, and this just
made it to stable [1]. Remove the `allow`s as they are no longer needed.

[1]: https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/#i128-and-u128-in-extern-c-functions
This target is currently build-only. Switch to the windows-11-arm
runner, which allows us to start running tests.
This updates the rust-version file to ffb9d94.
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: ffb9d94
Filtered ref: 2f31646593733abae36e4c05b5a54acfb9f1f6bc

This merge was created using https://github.com/rust-lang/josh-sync.
Like `__real@`, and `__xmm@`, Windows can emit duplicate `__ymm@`
symbols for constants.
LLVM does not currently emit these, but it is being discussed as an
option on platforms where `f32` is not hardware supported. Glibc/libgcc
also has the comparison functions [1] already.

The generic implementations for addition, subtraction, and
multiplication work for f16 without any complications, as do
comparisons, so add them here.

[1]: https://sourceware.org/git/?p=glibc.git;a=commit;h=6ec6c77867af4ddfec7323e0ac6ede89effca852
This updates the rust-version file to d36f964.
Pull recent changes from https://github.com/rust-lang/rust via Josh.

Upstream ref: d36f964
Filtered ref: 92461731ae79cfe5044e4826160665b77c0363a2

This merge was created using https://github.com/rust-lang/josh-sync.
We have a ui test to ensure we emit an error if we encounter too big
enums. Before this fix, compiling the test with `-Cdebuginfo=2` would
not include the span of the instantiation site, 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 test
passes regardless of debuginfo level.
Android has supported pipe2 since 2010, long before the current min SDK.
…mulacrum

std: use a TAIT to define `SplitPaths` on UNIX

Defining `SplitPaths` as a TAIT allows using closures instead of function pointers for `split` and `map`.
…e_atomic_ptr, r=scottmcm

Stabilize `strict_provenance_atomic_ptr` feature

This closes [tracking issue](rust-lang#99108) and stabilises `AtomicPtr::{fetch_ptr_add, fetch_ptr_sub, fetch_byte_add, fetch_byte_sub, fetch_or, fetch_and, fetch_xor}`

---

EDIT: FCP completed at rust-lang#99108 (comment)
…=scottmcm

str: Stabilize `round_char_boundary` feature

Closes rust-lang#93743
FCP completed rust-lang#93743 (comment)
…=wesleywiser

compiler: Include span of too huge enum with `-Cdebuginfo=2`

We have the ui test `tests/ui/limits/huge-enum.rs` to ensure we emit an error if we encounter too big enums. Before this fix, compiling the test with `-Cdebuginfo=2` would not include the span of the instantiation site, 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 test passes regardless of debuginfo level. I'm sure we can propagate spans in more places, but let's start small.

## Test failure without the fix

Here is what the failure looks like if you run the test without the fix:

```
[ui] tests/ui/limits/huge-enum.rs#full-debuginfo ... F
.

failures:

---- [ui] tests/ui/limits/huge-enum.rs#full-debuginfo stdout ----
Saved the actual stderr to `/home/martin/src/rust/build/x86_64-unknown-linux-gnu/test/ui/limits/huge-enum.full-debuginfo/huge-enum.full-debuginfo.stderr`
diff of stderr:

1       error: values of the type `Option<TYPE>` are too big for the target architecture
-         --> $DIR/huge-enum.rs:17:9
-          |
-       LL |     let big: BIG = None;
-          |         ^^^
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-enum.rs`
```

as can be seen, the `span` used to be missing with `debuginfo=2`.

## See also

This is one small step towards resolving rust-lang#61117.

cc rust-lang#144499 which began running UI tests with `rust.debuginfo-level-tests=1`. This PR is part of preparing for increasing that to debuglevel 2.
std: haiku: fix `B_FIND_PATH_IMAGE_PATH`

Fixes rust-lang#145952, which was caused by rust-lang/libc#4575

```````@rustbot``````` label T-libs O-haiku
…vement, r=notriddle

Improve librustdoc error when a file creation/modification failed

The message before looks like this:

```
failed to create or modify "/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/doc/search.index/entry/"
```

And with this change it looks like this:

```
failed to create or modify "/build/x86_64-unknown-linux-gnu/test/rustdoc-gui/doc/search.index/entry/": failed to read column from disk: data consumer error: missing field `unknown number` at line 1 column 8
```

r? ``````@lolbinarycat``````
Mark pipe2 supported in Android

Android has supported pipe2 since 2010, long before the current min SDK.
compiler-builtins subtree update

Subtree update of `compiler-builtins` to rust-lang/compiler-builtins@ac3a4cd.

Created using https://github.com/rust-lang/josh-sync.

r? `@ghost`
@rustbot rustbot added A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. labels Aug 30, 2025
@rustbot rustbot added O-unix Operating system: Unix-like S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-clippy Relevant to the Clippy team. 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. rollup A PR which is a rollup labels Aug 30, 2025
@tgross35
Copy link
Contributor Author

@bors r+ rollup=never p=5

@bors
Copy link
Collaborator

bors commented Aug 30, 2025

📌 Commit 319d554 has been approved by tgross35

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 30, 2025
@bors
Copy link
Collaborator

bors commented Aug 30, 2025

⌛ Testing commit 319d554 with merge e004014...

@bors
Copy link
Collaborator

bors commented Aug 30, 2025

☀️ Test successful - checks-actions
Approved by: tgross35
Pushing e004014 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 30, 2025
@bors bors merged commit e004014 into rust-lang:master Aug 30, 2025
11 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 30, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#145242 std: use a TAIT to define SplitPaths on UNIX cbdc38e4634b3f2f57294dec832fe8125664d45b (link)
#145467 Stabilize strict_provenance_atomic_ptr feature 2746f261706bcdbf76edb0b4b08c65a50e92de3a (link)
#145756 str: Stabilize round_char_boundary feature 0dd27952ce973c0a14fc9b35a2f4aa68966d588e (link)
#145967 compiler: Include span of too huge enum with -Cdebuginfo=2 fdaeaf65202f1132c3514e986f3acd9c93ec1a4b (link)
#145990 AutoDeref::final_ty is already resolved e7fb2717c85eb34daa948024d223ef0c030abcaf (link)
#145991 std: haiku: fix B_FIND_PATH_IMAGE_PATH 1d0aeeea97443af72b601216244e7f4f80b2fcd0 (link)
#146000 Improve librustdoc error when a file creation/modification … 1ec72e82ad7395dc5ebaf60efe22af3a1b0be8ba (link)
#146017 Mark pipe2 supported in Android a18f1e579391577a0cc8f9f0faba99db1a39e5ac (link)
#146022 compiler-builtins subtree update 79d642168a824ef6caa8fa9f449d3d30c61651ef (link)

previous master: fe55364329

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing fe55364 (parent) -> e004014 (this PR)

Test differences

Show 676 test diffs

Stage 1

  • [ui] tests/ui/limits/huge-enum.rs: pass -> [missing] (J0)
  • [ui] tests/ui/limits/huge-enum.rs#full-debuginfo: [missing] -> pass (J0)
  • [ui] tests/ui/limits/huge-enum.rs#no-debuginfo: [missing] -> pass (J0)

Stage 2

  • [ui] tests/ui/limits/huge-enum.rs: pass -> [missing] (J1)
  • [ui] tests/ui/limits/huge-enum.rs#full-debuginfo: [missing] -> pass (J1)
  • [ui] tests/ui/limits/huge-enum.rs#no-debuginfo: [missing] -> pass (J1)

Additionally, 670 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard e004014d1bf4c29928a0f0f9f7d0964d43606cbd --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. x86_64-gnu-llvm-19: 2413.3s -> 3153.6s (30.7%)
  2. x86_64-rust-for-linux: 2573.1s -> 3123.5s (21.4%)
  3. pr-check-1: 1370.9s -> 1625.5s (18.6%)
  4. dist-apple-various: 4016.5s -> 3342.9s (-16.8%)
  5. x86_64-gnu-stable: 6748.7s -> 7745.5s (14.8%)
  6. aarch64-gnu-debug: 4384.8s -> 4943.6s (12.7%)
  7. x86_64-gnu-distcheck: 5094.3s -> 5703.6s (12.0%)
  8. i686-gnu-1: 7534.6s -> 8433.5s (11.9%)
  9. aarch64-gnu-llvm-19-2: 2231.3s -> 2484.3s (11.3%)
  10. x86_64-gnu-llvm-20-2: 5736.4s -> 6306.4s (9.9%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (e004014): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary -4.9%, secondary -1.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-4.9% [-4.9%, -4.9%] 1
Improvements ✅
(secondary)
-1.4% [-1.4%, -1.4%] 1
All ❌✅ (primary) -4.9% [-4.9%, -4.9%] 1

Cycles

Results (secondary 0.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
3.5% [2.1%, 4.8%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.3% [-4.3%, -4.3%] 1
All ❌✅ (primary) - - 0

Binary size

Results (primary 0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.1%, 0.1%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.1% [0.1%, 0.1%] 4

Bootstrap: 467.034s -> 467.673s (0.14%)
Artifact size: 388.52 MiB -> 388.54 MiB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-clippy Relevant to the Clippy team. 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.