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

Consider limiting supported targets for initial stabilization #86

Open
ehuss opened this issue May 3, 2023 · 3 comments
Open

Consider limiting supported targets for initial stabilization #86

ehuss opened this issue May 3, 2023 · 3 comments
Labels
S-needs-decision Status: needs a decision stabilization blocker This needs a resolution before stabilization

Comments

@ehuss
Copy link
Contributor

ehuss commented May 3, 2023

It seems likely that getting build-std working on all targets is going to be a large effort (small example is #30). If it looks like trying to get every target working is going to be too much effort, we may want to consider somehow only supporting blessed targets (either by specifying which targets are supported, or which ones aren't) for the initial release.

@ehuss ehuss added stabilization blocker This needs a resolution before stabilization S-needs-decision Status: needs a decision labels May 3, 2023
@MabezDev
Copy link

This is a great idea!

I've been using build-std since its initial implementation and it works very well for our use cases. The first being strictly -Zbuild-std=core for the out of tree no_std Espressif Xtensa targets, and the second being the standard library port for all Espressif devices based on esp-idf. With these two use cases, we have thousands of users using build-std daily with no issues. Stabilizing parts of build-std would mean our std targets would compile completely on stable too, which would be great.

Finally, whenever the topic of eeking out performance, or cutting down binary size is brought up, build-std always gets a mention as it can have a huge effect on the final compiled artefact - not requiring nightly here would be a great boon for Rust as a whole.

I think something as complex as building the standard library is going to be a hard thing to get right the first time, and to be honest there will always be some target-specific edge cases that most likely cannot be handled. I don't think we should block this feature, or core (heh) bits of this feature that do work well, trying to cater to every edge case both known and unknown.

@royb3
Copy link

royb3 commented Mar 18, 2024

For my project, I've been using build-std to build the core lib for the riscv32ima target.

See this comment for why I did.: embassy-rs/embassy#1278 (comment)

It works great, but since then all dependencies are now able to build on stable rust. The only reason I cannot switch to stable yet, is the build-std feature.

I asked around if I could add the target to the growing list of tier 2 Risc32 targets, and the maintainer isn't opposed to doing this, but other people asked questions about the need of adding barely used targets to the list.

Stabilizing build-std or supporting targets that are extendible like riscv on stable in some other way, would be really nice. Until then, I will continue to work on nightly.

@royb3
Copy link

royb3 commented Mar 23, 2024

Would limiting components to be built also help with initial stabilization? Even just Core would be helpful for many bare-metal projects that target riscv32.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-needs-decision Status: needs a decision stabilization blocker This needs a resolution before stabilization
Projects
None yet
Development

No branches or pull requests

3 participants