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
add intmax #17896
add intmax #17896
Conversation
The sad thing about |
@thestinger Could you elaborate on that? Do you perhaps have For everyone's reference: POSIX on |
@nodakai: |
@@ -1426,6 +1435,9 @@ pub mod types { | |||
pub type uintptr_t = u32; | |||
#[cfg(target_arch = "x86_64")] | |||
pub type uintptr_t = u64; | |||
|
|||
pub type intmax_t = i64; | |||
pub type uintmax_t = i64; |
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.
s/i/u/
@thestinger I mean, I was curious what you had in your mind as an example of "integer types larger than ( Though I don't think Wow, OpenSSL internally depends on |
I think we should have it all there unconditionally and it should be generated from the C headers without any additional organization. However, the current way of doing things is that libc is only for stuff that's generally correct / useful / portable and not exposed in some other way by Rust. |
It would be helpful if someone with access to the bots could check if intmax_ is i64 everywhere. |
@thestinger Do you have any objections to this? I am OK with it in general but I don't have a real opinion. Just want to take action on this PR. |
@pcwalton: I don't think we should pick and choose the parts of libc that we expose, but we do approach it that way right now and I don't think |
If it was up to me, we would use automatic binding generation or at least pretend we were using it. That would mean exposing everything C does without organization into namespaces and not making our own decisions about which functionality is useful / portable. So under that model, this would be acceptable. |
While not explicitly spelled out, the purpose of |
Closes #17075 I don't know if this is correct. The easiest way to find out is to run the following program on all targets but I can't do it myself. ```c #include <stdint.h> #include <stdio.h> int main(void) { if (sizeof(intmax_t) != 8) { puts("ERROR"); return 1; } } ```
Closes #17075
I don't know if this is correct. The easiest way to find out is to run the following program on all targets but I can't do it myself.