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 7 pull requests #127831

Merged
merged 20 commits into from
Jul 17, 2024
Merged

Rollup of 7 pull requests #127831

merged 20 commits into from
Jul 17, 2024

Conversation

tgross35
Copy link
Contributor

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Oneirical and others added 20 commits July 5, 2024 16:25
From LLVM 15.0.0-rc3. This adds support for COFF archives containing
Arm64EC object files and has various fixes for AIX big archive files.
This commit promotes the `wasm32-wasip2` Rust target to tier 2 as
proposed in rust-lang/compiler-team#760. There are two major changes in
this PR:

1. The `dist-various-2` container, which already produces the other WASI
   targets, now has an extra target added for `wasm32-wasip2`.
2. A new `wasm-component-ld` binary is added to all host toolchains when
   LLD is enabled. This is the linker used for the `wasm32-wasip2` target.

This new linker is added for all host toolchains to ensure that all host
toolchains can produce the `wasm32-wasip2` target. This is similar to
how `rust-lld` was originally included for all host toolchains to be
able to produce WebAssembly output when the targets were first added.
The new linker is developed [here][wasm-component-ld] and is pulled in
via a crates.io-based dependency to the tree here.

[wasm-component-ld]: https://github.com/bytecodealliance/wasm-component-ld
Reuse preexisting macro and switch it to a "bootstrap tool" to try to
resolve build issues.
Switch it to using a just-built standard library which enables it to be
cross compiled. Additionally allow it access to `min_specialization`
which `ahash`, a dependency, wants.
…davidtwco

Sync ar_archive_writer to LLVM 18.1.3

From LLVM 15.0.0-rc3. This adds support for COFF archives containing Arm64EC object files and has various fixes for AIX big archive files.
…ompiler-errors

Delegation: support coercion for target expression

(solves rust-lang#118212 (comment))

The implementation consist of 2 parts. Firstly, method call is generated instead of fully qualified call in AST->HIR lowering if there were no generic arguments or `Qpath` were provided. These restrictions are imposed due to the loss of information after desugaring. For example in

```rust
trait Trait {
  fn foo(&self) {}
}

reuse <u8 as Trait>::foo;
```

We would like to generate such a code:

```rust
fn foo<u8: Trait>(x: &u8) {
  x.foo(x)
}
```

however, the signature is inherited during HIR analysis where `u8` was discarded.

Then, we probe the single pre-resolved method.

P.S In the future, we would like to avoid restrictions on the callee path by `Self` autoref/autoderef in fully qualified calls, but at the moment it didn't work out.

r? `@petrochenkov`
…erister

Deny keyword lifetimes pre-expansion

rust-lang#126452 (comment)

> Secondly, we confirmed that we're OK with moving the validation of keywords in lifetimes to pre-expansion from post-expansion. We similarly consider this a bug fix. While the breakage of the convenience feature of the with_locals crate that relies on this is unfortunate, and we wish we had not overlooked this earlier for that reason, we're fortunate that the breakage is contained to only one crate, and we're going to accept this breakage as the extra complexity we'd need to carry in the compiler to work around this isn't deemed worth it.

T-lang considers it to be a bugfix to deny `'keyword` lifetimes in the parser, rather than during AST validation that only happens post-expansion. This has one breakage: rust-lang#126452 (comment)

This probably should get lang FCP'd just for consistency.
… r=Mark-Simulacrum

Promote the `wasm32-wasip2` target to Tier 2

This commit promotes the `wasm32-wasip2` Rust target to tier 2 as proposed in rust-lang/compiler-team#760. There are two major changes in this PR:

1. The `dist-various-2` container, which already produces the other WASI targets, now has an extra target added for `wasm32-wasip2`.
2. A new `wasm-component-ld` binary is added to all host toolchains when LLD is enabled. This is the linker used for the `wasm32-wasip2` target.

This new linker is added for all host toolchains to ensure that all host toolchains can produce the `wasm32-wasip2` target. This is similar to how `rust-lld` was originally included for all host toolchains to be able to produce WebAssembly output when the targets were first added. The new linker is developed [here][wasm-component-ld] and is pulled in via a crates.io-based dependency to the tree here.

[wasm-component-ld]: https://github.com/bytecodealliance/wasm-component-ld
…youxu

Migrate `raw-dylib-inline-cross-dylib` and `raw-dylib-custom-dlltool` `run-make` tests to rmake

Part of rust-lang#121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).

Please try:

try-job: i686-mingw
…-mod-struture, r=lcnr

Invert infer `error_reporting` mod struture

Parallel change to rust-lang#127493, which moves `rustc_infer::infer::error_reporting` to `rustc_infer::error_reporting::infer`. After this, we should just be able to merge this into `rustc_trait_selection::error_reporting::infer`, and pull down `TypeErrCtxt` into that crate. 👍

r? lcnr
Update method name to reflect changes to its internals

forgot to do this in rust-lang#127431
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc 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-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jul 16, 2024
@tgross35
Copy link
Contributor Author

@bors r+ rollup=never p=7

@bors
Copy link
Contributor

bors commented Jul 16, 2024

📌 Commit 7d534dd 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 Jul 16, 2024
@bors
Copy link
Contributor

bors commented Jul 16, 2024

⌛ Testing commit 7d534dd with merge 7d356eb...

@tgross35
Copy link
Contributor Author

x86_64-apple-1 has been running for 45 minutes longer than its usual, unfortunately seems stuck running some data structure tests:

       Running unittests src/lib.rs (build/x86_64-apple-darwin/stage1-rustc/x86_64-apple-darwin/release/deps/rustc_data_structures-44d26cb07006d43d)
  
  running 104 tests
  test base_n::tests::limits ... ok
  test binary_search_util::tests::binary_search_slice_test ... ok
  test fingerprint::tests::combine_commutative_is_order_independent ... ok

@bors cancel

@bors
Copy link
Contributor

bors commented Jul 17, 2024

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

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 17, 2024
@bors bors merged commit 7d356eb into rust-lang:master Jul 17, 2024
7 checks passed
@rustbot rustbot added this to the 1.81.0 milestone Jul 17, 2024
@tgross35 tgross35 deleted the rollup-c0j9n7b branch July 17, 2024 00:21
@tgross35
Copy link
Contributor Author

Timing! Well, good thing bors ignored me 😆

@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#124033 Sync ar_archive_writer to LLVM 18.1.3 9beb2d5595f664201d9442d444777c395eeb9526 (link)
#126699 Delegation: support coercion for target expression 0c8b4239d5b02e1be63c5f4928ee93e16bcef88d (link)
#126762 Deny keyword lifetimes pre-expansion d748cbff7fa71a156d4d7ad5e56806be6b37a5a9 (link)
#126967 Promote the wasm32-wasip2 target to Tier 2 fa3608c8b1830298f7be03d61881f393eca73822 (link)
#127390 Migrate raw-dylib-inline-cross-dylib and `raw-dylib-custo… a101953aaf59d775a4deae211c6d21b2a75039e0 (link)
#127501 Invert infer error_reporting mod struture 52f9d5c15d7c89509700769ab2ba597e6dadf3f4 (link)
#127816 Update method name to reflect changes to its internals 5e03d001ac403d10520054b0f6a4f81ffd217420 (link)

previous master: 032be6f7bb

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 (7d356eb): 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 (secondary 7.6%)

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)
7.6% [7.6%, 7.6%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
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: 700.459s -> 768.585s (9.73%)
Artifact size: 328.60 MiB -> 328.66 MiB (0.02%)

@Kobzol
Copy link
Contributor

Kobzol commented Jul 17, 2024

This PR made the bootstrap benchmark 70s slower.

@tgross35
Copy link
Contributor Author

I guess it has to be 2a3e22b#diff-dc86e288bcf7b3ca3f8c127d3568fbafc785704883bc7fc336bd185910aed5da. Could that install be lazy?

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-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. 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-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.