-
Notifications
You must be signed in to change notification settings - Fork 19
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
Shove VaList
, et al. into ffi::va_list
#401
Comments
Given that the only public API is |
eh, it seemed worth considering while there is currently a minimum of entities there, instead of waiting until it happens, and because the API is niche so placing it out of the way seems fine. there is currently-unimplemented support API for our emulation of the I'm happy to make it just an internal organizational change though, if there's no appetite for this. |
I do think we should re-export these types directly in (Having it be internal also sidesteps the question of |
Proposal
That's the entire thing.
Problem statement
core/ffi/mod.rs
feels like a bit of a mess1. Having theVaList
impl in it is likely to make that worse over time if/whenc_variadic
gets stabilized, platforms get added, more functionality is considered, etc.Motivating examples or use cases
The motivation is being able to read and understand libcore, and so we can delete the zillion redundant stability annotations in exchange for just one on the module.
Solution sketch
Move the types and traits into a submodule of ffi, for
ffi::va_list
.Alternatives
ffi
, soffi::VaList
is still accessible. One more stability annotation, but that seems okay.varargs
, I guess.Links and related work
std::ffi::c
andstd::ffi::os
submodules #134What happens now?
This issue contains an API change proposal (or ACP) and is part of the libs-api team feature lifecycle. Once this issue is filed, the libs-api team will review open proposals as capability becomes available. Current response times do not have a clear estimate, but may be up to several months.
Possible responses
The libs team may respond in various different ways. First, the team will consider the problem (this doesn't require any concrete solution or alternatives to have been proposed):
Second, if there's a concrete solution:
Footnotes
This is surprising to me given that much larger modules have seemed fairly organized to me. I think it's all the
cfg
that makes me dizzy, plus the redundant annotations. ↩The text was updated successfully, but these errors were encountered: