make unsupported_calling_conventions a hard error by RalfJung · Pull Request #129935 · rust-lang/rust (original) (raw)

Conversation

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

@RalfJung

This has been a future-compat lint (not shown in dependencies) since Rust 1.55, released 3 years ago. Hopefully that was enough time so this can be made a hard error now. Given that long timeframe, I think it's justified to skip the "show in dependencies" stage. There were not many crates hitting this even when the lint was originally added.

This should get cratered, and I assume then it needs a t-compiler FCP. (t-compiler because this looks entirely like an implementation oversight -- for the vast majority of ABIs, we already have a hard error, but some were initially missed, and we are finally fixing that.)

Fixes #87678

@rustbot

r? @fee1-dead

rustbot has assigned @fee1-dead.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added 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.

labels

Sep 3, 2024

@rustbot

These commits modify compiler targets.
(See the Target Tier Policy.)

Some changes occurred in src/tools/clippy

cc @rust-lang/clippy

@RalfJung

bors added a commit to rust-lang-ci/rust that referenced this pull request

Sep 3, 2024

@bors

…ions, r=

make unsupported_calling_conventions a hard error

This has been a future-compat lint (not shown in dependencies) since Rust 1.55, released 3 years ago. Hopefully that was enough time so this can be made a hard error now. Given that long timeframe, I think it's justified to skip the "show in dependencies" stage. There were [not many crates hitting this](rust-lang#86231 (comment)) even when the PR was landed.

This should get cratered, and I assume then it needs a t-compiler FCP.

Fixes rust-lang#88397

@bors

@rust-log-analyzer

This comment has been minimized.

@RalfJung

Damn, this needs a change in the reference.^^

@ehuss

Damn, this needs a change in the reference.^^

Waiting 24 hours will also unblock, since beta week ends.

@bors

☀️ Try build successful - checks-actions
Build commit: 498fce2 (498fce24f39c1ecbb0abe08824e72162da853341)

@RalfJung

@craterbot check
The fact that crater is Linux-only is actually good here; on Windows the ABI keeps being accepted on all targets, only on other OSes does it get rejected.

@craterbot

@craterbot

🚧 Experiment pr-129935 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot

This was referenced

Sep 9, 2024

@RalfJung

6 crates on crates.io are affected, those all look like genuine regressions. They are all rarely used (the one with most downloads has 12k total downloads, that one also has not seen any updates in 8 years).

I have filed issues for the 4 crates that saw updates in the last 5 years, see the backlinks above.

@RalfJung

@fee1-dead I think this is then ready for review.

Does it need a t-compiler FCP because it is a breaking change?

@rust-log-analyzer

This comment has been minimized.

@bors

@rust-highfive

rust-highfive added a commit to rust-lang-nursery/rust-toolstate that referenced this pull request

Oct 22, 2024

@rust-highfive

@bors

@RalfJung

@rust-timer

Finished benchmarking commit (1de57a5): comparison URL.

Overall result: ✅ improvements - 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
Improvements ✅ (primary) -2.6% [-2.6%, -2.6%] 1
Improvements ✅ (secondary) - - 0
All ❌✅ (primary) -2.6% [-2.6%, -2.6%] 1

Max RSS (memory usage)

Results (primary 1.7%, secondary -0.4%)

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

Cycles

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

Binary size

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

Bootstrap: 781.081s -> 779.742s (-0.17%)
Artifact size: 333.69 MiB -> 333.70 MiB (0.00%)

@RalfJung RalfJung deleted the unsupported_calling_conventions branch

October 22, 2024 07:23

ehuss added a commit to ehuss/reference that referenced this pull request

Oct 22, 2024

@ehuss

rust-lang/rust#129935 made unsupported_calling_conventions a hard-error, which in turn makes this test fail.

@ehuss ehuss mentioned this pull request

Oct 22, 2024

@ehuss

flip1995 pushed a commit to flip1995/rust that referenced this pull request

Nov 7, 2024

@bors

…ions, r=compiler-errors

make unsupported_calling_conventions a hard error

This has been a future-compat lint (not shown in dependencies) since Rust 1.55, released 3 years ago. Hopefully that was enough time so this can be made a hard error now. Given that long timeframe, I think it's justified to skip the "show in dependencies" stage. There were [not many crates hitting this](rust-lang#86231 (comment)) even when the lint was originally added.

This should get cratered, and I assume then it needs a t-compiler FCP. (t-compiler because this looks entirely like an implementation oversight -- for the vast majority of ABIs, we already have a hard error, but some were initially missed, and we are finally fixing that.)

Fixes rust-lang#87678

cameraMeasurementTech added a commit to cameraMeasurementTech/rust-lang that referenced this pull request

Dec 11, 2024

@cameraMeasurementTech

rust-lang/rust#129935 made unsupported_calling_conventions a hard-error, which in turn makes this test fail.

tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request

Jan 22, 2025

@tmeijn

This MR contains the following updates:

Package Update Change
rust minor 1.83.0 -> 1.84.0

MR created with the help of el-capitano/tools/renovate-bot.

Proposed changes to behavior should be submitted there as MRs.


Release Notes

rust-lang/rust (rust)

v1.84.0

Compare Source

==========================

Language

Compiler

Libraries

Stabilized APIs

These APIs are now stable in const contexts

Cargo

Rustdoc

Compatibility Notes


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this MR and you won't be reminded about this update again.



This MR has been generated by Renovate Bot.

wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request

Feb 2, 2025

@he32

Pkgsrc changes:

Upstream changes:

Version 1.84.1 (2025-01-30)

Version 1.84.0 (2025-01-09)

Language

Compiler

Libraries

Stabilized APIs

These APIs are now stable in const contexts

Cargo

Rustdoc

Compatibility Notes

workingjubilee added a commit to workingjubilee/rustc that referenced this pull request

Jun 7, 2025

@workingjubilee

…ntions, r=workingjubilee

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in rust-lang#129935, in order to start the process of dealing with rust-lang#137018. Specifically, we are going for the plan laid out [here](rust-lang#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request

Jun 7, 2025

@GuillaumeGomez

…ntions, r=workingjubilee

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in rust-lang#129935, in order to start the process of dealing with rust-lang#137018. Specifically, we are going for the plan laid out [here](rust-lang#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

rust-bors bot added a commit that referenced this pull request

Jun 7, 2025

@rust-bors

…try>

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in #129935, in order to start the process of dealing with #137018. Specifically, we are going for the plan laid out [here](#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

try-job: i686-msvc-1 try-job: x86_64-msvc-1 try-job: test-various

rust-bors bot added a commit that referenced this pull request

Jun 8, 2025

@rust-bors

…try>

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in #129935, in order to start the process of dealing with #137018. Specifically, we are going for the plan laid out [here](#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

try-job: i686-msvc-1 try-job: x86_64-msvc-1 try-job: test-various

rust-bors bot added a commit that referenced this pull request

Jun 8, 2025

@rust-bors

…try>

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in #129935, in order to start the process of dealing with #137018. Specifically, we are going for the plan laid out [here](#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

try-job: i686-msvc-1 try-job: x86_64-msvc-1 try-job: test-various

rust-bors bot added a commit that referenced this pull request

Jun 8, 2025

@rust-bors

…try>

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in #129935, in order to start the process of dealing with #137018. Specifically, we are going for the plan laid out [here](#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

try-job: i686-msvc-1 try-job: x86_64-msvc-1 try-job: test-various

bors added a commit that referenced this pull request

Jun 9, 2025

@bors

…orkingjubilee

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in #129935, in order to start the process of dealing with #137018. Specifically, we are going for the plan laid out [here](#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

try-job: i686-msvc-1 try-job: x86_64-msvc-1 try-job: test-various

lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request

Jun 9, 2025

@bors

…orkingjubilee

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in rust-lang/rust#129935, in order to start the process of dealing with rust-lang/rust#137018. Specifically, we are going for the plan laid out [here](rust-lang/rust#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

try-job: i686-msvc-1 try-job: x86_64-msvc-1 try-job: test-various

github-actions bot pushed a commit to rust-lang/miri that referenced this pull request

Jun 10, 2025

@bors

…orkingjubilee

Add (back) unsupported_calling_conventions lint to reject more invalid calling conventions

This adds back the unsupported_calling_conventions lint that was removed in rust-lang/rust#129935, in order to start the process of dealing with rust-lang/rust#137018. Specifically, we are going for the plan laid out [here](rust-lang/rust#137018 (comment)):

The difference to the status quo is that:

Vectorcall is an unstable ABI so we can just make this a hard error immediately. The others are stable, so we emit the unsupported_calling_conventions forward-compat lint. I set up the lint to show up in dependencies via cargo's future-compat report immediately, but we could also make it show up just for the local crate first if that is preferred.

try-job: i686-msvc-1 try-job: x86_64-msvc-1 try-job: test-various

Labels

disposition-merge

This issue / PR is in PFCP or FCP with a disposition to merge it.

finished-final-comment-period

The final comment period is finished for this PR / Issue.

merged-by-bors

This PR was explicitly merged by bors.

relnotes

Marks issues that should be documented in the release notes of the next release.

S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

T-compiler

Relevant to the compiler team, which will review and decide on the PR/issue.