Skip to content

Rollup of 7 pull requests - #164418

Merged
rust-bors[bot] merged 21 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZlGVxrd
Oct 16, 2026
Merged

rust-bors[bot] merged 21 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-ZlGVxrd

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

GuillaumeGomez and others added 21 commits September 28, 2026 12:07
9c1eb80 broke the compilation of all
the Windows 7 targets. The mistake is trivial though: a `cfg` attribute
remnant. Indeed, the `is_console` function internally handles the Win7
case already, so is effectively always available. This therefore removes
the extraneous attribute in order to fix the Win7 compilation.

Signed-off-by: Paul Mabileau <paul.mabileau@harfanglab.fr>
Another small issue introduced by the same commit are some warnings
about `MaybeUninit` and other C constants being unused in the modules
modified here. This is also a trivial oversight: it is now only used
under non-Win7 targets. This therefore fixes that by gating the import
and the definitions adequately.

Signed-off-by: Paul Mabileau <paul.mabileau@harfanglab.fr>
…ng, r=ChrisDenton

Drop WC_ERR_INVALID_CHARS from Windows stdio

This PR builds on top of rust-lang#164170 and refactors the
transcoding of UTF8 output to UTF16 for use with `WriteConsoleW`.

Previously, the stdlib would reject any non-UTF8 strings. I argue that
this is unreasonable, as historically the Windows console is a pure
character device. It makes no difference to it whether text is in an
invalid encoding, as such text is always represented as U+FFFD.
As such, it also makes no difference if we sanitize it with U+FFFD.
This is still true today, despite Windows' more modern, true PTYs.

Assuming I'm right, this PR presents a major simplification:
Output is not double-checked for validity anymore. Instead, its fed
directly into `MultiByteToWideChar`. THe only thing we still need
to do is splice chunked UTF8 output together, as well as we can.

This permits us to increase the buffer size from 8Ki to 64Ki wchars,
which roughly doubles throughput over the current main branch.

To make the stdout behave identical to stdin, this PR also removes
`MB_ERR_INVALID_CHARS` from the `WideCharToMultiByte` call.

### Linewise output of `RELEASES.md`:

Output  | Version  | lines/s | MB/s  | Speedup
--------|----------|--------:|------:|--------
console | 1.99.0   |   31526 |  1.79 |
console | nightly  |   29251 |  1.66 |
console | rust-lang#164170  |   67294 |  3.82 | 2.13x
console | **this** |   73211 |  4.15 | 2.32x
`NUL`   | 1.99.0   |  784311 | 44.50 |
`NUL`   | nightly  |  776529 | 44.06 |
`NUL`   | rust-lang#164170  | 1141618 | 64.78 | 1.46x
`NUL`   | **this** | 1129683 | 64.10 | 1.44x

### 128KiB chunked passthrough of `enwik8`:

Output  | Version  | MB/s    | Speedup
--------|----------|--------:|--------
console | 1.99.0   |   86.99 |
console | nightly  |  165.27 | 1.90x
console | rust-lang#164170  |  165.61 | 1.90x
console | **this** |  303.51 | 3.49x
`NUL`   | 1.99.0   | 1123.82 |
`NUL`   | nightly  | 1137.30 |
`NUL`   | rust-lang#164170  | 1289.35 |
`NUL`   | **this** | 1294.18 |
…en-no-target-expr, r=petrochenkov

delegation: map return even if there is no target expression

When we can perform `Self` mapping and there is no target expression we still should map the return value.

Part of rust-lang#118212.
r? @petrochenkov
…big-142147, r=GuillaumeGomez

rustdoc: add disambiguators for identically named method in sidebar

fixes rust-lang#142147

also affects associated fns.  main improvments are to pointer and box docs.

before:
<img width="264" height="439" alt="image" src="https://github.com/user-attachments/assets/8347c2b8-88cb-470f-beb3-6cb377ca37f0" />

after:
<img width="693" height="576" alt="image" src="https://github.com/user-attachments/assets/478d1ef5-7a1e-4024-a796-d2b0fd0f5a49" />
…bs, r=notriddle,lolbinarycat

