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
Compiling libra on stable Rust #270
Comments
This is great! Seriously thank you for taking the time to provide a clear breakdown (with references) to each nightly feature we're currently using. A number of us on the team have a goal of moving towards using stable Rust but due to a number of things (launching testnet for example) we didn't have the bandwidth for pushing on this as heavily as we'd like. I'm hoping that we'll have more time to push for this real soon. So the next steps are:
|
If you've been following the most recent commits to the project you'll notice that @sunshowers and @huitseeker have done some great work pruning down that list down to only three nightly features. They are:
The current plan is to do some engineering work to remove |
It appears that stable async/await might not make it into 1.38: rust-lang/rust#63209 (comment) Hopefully it'll be ready for 1.39! |
Update: As of #1072 libra no longer using nightly and instead uses the 1.39.0 beta toolchain. In 6 weeks when 1.39.0 is released to stable we should be able to move to stable. |
usage: Use the following commands: account | a Please, input commands: libra% |
Thanks @bmwill . I suppose it's mostly resolved then and is only a matter of waiting for the Rust 1.39 release. |
There is a whitelist currently in nightly_features.sh of nightly features adopted in libra. I have made this issue (inspired by a similar issue in the rocket repo) to gauge which features will arrive on stable in the near term, which will take some time, and which never will, so that if libra wants to compile one day on stable Rust, it can do the needed changes.
Likely arriving on stable soon
Only stable in the mid to long term
trait_alias: there seem to be open questions still, I think it won't stabilize soon
specialization: riddled with SOUNDNESS HOLES and likely to stay unstable for years to come, you should remove it.
slice_concat_ext: similar to
checked_duration_since
.crate_visibility_modifier: It's a long thread with lots of back and forth and as there is no explicit agenda by any of the teams, I doubt they will stabilize it soon. It might even be removed in the future: I've heard concerns that it might be confusing with
crate::foo
paths.drain_filter: it seems the libs team didn't want to stabilize it, not sure whether they still hold that opinion: Tracking issue for Vec::extract_if and LinkedList::extract_if rust-lang/rust#43244 (comment)
exhaustive_patterns likely to stabilize together with never_type (see nmatsakis comment).
never_type: this one was stabilized once and then they removed it again because of bugs. Not sure whether the bugs are all resolved, I guess they'll wait until stuff like
mem::uninitialized
has been removed from codebases so it'll take some time.panic_info_message (tracking issue is closed): not sure why used. You can just use the Display impl instead, it shouldn't be too hard.
Likely never stable
box_syntax is going to be phased out, I'm not sure whether box_patterns will be phased out as well but I definitely don't think they'll stabilize any time soon.
set_stdio: never going to be stable, it's an internal feature.
test: never going to be stable, as it's an internal crate. You can use the rustc-test crate instead: https://crates.io/crates/rustc-test
The text was updated successfully, but these errors were encountered: