rust-lang / polonius

Defines the Rust borrow checker.
Apache License 2.0
1.35k stars 73 forks source link

stable toolchain works #136

Closed tshepang closed 5 years ago

tshepang commented 5 years ago

Hm, is it not better to just remove the file?

lqd commented 5 years ago

While there's no specific reason we can't use stable, the compiler uses the beta channel, and this is why we also have been using that. I believe it is because using that same version could avoid possible problems when updating rustc to newer polonius revisions.

That being said, maybe I'm misremembering, and Niko may remember reasons to keep using beta, or the opposite, approve of switching to stable.

tshepang commented 5 years ago

What compiler is meant in "the compiler uses the beta channel"? Rust compiler? I also do not understand "using that same version could avoid possible problems when updating rustc to newer polonius revisions".

lqd commented 5 years ago

Ah exactly yes, the Rust compiler: this project is made specifically to be used in rustc, in the librustc and librustc_mir sub-crates. (Mainly the latter)

tshepang commented 5 years ago

Ok, what do you mean by "the compiler uses the beta channel"?

bjorn3 commented 5 years ago

A nightly version of rust compiler is compiled using the latest beta version at that time. A beta version is compiled using the latest stable. A stable version is compiled using the previous stable version.

lqd commented 5 years ago

rustc is built using bootstrapping: newer versions are built using an older version of itself, and the version it uses is the beta toolchain, the same as we use here today. There are more details in the rustc guide here about the different stages.

tshepang commented 5 years ago

interesting to know, thanks