-
Notifications
You must be signed in to change notification settings - Fork 24
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
Please document the intended policy for minimum Linux kernel versions #47
Comments
Interesting question! Right now, in theory, Mustang should run on all Linux versions Rust currently supports. Most of the work for detecting which syscalls are available and for running fallback logic that std needs lives in std itself. Mustang's current approach is to replace libc and use std without modifications, so all the existing fallback code should "just work". That said, the only testing that's been set up so far just the Linux versions available on Github Actions. If Mustang starts working toward becoming an official Rust target of its own, I imagine it'll go with option 1 or 2. I'd be interested to hear what people who might want to use Mustang in any of the above scenarios think. |
I suspect the biggest change you might want to consume from recent versions is the ability to set |
Could you say more about the use case you have in mind for |
@sunfishcode My point was that you might want to depend on them for implementing |
For TLS, we use system calls to set up the fs/gs registers. They're slower than |
Here's how things look to me right now. std tends to avoid features which don't work on all supported Linux versions. And std already does use new Linux syscalls to optimize things when they happen to fit into what it's already doing. As such, there aren't many opportunities to use new Linux syscalls to do the things std does in different ways. It'd be fun to avoid If someone sees an opportunity to do things differently, or wants to help out with the work required to do something different, I'm open to it. But until then, it seems like Mustang will continue to pursue something like option 3: Aim to support all versions of Linux supported by Rust. We don't have testing for the older versions yet, so there could be bugs yet, but hopefully we'll fix those over time. |
I've now posted #74 to document this. |
The policy is now documented. As I mentioned above, I'm happy to discuss opportunities to do something different. |
I'd love to see mustang have a documented policy for how it selects the minimum Linux kernel version it supports, as well as the current minimum version.
I can imagine three possible policies here:
The text was updated successfully, but these errors were encountered: