[beta] backports
- Add `#[inline]` to float `Debug` fallback used by `cfg(no_fp_fmt_parse)` #125252
- Add v0 symbol mangling for `f16` and `f128` #123816
- Only make GAT ambiguous in `match_projection_projections` considering shallow resolvability #125214
- Update to LLVM 18.1.6 #125288
r? cuviper
[beta] backports
- Do not ICE on foreign malformed `diagnostic::on_unimplemented` #124683
- Fix more ICEs in `diagnostic::on_unimplemented` #124875
- rustdoc: use stability, instead of features, to decide what to show #124864
- Don't do post-method-probe error reporting steps if we're in a suggestion #125100
- Make `non-local-def` lint Allow by default #124950
r? cuviper
To decide if internal items should be inlined in a doc page,
check if the crate is itself internal, rather than if it has
the rustc_private feature flag. The standard library uses
internal items, but is not itself internal and should not show
internal items on its docs pages.
(cherry picked from commit 6d6f67a98c)
[beta] backports
- Consider inner modules to be local in the `non_local_definitions` lint #124539
- Fix bootstrap panic when build from tarball #124668
r? cuviper
This is a workaround for #122758, but it's not clear why 1.79 requires a
more extensive amount of no_inline than the previous release. Seems like
there's something relatively subtle happening here.
Unconditionally call `really_init` on GNU/Linux
This makes miri not diverge in behavior, it fixes running Rust linux-gnu binaries on musl with gcompat, it fixes dlopen edge-cases that cranelift somehow hits, etc.
Fixes#124126
thou hast gazed into this abyss with me:
r? ``@ChrisDenton``
bootstrap: Document `struct Builder` and its fields
I'm exploring the code of bootstrap and had a bit of a hard time understanding exactly what `Builder` is for at first. I decided to help document it and its field to help future explorers.
bootstrap: Describe build_steps modules
One of my preferred ways to understand source code is to start with its API. This implies the code is documented reasonably accurately, even if it is a private API. The description of one of these modules had not been updated since 2015 and so was both terse and confusing, so I rewrote it. Then I noticed many others went unremarked, so I offered some remarks.
`x vendor`
This PR implements `x vendor` on bootstrap; enabling dependency vendoring without the need for developers to have `cargo` installed on their system (previously, we suggested running `cargo vendor ...` but now we can accomplish the same task with `x vendor`).
In addition, fixes#112391 problem.
Rollup of 7 pull requests
Successful merges:
- #124370 (Fix substitution parts having a shifted underline in some cases)
- #124394 (Fix ICE on invalid const param types)
- #124425 (Do not ICE on invalid consts when walking mono-reachable blocks)
- #124434 (Remove lazycell and once_cell from compiletest dependencies)
- #124437 (doc: Make the `mod.rs` in the comment point to the correct location)
- #124443 (Elaborate in comment about `statx` probe)
- #124445 (bootstrap: Change `global(true)` to `global = true` for flags for consistency)
r? `@ghost`
`@rustbot` modify labels: rollup
bootstrap: Change `global(true)` to `global = true` for flags for consistency
All other arg properties use the `prop = value` style, which makes it slightly annoying to use the `prop(value)` only style for `global`. Change to `prop = value` also for `global` for consistency.
Remove lazycell and once_cell from compiletest dependencies
Use the standard library `OnceLock` instead of third-party equivalents. A macro is used for the regexes to make their initialization less unwieldy.