-
Notifications
You must be signed in to change notification settings - Fork 289
enable std by default #194
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
Conversation
Er hang on before we do this, I don't think we want to do this by default, gimme a few hours though to get to a computer |
@alexcrichton take your time, we should clarify this before the next release but we don't need to do it exactly now. It doesn't block any other work either AFAICT. |
Ok I've got some more time now! So in general enabling a default feature is very difficult to turn off. Cargo will union all features requested for a crate and the crate, when depended on, will by default enable all default features. This means that for you to actually disable the std feature of stdsimd it will require everyone to disable the std feature. If stdsimd is a widely depended on crate (for example like libc at the extreme) then it's basically impossible to turn off default features as someone will have forgotten that they don't actually need it and they'll leave the default features activated (even though they probably don't need it). If stdsimd is not widely depended on, however, then this probably doesn't matter much as it's far easier to audit dependencies and remove any dependency where we find it. So in that sense I just wanted to be sure to clarify this and make sure we're making the decision that "yes, stdsimd isn't that widely depended on so we can have default features". I personally think this is a reasonable conclusion (stdsimd is relatively niche and meant for "power users"). Additionally this will be moot when we integrate into libstd... somehow at least! All in all sorry for the delay! Do y'all agree that this won't be super widely depended on? If so, let's merge! |
The answer to this question depends on how we want to ship Do we need to build OTOH if we want to have a |
Ideally we'll have this crate split into two halves and one gets compiled into libcore and the other gets compiled into libstd. Precisely how that works though is... probably interesting. In any case though I don't believe we'll want to recompile everything twice |
If we do it like that one crate will be So we can add |
I am closing this since it is superseded by #197 which removes the need of having |
Closes #193.