-
Notifications
You must be signed in to change notification settings - Fork 13.4k
some "Unix" targets don't support most Unix idioms #141838
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
Comments
While removing
With that said, if |
Mostly what I'm noticing, @ivmarkov, is that even if we e.g. address various stdlib APIs with a solution like |
And I certainly must express at least some doubt that we want to touch signals in the stdlib. |
I'm not following why we can't have |
I suppose we could, but that raises the question: how many such |
@ivmarkov To be clear, I'm not trying to inconvenience you specifically, I'm just thinking about how we can relatively-ergonomically support various use-cases without every Rust crate author having to hand-roll their own list of platform support. |
Sure. And
So in either case, for microcontrollers you do need additional confs. Because But also - either way is no big deal for us. If T-libs decides to pull us out of It is only that the issue was seemingly opened not with the "impression" argument in mind, but with the argument that "This causes considerable amounts of working around them in configuration code for libraries" and what I'm saying is that either way you decide to treat microcontrollers - "some amount of working around them in configuration code" is just unavoidable. And that my gut feeling is still that with === BTW - and sorry if clear - but running most "off the shelf" STD crates from crates.io on microcontrollers without any modifications is a chimera anyway. When you have a total of ~ 200KB for the Popular crates, which are thin, mostly zero-cost wrappers around the OS, like STD itself and the networking crates I enumerated above; async runtimes; utilities like Just mentioning because this whole "let's make sure downstream crates have an easier life by selecting the more correct ===
I don't follow. Alas, we are not there, hence the whole discussion, I guess. |
We are facing this issue too with Hermit. Hermit has traditionally had custom system calls, but nowadays, we are moving towards POSIX in many ways, but not in all. We are committing to POSIX networking and file descriptors nowadays, but explicitly don't support spawning processes or signals. So when we are adding support for Hermit in popular crates such as Tokio, we mostly need to change So having something more fine-grained like |
This is a persistent issue with
target_family = "unix"
being defined by targets that happen to have a somewhat Unix-like compiling-for-them experience but do not have a Unix runtime. This causes considerable amounts of working around them in configuration code for libraries, since you cannot simply treat them as Unix.Some examples:
ctrlc
frombevy_app
for the Nintendo 3DS bevyengine/bevy#19453The text was updated successfully, but these errors were encountered: