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 10 pull requests #121800

Merged
merged 24 commits into from
Feb 29, 2024
Merged

Rollup of 10 pull requests #121800

merged 24 commits into from
Feb 29, 2024

Conversation

GuillaumeGomez
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

compiler-errors and others added 24 commits February 27, 2024 17:21
The C wrapper program represents a typical use case (linking
C libraries with Rust libraries) but it was not made explicit how
this was supposed to work in the usage example.

Also: correct a table alignment error for hexagon-unknown-none-elf on the
general platform support doc.
Extending `std` to get the last error number for HermitOS.

HermitOS is a tier 3 platform and this PR changes only files,
wich are related to the tier 3 platform.
Run 'cargo check --features clap/deprecated' and fix warnings
Document which methods on `f64` are precise
…, r=Amanieu

platform docs: clarify hexagon-unknown-none-elf example, add hexagon-unknown-linux-musl
…f, r=oli-obk

Fix `async Fn` confirmation for `FnDef`/`FnPtr`/`Closure` types

Fixes three issues:
1. The code in `extract_tupled_inputs_and_output_from_async_callable` was accidentally getting the *future* type and the *output* type (returned by the future) messed up for fnptr/fndef/closure types. :/
2. We have a (class of) bug(s) in the old solver where we don't really support higher ranked built-in `Future` goals for generators. This is not possible to hit on stable code, but [can be hit with `unboxed_closures`](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=e935de7181e37e13515ad01720bcb899) (rust-lang#121653).
    * I'm opting not to fix that in this PR. Instead, I just instantiate placeholders when confirming `async Fn` goals.
4. Fixed a bug when generating `FnPtr` shims for `async Fn` trait goals.

r? oli-obk
…r-defined-builtin-types, r=compiler-errors

CFI: Don't compress user-defined builtin types

Doesn't compress user-defined builtin types (see https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-builtin and https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-compression).
add platform-specific function to get the error number for HermitOS

Extending `std` to get the last error number for HermitOS.

HermitOS is a tier 3 platform and this PR changes only files, wich are related to the tier 3 platform.
bootstrap/format: send larger batches to rustfmt

This helps on systems with low core counts. To benchmark this I made a lot of files be modified:
```
for FILE in $(find compiler/ -name "*.rs"); do echo "// end of the file" >>$FILE; done
```
Then I ran
```
hyperfine "./x.py fmt -j1" -w 1 -r 4
```
Before this patch:
```
Benchmark 1: ./x.py fmt -j1
  Time (mean ± σ):      3.426 s ±  0.032 s    [User: 4.681 s, System: 1.376 s]
  Range (min … max):    3.389 s …  3.462 s    4 runs
```
With this patch:
```
Benchmark 1: ./x.py fmt -j1
  Time (mean ± σ):      2.530 s ±  0.054 s    [User: 4.042 s, System: 0.467 s]
  Range (min … max):    2.452 s …  2.576 s    4 runs
```
…by789

bootstrap: fix clap deprecated warnings

Run 'cargo check --features clap/deprecated' and fix warnings
… r=michaelwoerister

Improve renaming suggestion when item starts with underscore

Fixes rust-lang#121776.

It goes from:

```terminal
error[E0433]: failed to resolve: use of undeclared type `Foo`
 --> src/foo.rs:6:13
  |
6 |     let _ = Foo::Bar;
  |             ^^^ use of undeclared type `Foo`
  |
help: an enum with a similar name exists, consider changing it
  |
1 | enum Foo {
  |      ~~~
```

to:

```terminal
error[E0433]: failed to resolve: use of undeclared type `Foo`
 --> foo.rs:6:13
  |
6 |     let _ = Foo::Bar;
  |             ^^^ use of undeclared type `Foo`
  |
help: an enum with a similar name exists, consider renaming `_Foo` into `Foo`
  |
1 | enum Foo {
  |      ~~~

error: aborting due to 1 previous error
```
Document which methods on `f32` are precise

Same as rust-lang#118217 but for `f32`.
@rustbot rustbot added O-hermit Operating System: Hermit 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-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative labels Feb 29, 2024
@rustbot rustbot added the rollup A PR which is a rollup label Feb 29, 2024
@GuillaumeGomez
Copy link
Member Author

@bors r+ p=5 rollup=never

@bors
Copy link
Contributor

bors commented Feb 29, 2024

📌 Commit bc23b84 has been approved by GuillaumeGomez

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 29, 2024
@bors
Copy link
Contributor

bors commented Feb 29, 2024

⌛ Testing commit bc23b84 with merge 384d26f...

@bors
Copy link
Contributor

bors commented Feb 29, 2024

☀️ Test successful - checks-actions
Approved by: GuillaumeGomez
Pushing 384d26f to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Feb 29, 2024
@bors bors merged commit 384d26f into rust-lang:master Feb 29, 2024
12 checks passed
@rustbot rustbot added this to the 1.78.0 milestone Feb 29, 2024
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#118217 Document which methods on f64 are precise bac88b2000f0b6191ad9a5e63d5cf993a4ef7885 (link)
#121412 platform docs: clarify hexagon-unknown-none-elf example, ad… 2112cdcddca597be06ab7f0a5792254f0e80ea29 (link)
#121654 Fix async Fn confirmation for FnDef/FnPtr/Closure t… 09f9a8e959ce9cdf0463bcdd4672ceb0cad3dadd (link)
#121700 CFI: Don't compress user-defined builtin types 8a745feb27aa8b9345840cd30d1b38d3c99b08bb (link)
#121765 add platform-specific function to get the error number for … 051f24632cd9b16cf5628c38b688ff39dab9863d (link)
#121781 bootstrap/format: send larger batches to rustfmt aa2d68b5bdb76c5c2e5f0f94002dbfb35c788548 (link)
#121788 bootstrap: fix clap deprecated warnings f085df3fe0f1a688a674255c9c82032881b17ebc (link)
#121792 Improve renaming suggestion when item starts with underscore d0ed795ead08d9ee1a527d279874dcf7dfe2a3b4 (link)
#121793 Document which methods on f32 are precise 7d4b4c350ea09a422db1a5c4680c86942d69dfe0 (link)

previous master: 71a7b66f20

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

@GuillaumeGomez GuillaumeGomez deleted the rollup-wob2qcz branch February 29, 2024 16:08
@klensy
Copy link
Contributor

klensy commented Feb 29, 2024

Weird, 10 PRs mentioned, but rolled up only 9.

@GuillaumeGomez
Copy link
Member Author

I was wondering about the same thing. ^^'

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (384d26f): comparison URL.

Overall result: ❌ regressions - ACTION NEEDED

Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please open an issue or create a new PR that fixes the regressions, add a comment linking to the newly created issue or PR, and then add the perf-regression-triaged label to this PR.

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

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.8% [0.7%, 0.8%] 4
Regressions ❌
(secondary)
0.4% [0.2%, 0.7%] 7
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.8% [0.7%, 0.8%] 4

Max RSS (memory usage)

Results

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)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.9% [-4.5%, -1.4%] 4
All ❌✅ (primary) - - 0

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: 650.304s -> 651.155s (0.13%)
Artifact size: 311.18 MiB -> 311.15 MiB (-0.01%)

@rustbot rustbot added the perf-regression Performance regression. label Feb 29, 2024
@lqd
Copy link
Member

lqd commented Mar 1, 2024

I'm pretty sure this is all noise, starting a stretch of bimodal behavior. The benchmarks look all more or less like these back-and-forths (with different amplitudes)

image

@rustbot label: +perf-regression-triaged

@rustbot rustbot added the perf-regression-triaged The performance regression has been triaged. label Mar 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. O-hermit Operating System: Hermit perf-regression Performance regression. perf-regression-triaged The performance regression has been triaged. 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-libs Relevant to the library team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative
Projects
None yet
Development

Successfully merging this pull request may close these issues.