[rustdoc] Add tabs to settings popover

Fixes rust-lang#137050.

Looks like this:

<img width="497" height="370" alt="Screenshot From 2026-09-23 18-48-19" src="https://github.com/user-attachments/assets/194f4764-ceb2-4553-a60b-1166b60a238e" />
<img width="951" height="430" alt="Screenshot From 2026-09-23 18-48-33" src="https://github.com/user-attachments/assets/d336952c-0aae-44a9-967e-95b9a482e727" />

Can be tested [here](https://guillaume-gomez.fr/rustdoc/settings-popover-tabs/foo/index.html).

`tests/rustdoc-gui` changes are because we now have tabs in the settings menu. So the new feature is tested without adding a new test, yeay. =D

r? @notriddle
…nic, r=GuillaumeGomez

Test the interaction between `--remap-path-prefix` and doctests

This PR adds a run-make test to test the interaction between `--remap-path-prefix` and doctests.

Related to rust-lang#163895 (comment)
…ue-164180, r=khyperia

Fix check with `is_impl_trait_in_trait()` before expecting local id

Fix an ICE when implementing a const generic method with return position `impl Trait` from another crate `RPITIT`

r? khyperia

fixes rust-lang#164180
…tion, r=ChrisDenton

Fix(lib/sys): Restore Win7 compilation

Fixes rust-lang#164340.

9c1eb80 broke the compilation of all
the Windows 7 targets. The mistake is trivial though: a `cfg` attribute
remnant. Indeed, the `is_console` function internally handles the Win7
case already, so is effectively always available. This therefore removes
the extraneous attribute in order to fix the Win7 compilation.

Another small issue introduced by the same commit are some warnings
about `MaybeUninit` and other C constants being unused in the modules
modified here. This is also a trivial oversight: it is now only used
under non-Win7 targets. This therefore fixes that by gating the import
and the definitions adequately.

@rustbot label O-windows-7 C-bug T-libs
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 16, 2026
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. labels Oct 16, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,test-x86_64-gnu-aux,test-x86_64-msvc-1,test-aarch64-apple-1,test-aarch64-apple-2,test-x86_64-mingw-1,test-i686-msvc,test-armhf-gnu,test-x86_64-gnu-llvm-22-3

@rust-bors

rust-bors Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 7947dc7 has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-bors rust-bors Bot 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 Oct 16, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Oct 16, 2026
Rollup of 7 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-aarch64-apple-2
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
try-job: test-x86_64-gnu-llvm-22-3
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0b8bc06 (0b8bc064c970c21acb3a81b53755190f474bb2d2)
Base parent: 3e014ee (3e014ee7cfe452be04a6b454cfb965ea3507e217)

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 16, 2026
@rust-bors

rust-bors Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 2h 58m 5s
Pushing bf9448e to main...

@rust-bors
rust-bors Bot merged commit bf9448e into rust-lang:main Oct 16, 2026
16 checks passed
@rustbot rustbot added this to the 1.101.0 milestone Oct 16, 2026
@github-actions

Copy link
Copy Markdown
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 3e014ee (parent) -> bf9448e (this PR)

Test differences

Show 46 test diffs

Stage 1

  • [run-make] tests/run-make/remap-path-prefix-doctest-panic: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/sidebar/sidebar-dupes.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/non-local-method-same-ok.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/self-mapping-static-fn-no-target-expr.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/const-generics/non-local-method-same-ok.rs: [missing] -> pass (J7)
  • [ui (polonius)] tests/ui/delegation/self-mapping-static-fn-no-target-expr.rs: [missing] -> pass (J7)

Stage 2

  • [run-make] tests/run-make/remap-path-prefix-doctest-panic: [missing] -> ignore (ignored when the operating system is windows) (J2)
  • [ui] tests/ui/const-generics/non-local-method-same-ok.rs: [missing] -> pass (J3)
  • [ui] tests/ui/delegation/self-mapping-static-fn-no-target-expr.rs: [missing] -> pass (J3)
  • [run-make] tests/run-make/remap-path-prefix-doctest-panic: [missing] -> pass (J4)
  • [run-make] tests/run-make/remap-path-prefix-doctest-panic: [missing] -> ignore (ignored when cross-compiling) (J5)
  • [rustdoc-html] tests/rustdoc-html/sidebar/sidebar-dupes.rs: [missing] -> pass (J6)

Additionally, 34 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 bf9448e42622eaba63ebc171bb4584cea22210b4 --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. test-x86_64-msvc-ext3: 1h 6m -> 1h 56m (+76.0%)
  2. dist-powerpc64-linux-musl: 1h 4m -> 1h 40m (+56.4%)
  3. test-x86_64-gnu-llvm-22: 35m 18s -> 52m 40s (+49.2%)
  4. test-x86_64-gnu-gcc-core-tests: 17m 52s -> 9m 34s (-46.5%)
  5. test-x86_64-gnu-gcc: 54m 25s -> 1h 19m (+45.7%)
  6. test-i686-gnu-2: 1h 8m -> 1h 39m (+44.5%)
  7. test-x86_64-gnu-tools: 44m 52s -> 1h 4m (+43.0%)
  8. optional-test-x86_64-gnu-autodiff: 59m 28s -> 34m 28s (-42.0%)
  9. test-x86_64-mingw-1: 3h 8m -> 1h 50m (-41.6%)
  10. dist-x86_64-apple: 1h 41m -> 2h 22m (+39.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
Copy Markdown
Collaborator

Finished benchmarking commit (bf9448e): comparison URL.

Overall result: ❌ regressions - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (secondary 2.5%)

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)
2.5% [2.5%, 2.5%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 490.364s -> 488.875s (-0.30%)
Artifact size: 406.81 MiB -> 407.06 MiB (0.06%)

@rustbot rustbot added the perf-regression Performance regression. label Oct 16, 2026
@rust-bors

rust-bors Bot commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#164175 Drop WC_ERR_INVALID_CHARS from Windows stdio 0195a78c0ed4070b23d67ad024f77757f32cd5b6
(link)
#164361 delegation: map return even if there is no target expression cc51031bf5e4dbeae2bac088418a763a877a9e53
(link)
#162778 rustdoc: add disambiguators for identically named method in… 7278160748b23ee64190042cc8ba8ef2fd45dfcd
(link)
#163224 [rustdoc] Add tabs to settings popover bf025b2d81439203be9a70c9ca97a707d2bacf78
(link)
#164220 Test the interaction between --remap-path-prefix and doct… 8514875983a5578bbc37686aa24dd95be3920dae
(link)
#164318 Fix check with is_impl_trait_in_trait() before expecting … f5a6529887f94a0607782ee09fcd2944b6e24ecf
(link)
#164360 Fix(lib/sys): Restore Win7 compilation fa859eb07b13df66735eb6fa1b6aecac39144a11
(link)

parent commit: 3e014ee7cf

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@rust-timer triage all

@rust-timer

rust-timer commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator
Running triage with 1 benchmark

Triage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
For this rollup, these benchmarks are:

  • deref-sidebar-stress

#164175 0195a78 Drop WC_ERR_INVALID_CHARS from Windows stdio

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.


#164361 cc51031 delegation: map return even if there is no target expression

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.


#162778 7278160 rustdoc: add disambiguators for identically named method in sidebar

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

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

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.


#163224 bf025b2 [rustdoc] Add tabs to settings popover

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.


#164220 8514875 Test the interaction between --remap-path-prefix and doctests

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.


#164318 f5a6529 Fix check with is_impl_trait_in_trait() before expecting local id

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.


#164360 fa859eb Fix(lib/sys): Restore Win7 compilation

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

This perf run didn't have relevant results for this metric.

Binary size

This perf run didn't have relevant results for this metric.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end merged-by-bors This PR was explicitly merged by bors. O-windows Operating system: Windows perf-regression Performance regression. rollup A PR which is a rollup 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants