-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Stabilize extended_varargs_abi_support
#116161
base: master
Are you sure you want to change the base?
Conversation
r? @wesleywiser (rustbot has picked a reviewer for you, use r? to override) |
@rustbot label F-extended_varargs_abi_support |
This comment has been minimized.
This comment has been minimized.
@@ -160,6 +160,9 @@ declare_features! ( | |||
(accepted, explicit_generic_args_with_impl_trait, "1.63.0", Some(83701), None), | |||
/// Allows arbitrary expressions in key-value attributes at parse time. | |||
(accepted, extended_key_value_attributes, "1.54.0", Some(78835), None), | |||
/// Allows using `efiapi`, `aapcs`, `sysv64` and `win64` as calling | |||
/// convention for functions with varargs. | |||
(accepted, extended_varargs_abi_support, "1.65.0", Some(100189), None), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
use CURRENT_RUSTC_VERSION
instead of a version number here
Tracking issue: #100189 |
☔ The latest upstream changes (presumably #116550) made this pull request unmergeable. Please resolve the merge conflicts. |
☔ The latest upstream changes (presumably #118823) made this pull request unmergeable. Please resolve the merge conflicts. |
r? compiler |
I'm on vacation for a few days :) |
Not completely sure which team should be nominated for stabilization, so labeling both in doubt. |
Just to add on to @cjgillot 's comment above: @wesleywiser and I could not remember earlier today whether T-lang wants to own FCP'ing changes like this that are restricted to extending the set of calling-conventions (i.e. the (My own gut reaction is that T-compiler is a more natural owner for this than T-lang, but I wasn't certain and so it seems best to let the nomination stand and let the two teams duke it out.) |
Removing the T-compiler nomination until after T-lang discussed this. Feel free to re-add T-compiler! @rustbot label -I-compiler-nominated |
Well, yes. I haven't thought about it initially (as I was mostly focused on pub fn supports_varargs(self) -> bool {
// * C and Cdecl obviously support varargs.
// * C can be based on Aapcs, SysV64 or Win64, so they must support varargs.
// * EfiApi is based on Win64 or C, so it also supports it.
// * System falls back to C for functions with varargs.
//
// * Stdcall does not, because it would be impossible for the callee to clean
// up the arguments. (callee doesn't know how many arguments are there)
// * Same for Fastcall, Vectorcall and Thiscall.
// * Other calling conventions are related to hardware or the compiler itself.
match self {
Self::C { .. }
| Self::Cdecl { .. }
| Self::System { .. }
| Self::Aapcs { .. }
| Self::Win64 { .. }
| Self::SysV64 { .. }
| Self::EfiApi => true,
_ => false,
}
} So whether there is Should I rebase the change or will there be some exceptions for |
T-compiler looked again at this proposal during the triage meeting and is fine with it. @rustbot label -I-compiler-nominated |
There are merge commits (commits with multiple parents) in your changes. We have a no merge policy so these commits will need to be removed for this pull request to be merged. You can start a rebase with the following commands:
The following commits are merge commits: |
lgtm :) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #131448) made this pull request unmergeable. Please resolve the merge conflicts. |
4951cec
to
050c888
Compare
uhh, I did not notice that I changed some submodules by accident |
☔ The latest upstream changes (presumably #132027) made this pull request unmergeable. Please resolve the merge conflicts. |
r=me after rebase |
I think that is everything? If there is any documentation regarding
extern
and/or varargs to correct, let me know, some quick greps suggest that there might be none.Tracking issue: #100189