Skip to content
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

Rollup of 12 pull requests #136809

Merged
merged 31 commits into from
Feb 10, 2025
Merged

Rollup of 12 pull requests #136809

merged 31 commits into from
Feb 10, 2025

Conversation

workingjubilee
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

hkBst and others added 30 commits January 29, 2025 06:22
…--stage-id`

Notably, this avoids having to do hacky string splitting based on
`--stage-id`.
Even though the coverage graph itself is no longer available during codegen,
its nodes can still be used as opaque IDs.
`Instant::now()` works correctly on Emscripten since
rust-lang/libc#3962. All wasm-family targets
with OS support can now handle instants.
They use 2 spaces by default, not 4.
coverage: Defer part of counter-creation until codegen

Follow-up to rust-lang#135481 and rust-lang#135873.

One of the pleasant properties of the new counter-assignment algorithm is that we can stop partway through the process, store the intermediate state in MIR, and then resume the rest of the algorithm during codegen. This lets it take into account which parts of the control-flow graph were eliminated by MIR opts, resulting in fewer physical counters and simpler counter expressions.

Those improvements end up completely obsoleting much larger chunks of code that were previously responsible for cleaning up the coverage metadata after MIR opts, while also doing a more thorough cleanup job.

(That change also unlocks some further simplifications that I've kept out of this PR to limit its scope.)
…alt, r=Mark-Simulacrum

Removed dependency on the field-offset crate, alternate approach

This is an alternate approach to reach the same goals as rust-lang#136003. As it touches the core of the query system, this too probably should be evaluated for performance.

r? ``@Mark-Simulacrum``
…, r=Mark-Simulacrum

fix(libtest): Enable Instant on Emscripten targets

`Instant::now()` works correctly on Emscripten since rust-lang/libc#3962. All wasm-family targets with OS support can now handle instants.

Improves rust-lang#131738.

~~This changes the behavior of libtest on `unknown-unknown`/`unknown-none` wasm targets, but as far as I can see, libtest doesn't support them anyway. (Can anyone double-check?)~~ UPD: this patch no longer affects `unknown-unknown` targets.

``@rustbot`` label +A-libtest +T-testing-devex +O-emscripten +O-wasm -needs-triage
…crum

[`compiletest`-related cleanups 2/7] Feed stage number to compiletest directly

Reference for overall changes: rust-lang#136437
Part **2** of **7** of the *`compiletest`-related cleanups* PR series.

### Summary

- Pass stage number via new `--stage` compiletest flag directly from bootstrap, instead of deriving that info in compiletest by doing gymnastics on `--stage-id`.
- Just a cleanup, should have no functional changes.

r? bootstrap
… r=Mark-Simulacrum

ci: stop mysql before removing it

try-job: aarch64-gnu
…Mark-Simulacrum

Use an `Option` for `FindNextFileHandle` in `ReadDir` instead of `INVALID_FILE_HANDLE` sentinel value

Sometimes we store an invalid handle when we don't want to return an error. We then check the handle before use in order to avoid actually using the invalid handle. However, using an `Option` for this is better and avoids us forgetting to check the handle is valid. This was noticed due to us closing the handle without checking for validity: https://github.com/rust-lang/rust/blob/bd6a6777f5cbbec549f123995026cef76d1e6b84/library/std/src/sys/pal/windows/fs.rs#L148-L151
…=jhpratt

Some miscellaneous edition-related library tweaks

Some library edition tweaks that can be done separately from upgrading the whole standard library to edition 2024 (which is blocked on getting the submodules upgraded, for example)
Bump `cc` to v1.2.13 for the compiler workspace
…=compiler-errors

Git blame ignore recent formatting commit

This ignores the commit 1fcae03 from rust-lang#136751 that applied updating formatting changes.
Don't apply editorconfig to llvm

They use 2 spaces by default, not 4.
@rustbot rustbot added O-SGX Target: SGX O-solid Operating System: SOLID O-unix Operating system: Unix-like O-wasi Operating system: Wasi, Webassembly System Interface O-windows Operating system: Windows S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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-infra Relevant to the infrastructure 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. rollup A PR which is a rollup labels Feb 10, 2025
@workingjubilee
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Feb 10, 2025

📌 Commit ffa8a96 has been approved by workingjubilee

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 Feb 10, 2025
@bors
Copy link
Contributor

bors commented Feb 10, 2025

⌛ Testing commit ffa8a96 with merge 8c04e39...

@bors
Copy link
Contributor

bors commented Feb 10, 2025

☀️ Test successful - checks-actions
Approved by: workingjubilee
Pushing 8c04e39 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Feb 10, 2025
@bors bors merged commit 8c04e39 into rust-lang:master Feb 10, 2025
7 checks passed
@rustbot rustbot added this to the 1.86.0 milestone Feb 10, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#136053 coverage: Defer part of counter-creation until codegen 6fd5a5b28aacf80bdb7973c64ca240658755fff0 (link)
#136201 Removed dependency on the field-offset crate, alternate app… 91ea0e6675760926a88b6a67dd0495d7583d17f7 (link)
#136228 Simplify Rc::as_ptr docs + typo fix 6863de0afdcda5e684a479aef9920fbc6e82e3a2 (link)
#136353 fix(libtest): Enable Instant on Emscripten targets 231263d3f00b7057aebbfba47fb2d432279caa70 (link)
#136472 [compiletest-related cleanups 2/7] Feed stage number to c… 37dbf2640579acb81fe68ee7d3b4bef4909f5ad9 (link)
#136487 ci: stop mysql before removing it 7a1b7652f2a6b03eb05acb81de85fcc0c85ad407 (link)
#136552 Use an Option for FindNextFileHandle in ReadDir inste… c1863453a3b2365c427bd858e364dfaa5dee11aa (link)
#136705 Some miscellaneous edition-related library tweaks 66109903e70b2ba67ca094b8f31a12c2d8bfc771 (link)
#136707 Bump cc to v1.2.13 for the compiler workspace cd70d399cc341230ece0783c978a0dc824425a94 (link)
#136790 Git blame ignore recent formatting commit 50733caaa40c352de5383e918483323c64a2c564 (link)
#136792 Don't apply editorconfig to llvm abda314a53192e1abc88bb746ccabcafcd433b5d (link)
#136805 ignore win_delete_self test in Miri 2b1fa6643758dd2bd762ae71479aceb17c9e45f5 (link)

previous master: 80c091958f

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

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (8c04e39): comparison URL.

Overall result: ❌ regressions - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

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

Max RSS (memory usage)

Results (primary 3.0%, secondary 3.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
3.0% [1.4%, 5.7%] 20
Regressions ❌
(secondary)
3.0% [0.5%, 7.6%] 91
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 3.0% [1.4%, 5.7%] 20

Cycles

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

Binary size

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

Bootstrap: 782.79s -> 779.051s (-0.48%)
Artifact size: 348.27 MiB -> 348.29 MiB (0.01%)

@workingjubilee workingjubilee deleted the rollup-jk0pew1 branch February 10, 2025 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-compiletest Area: The compiletest test runner A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-query-system Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html) A-testsuite Area: The testsuite used to check the correctness of rustc A-tidy Area: The tidy tool merged-by-bors This PR was explicitly merged by bors. O-hermit Operating System: Hermit O-itron Operating System: ITRON O-SGX Target: SGX O-solid Operating System: SOLID O-unix Operating system: Unix-like O-wasi Operating system: Wasi, Webassembly System Interface O-windows Operating system: Windows 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-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-infra Relevant to the infrastructure 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.