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

Policy question: changes for platform consistency #3839

Open
tgross35 opened this issue Aug 16, 2024 · 6 comments
Open

Policy question: changes for platform consistency #3839

tgross35 opened this issue Aug 16, 2024 · 6 comments
Labels
Milestone

Comments

@tgross35
Copy link
Contributor

We have a couple PRs proposing something that makes platforms more consistent, but isn't exactly true to the C API. Two examples:

The reasoning for these suggestions is that it is pretty unlikely for library authors to special case Hurd or BSD, meaning builds will just break on these platforms. By making something consistent with Linux, it is more likely that things work out of the box without library authors needing to test these less common platforms.

I think an argument could be made in either direction, so I am bringing this up as a more general policy question.

@tgross35 tgross35 added the C-API-request Category: API request label Aug 16, 2024
@tgross35
Copy link
Contributor Author

@joshtriplett do you have any thoughts here?

This was referenced Aug 16, 2024
@sthibaul
Copy link
Contributor

but on Hurd it is st_fsid. #3785 proposes renaming this field to st_dev.

Note: the Hurd C API also provides the st_dev alias for the st_fsid field. So from the point of view of C, Hurd does provide the st_dev name for the field too.

@sthibaul
Copy link
Contributor

sthibaul commented Aug 16, 2024

And also, in the struct stat, it's already st_dev which is defined in rust-libc, it's struct stat64 which wasn't fixed yet in rust-libc to follow the common practice of calling it st_dev.

@sthibaul
Copy link
Contributor

(put another way: if rust could support different names for the same field, we could ideally provide both st_dev and st_fsid. Otherwise, I'd say better provide the most standard variant, st_dev)

@tgross35 tgross35 added this to the 1.0 milestone Aug 29, 2024
@sthibaul
Copy link
Contributor

Are there any news on this?

@asomers
Copy link
Contributor

asomers commented Dec 22, 2024

Personally I'm against it. Attempting to provide compatibility shims in libc would obscure the crate's true purpose. We've tried the same thing in the Nix crate a few times, and it never turned out well. Compatibility layers are best built at a higher level than this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants