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 8 pull requests #134952

Merged
merged 19 commits into from
Dec 31, 2024
Merged

Rollup of 8 pull requests #134952

merged 19 commits into from
Dec 31, 2024

Conversation

Zalathar
Copy link
Contributor

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

RalfJung and others added 19 commits December 30, 2024 18:10
Tracking issue: rust-lang#95629

Unblocked by const_mut_refs being stabilized: rust-lang#129195
bootstrap: Make `./x test compiler` actually run the compiler unit tests

Fixes rust-lang#134916.
…r=scottmcm

Make slice::as_flattened_mut unstably const

Tracking issue: rust-lang#95629

Unblocked by const_mut_refs being stabilized: rust-lang#129195
…jhpratt

ptr docs: make it clear that we are talking only about memory accesses

This should make it harder to take this sentence out of context and misunderstand it.
…ubilee

explicitly set float ABI for all ARM targets

We currently always set the `FloatABIType` field in the LLVM target machine to `Default`, which means LLVM infers the ARM float ABI (hard vs soft) from the LLVM target triple. This causes problems such as having to set the LLVM triple to `*-gnueabi` for our `musleabi` targets to ensure they get correctly inferred as soft-float targets. It also means rustc doesn't really know which float ABI ends up being used, which is a blocker for rust-lang#134794. So I think we should stop doing that and instead explicitly control that value. That's what this PR implements.

See [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/187780-t-compiler.2Fwg-llvm/topic/Softfloat.20ABI.2C.20hardfloat.20instructions) for more context.

Best reviewed commit-by-commit. I hope I got all those `llvm_floatabi` values right...
…zed, r=lqd

Make sure we check the future type is `Sized` in `AsyncFn*`

Fixes rust-lang#134817
…=Noratrieb

compiler: Add a statement-of-intent to `rustc_abi`

This just documents the most basic idea of what the crate is even for in my view, rather than leaving that strewn about GitHub issues, PR reviews, and Zulip streams. In particular, I hope to make it clearer what code should go in `rustc_abi` and what should not, which is of immediate relevance to contributors.

I considered going even further and explaining ideas like "ABI compatibility", prologues, and so on. However, because of the cross-cutting nature of ABI, I think such explanations should probably live in the place for cross-cutting documents: the rustc dev guide. This is only meant to be a quick "by the way".
Convert some `Into` impls into `From` impls

From the [`From`](https://doc.rust-lang.org/std/convert/trait.From.html) docs:

> One should always prefer implementing `From` over [`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) because implementing `From` automatically provides one with an implementation of [`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) thanks to the blanket implementation in the standard library.
>
> Only implement [`Into`](https://doc.rust-lang.org/std/convert/trait.Into.html) when targeting a version prior to Rust 1.41 and converting to a type outside the current crate. `From` was not able to do these types of conversions in earlier versions because of Rust’s orphaning rules. See [Into](https://doc.rust-lang.org/std/convert/trait.Into.html) for more details.

Some of these impls are likely from before 1.41, and then some others were probably just mistakes. Building nightly rust is definitely not supported on 1.41, so let's modernize these impls :D
@rustbot rustbot added A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic O-apple Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS) 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. rollup A PR which is a rollup labels Dec 31, 2024
@Zalathar
Copy link
Contributor Author

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Dec 31, 2024

📌 Commit 2491eda has been approved by Zalathar

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

bors commented Dec 31, 2024

⌛ Testing commit 2491eda with merge 41b5796...

@bors
Copy link
Contributor

bors commented Dec 31, 2024

☀️ Test successful - checks-actions
Approved by: Zalathar
Pushing 41b5796 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Dec 31, 2024
@bors bors merged commit 41b5796 into rust-lang:master Dec 31, 2024
7 checks passed
@rustbot rustbot added this to the 1.85.0 milestone Dec 31, 2024
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#134919 bootstrap: Make ./x test compiler actually run the compil… 677ce087e301be5ff26e76c0d42ecdd6ba3293aa (link)
#134927 Make slice::as_flattened_mut unstably const d03e506236d5f67594e09a558c98a52f9ba7e29a (link)
#134930 ptr docs: make it clear that we are talking only about memo… 8abd1e4c2377589bc23212590d4054841d1bbb2d (link)
#134932 explicitly set float ABI for all ARM targets 84ce75b2f1479ba2eae810567db10deed9a0d0ca (link)
#134933 Make sure we check the future type is Sized in AsyncFn* d8fee1efbd515a53fd0638432b00099d0c21b8b5 (link)
#134934 Fix typos 37f6b122a44f27fb679ac9df3e03e80af198f257 (link)
#134941 compiler: Add a statement-of-intent to rustc_abi 8345b4b94b7a26f0bf55f00b3321fec1981dab3d (link)
#134949 Convert some Into impls into From impls 2e7370ae0da3f70175abad3c31c451267654c3e2 (link)

previous master: 80f5a81df9

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 (41b5796): 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)

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

Cycles

Results (secondary 2.2%)

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

Binary size

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

Bootstrap: 760.209s -> 760.034s (-0.02%)
Artifact size: 325.50 MiB -> 325.55 MiB (0.02%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic merged-by-bors This PR was explicitly merged by bors. O-apple Operating system: Apple (macOS, iOS, tvOS, visionOS, watchOS) 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants