[beta] backports
This backports the following to 1.49:
* Revert change to trait evaluation order #80132
* Don't allow `const` to begin a nonterminal #80135
* Prevent caching normalization results with a cycle #80246
r? `@Mark-Simulacrum`
When normalizing a projection which results in a cycle, we would
cache the result of `project_type` without the nested obligations
(because they're not needed for inference). This would result in
the nested obligations only being handled once in fulfill, which
would avoid the cycle error.
Fixes#79714, a regresion from #79305 caused by the removal of
`get_paranoid_cache_value_obligation`.
Revert "Promote missing_fragment_specifier to hard error" #75516
Revert of #75516 per #76605.
r? `@Mark-Simulacrum`
Note: I only reverted the two commits in #75516 which made the lint a hard error. I did not revert the other two commits in the PR as they seemed fine to leave IMO (commits 84fcd0dc99 and eb4d6b520b).
[beta] backports
* Revert #77534 fixing #77713 on beta, principled fix landed on master
* fix soundness issue in `make_contiguous` #79814
* Fix exhaustiveness in case a byte string literal is used at slice type #79072
[beta] backports
* [beta] always disable copy_file_range to avoid EOVERFLOW errors #79008
* Enforce no-move rule of ReentrantMutex using Pin and fix UB in stdio #77801
* bootstrap: use the same version number for rustc and cargo #79133
* [beta] Revert "Enable ASLR for windows-gnu" #79141
* [beta] revert #78790, vendor libtest for rustc-src #79571
* Mirror centos vault to S3 #79435
* [beta] Update cargo #79739
This also bumps to non-dev stable compiler.
r? `@ghost`
Historically the stable tarballs were named after the version number of
the specific tool, instead of the version number of Rust. For example,
both of the following tarballs were part of the same release:
rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
cargo-0.49.0-x86_64-unknown-linux-gnu.tar.xz
PR #77336 changed the dist code to instead use Rust's version number for
all the tarballs, regardless of the tool they contain:
rustc-1.48.0-x86_64-unknown-linux-gnu.tar.xz
cargo-1.48.0-x86_64-unknown-linux-gnu.tar.xz
Because of that there is no need anymore to have a separate `cargo`
field in src/stage0.txt, as the Cargo version will always be the same as
the rustc version. This PR removes the field, simplifying the code and
the maintenance work required while producing releases.
The code before this change misused the ReentrantMutexes, by calling
init() on them and moving them afterwards. Now that ReentrantMutex
requires Pin for init(), this mistake is no longer easy to make.
Actually prepare beta 1.49.0
This PR sets everything up for beta 1.49.0, and backports the following PRs to it:
* #79107 - build-manifest: strip newline from rustc version
* #78986 - Avoid installing external LLVM dylibs
* #79074 - Install CI llvm into the library directory
* #78364 - Update RELEASES.md for 1.48.0
* #77939 - Ensure that the source code display is working with DOS backline
This is the same as #79132, but actually targeting the right branch.
r? `@ghost`
cc `@rust-lang/release`