Description
Right now the bootstrap key is a hash of CFG_RELEASE
(and also CFG_EXTRA_FILENAME
if that's set). CFG_RELEASE
contains the channel label and the prerelease version. So today the master compiler will build with a compiler called 1.12.0-beta.1
and that's it.
One place where this is problematic is when trying to build master from a local copy of the stable release. To do this you need to bootstrap beta, then bootstrap master. But today beta is 1.12.0-beta.3
- and it can't bootstrap master because they keycheck fails. Furthermore, if you were to build beta with --release-channel=stable
you again create a mismatched bootstrap key.
This is frustrating. The logic is too strict for no particular reason. The scheme for deriving the bootstrap key is quite trivial now, and nobody is abusing it. We may just want to turn on the bootstrap whenever the env var is set at all and not worry about this any more.
cc @alexcrichton this caused @glandium quite a bit of pain recently and I think we should solve it relatively soon.