about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-11-19Rollup merge of #123947 - zopsicle:vec_deque-Iter-as_slices, r=AmanieuMatthias Krüger-0/+142
Add vec_deque::Iter::as_slices and friends Add the following methods, that work similarly to VecDeque::as_slices: - alloc::collections::vec_deque::Iter::as_slices - alloc::collections::vec_deque::IterMut::into_slices - alloc::collections::vec_deque::IterMut::as_slices - alloc::collections::vec_deque::IterMut::as_mut_slices Obtaining slices from a VecDeque iterator was not previously possible.
2024-11-19Auto merge of #133205 - matthiaskrgr:rollup-xhhhp5u, r=matthiaskrgrbors-368/+434
Rollup of 4 pull requests Successful merges: - #131081 (Use `ConstArgKind::Path` for all single-segment paths, not just params under `min_generic_const_args`) - #132577 (Report the `unexpected_cfgs` lint in external macros) - #133023 (Merge `-Zhir-stats` into `-Zinput-stats`) - #133200 (ignore an occasionally-failing test in Miri) r? `@ghost` `@rustbot` modify labels: rollup
2024-11-19Auto merge of #133164 - RalfJung:promoted-oom, r=jieyouxubors-7/+51
interpret: do not ICE when a promoted fails with OOM Fixes https://github.com/rust-lang/rust/issues/130687 try-job: aarch64-apple try-job: dist-x86_64-linux
2024-11-19Auto merge of #132623 - nnethercote:rustc_borrowck-cleanups-2, r=Nadrierilbors-226/+171
`rustc_borrowck` cleanups, part 2 The code under `do_mir_borrowck` is pretty messy, especially the various types like `MirBorrowckCtxt`, `BorrowckInferCtxt`, `MirTypeckResults`, `MirTypeckRegionConstraints`, `CreateResult`, `TypeChecker`, `TypeVerifier`, `LivenessContext`, `LivenessResults`. This PR does some tidying up, though there's still plenty of mess left afterwards. A sequel to #132250. r? `@compiler-errors`
2024-11-19Rollup merge of #133200 - RalfJung:miri-rwlock-test, r=tgross35Matthias Krüger-0/+3
ignore an occasionally-failing test in Miri This is like https://github.com/rust-lang/rust/pull/128640, the test [sometimes](https://github.com/rust-lang/rust/pull/133189) fails due to https://github.com/rust-lang/rust/issues/121950.
2024-11-19Rollup merge of #133023 - samestep:hir-stats-total-count, r=nnethercoteMatthias Krüger-165/+24
Merge `-Zhir-stats` into `-Zinput-stats` Currently `-Z hir-stats` prints the size and count of various kinds of nodes, and the total size of all the nodes it counted, but not the total count of nodes. So, before this PR: ``` $ git clone https://github.com/BurntSushi/ripgrep $ cd ripgrep $ cargo +nightly rustc -- -Z hir-stats ast-stats-1 PRE EXPANSION AST STATS ast-stats-1 Name Accumulated Size Count Item Size ast-stats-1 ---------------------------------------------------------------- ast-stats-1 ... ast-stats-1 ---------------------------------------------------------------- ast-stats-1 Total 93_576 ast-stats-1 ast-stats-2 POST EXPANSION AST STATS ast-stats-2 Name Accumulated Size Count Item Size ast-stats-2 ---------------------------------------------------------------- ast-stats-2 ... ast-stats-2 ---------------------------------------------------------------- ast-stats-2 Total 2_430_648 ast-stats-2 hir-stats HIR STATS hir-stats Name Accumulated Size Count Item Size hir-stats ---------------------------------------------------------------- hir-stats ... hir-stats ---------------------------------------------------------------- hir-stats Total 3_678_512 hir-stats ``` For consistency, this PR adds a total for the count as well: ``` $ cargo +stage1 rustc -- -Z hir-stats ast-stats-1 PRE EXPANSION AST STATS ast-stats-1 Name Accumulated Size Count Item Size ast-stats-1 ---------------------------------------------------------------- ast-stats-1 ... ast-stats-1 ---------------------------------------------------------------- ast-stats-1 Total 93_576 1_877 ast-stats-1 ast-stats-2 POST EXPANSION AST STATS ast-stats-2 Name Accumulated Size Count Item Size ast-stats-2 ---------------------------------------------------------------- ast-stats-2 ... ast-stats-2 ---------------------------------------------------------------- ast-stats-2 Total 2_430_648 48_625 ast-stats-2 hir-stats HIR STATS hir-stats Name Accumulated Size Count Item Size hir-stats ---------------------------------------------------------------- hir-stats ... hir-stats ---------------------------------------------------------------- hir-stats Total 3_678_512 73_418 hir-stats ``` I wasn't sure if I was supposed to update `tests/ui/stats/hir-stats.stderr` to reflect this. I ran it locally, thinking it would fail, but it didn't: ``` $ ./x test tests/ui/stats ... running 2 tests i. test result: ok. 1 passed; 0 failed; 1 ignored; 0 measured; 17949 filtered out ``` Also: is there a reason `-Z hir-stats` and `-Z input-stats` both exist? The former seems like it should completely supercede the latter. But strangely, the two give very different numbers for node counts: ``` $ cargo +nightly rustc -- -Z input-stats ... Lines of code: 483 Pre-expansion node count: 2386 Post-expansion node count: 63844 ``` That's a 30% difference in this case. Is it intentional that these numbers are so different? I see comments for both saying that they are merely approximations and should not be expected to be correct: https://github.com/rust-lang/rust/blob/bd0826a4521a845f36cce1b00e1dd2918ba09e90/compiler/rustc_ast_passes/src/node_count.rs#L1 https://github.com/rust-lang/rust/blob/bd0826a4521a845f36cce1b00e1dd2918ba09e90/compiler/rustc_passes/src/hir_stats.rs#L1-L3
2024-11-19Rollup merge of #132577 - Urgau:check-cfg-report-extern-macro, r=petrochenkovMatthias Krüger-7/+45
Report the `unexpected_cfgs` lint in external macros This PR marks the `unexpected_cfgs` lint as being reportable in external macros, as it's probably not the intention of the macro author to leave ineffective cfgs in the users code. Fixes #132572 try-job: aarch64-gnu-debug
2024-11-19Rollup merge of #131081 - camelid:const-path-it-all, r=BoxyUwUMatthias Krüger-196/+362
Use `ConstArgKind::Path` for all single-segment paths, not just params under `min_generic_const_args` r? `@BoxyUwU` edit by `@BoxyUwU:` This PR introduces a `min_generic_const_args` feature gate and implements some preliminary work for it, representing all const arguments that are single segment paths as `ConstArg::Path` instead of only those that resolve to a const generic parameter. There are a few bits of follow up work after this lands: - Figure out how to represent `Foo<{ STATIC }>` - Figure out how to evaluate `Foo<{ EnumVariantConstructor }>` - Make param env normalization handle non-anon-consts - Move `try_from_lit` and `from_anon_const` to hir ty lowering too
2024-11-19ignore an occasionally-failing test in MiriRalf Jung-0/+3
2024-11-19Fix broken intra-doc linkBoxy-1/+1
2024-11-19Auto merge of #133193 - fmease:rollup-v38ayvk, r=fmeasebors-208/+570
Rollup of 9 pull requests Successful merges: - #132758 (Improve `{BTreeMap,HashMap}::get_key_value` docs.) - #133180 ([rustdoc] Fix items with generics not having their jump to def link generated) - #133181 (Update books) - #133182 (const_panic: inline in bootstrap builds to avoid f16/f128 crashes) - #133185 (rustdoc-search: use smart binary search in bitmaps) - #133186 (Document s390x-unknown-linux targets) - #133187 (Add reference annotations for diagnostic attributes) - #133191 (rustdoc book: Move `--test-builder(--wrapper)?` docs to unstable section.) - #133192 (RELEASES.md: Don't document unstable `--test-build-wrapper`) r? `@ghost` `@rustbot` modify labels: rollup
2024-11-19Introduce `min_generic_const_args` and directly represent pathsNoah Lev-196/+362
Co-authored-by: Boxy UwU <rust@boxyuwu.dev> Co-authored-by: León Orell Valerian Liehr <me@fmease.dev>
2024-11-19Rollup merge of #133192 - aDotInTheVoid:changelog-cleanup, r=fmeaseLeón Orell Valerian Liehr-7/+0
RELEASES.md: Don't document unstable `--test-build-wrapper` #114651 added this as an unstable flag, so it doesn't make sense to go in the release notes. Discovered while working on #133191.
2024-11-19Rollup merge of #133191 - ↵León Orell Valerian Liehr-29/+33
aDotInTheVoid:whoops-thats-not-stable-and-might-never-be, r=fmease rustdoc book: Move `--test-builder(--wrapper)?` docs to unstable section. Tracking issue: https://github.com/rust-lang/rust/issues/102981 These have always been unstable, but were documented in the stable section in #114651
2024-11-19Rollup merge of #133187 - ehuss:reference-diagnostic, r=jieyouxuLeón Orell Valerian Liehr-147/+170
Add reference annotations for diagnostic attributes This adds reference annotations for `diagnostic::on_unimplmented` and the `diagnostic` namespace in general. There's also a rename for a test that looks like it was put in the wrong location.
2024-11-19Rollup merge of #133186 - uweigand:s390x-maintainer, r=wesleywiserLeón Orell Valerian Liehr-2/+200
Document s390x-unknown-linux targets This adds documentation for the following existing targets: s390x-unknown-linux-gnu (Tier 2 with host tools) s390x-unknown-linux-musl (Tier 3) I volunteer as maintainer for these targets going forward.
2024-11-19Rollup merge of #133185 - notriddle:notriddle/roaringbitmap, r=notriddleLeón Orell Valerian Liehr-10/+55
rustdoc-search: use smart binary search in bitmaps Addresses a comment from [jsha's benchmarking], where the `contains` function showed up in the profiler. This commit pulls it from about 5% of the runtime to about 0.5%. Before: https://share.firefox.dev/3ANVjon After: https://share.firefox.dev/3OeM3gk [jsha's benchmarking]: https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/search.20profiling/near/481868761
2024-11-19Rollup merge of #133182 - RalfJung:const-panic-inline, r=tgross35León Orell Valerian Liehr-1/+1
const_panic: inline in bootstrap builds to avoid f16/f128 crashes This should fix https://github.com/rust-lang/rust/issues/133177. ``@uweigand`` could you test that?
2024-11-19Rollup merge of #133181 - rustbot:docs-update, r=ehussLeón Orell Valerian Liehr-0/+0
Update books ## rust-lang/edition-guide 2 commits in 2d482e203eb6d6e353814cf1415c5f94e590b9e0..915f9b319c2823f310430ecdecd86264a7870d7e 2024-11-06 07:23:07 UTC to 2024-11-05 09:03:41 UTC - 2021: Update for raw lifetimes (rust-lang/edition-guide#330) - CI: Switch to merge queue (rust-lang/edition-guide#333) ## rust-lang/nomicon 1 commits in 456b904f791751892b01282fd2757904993c4c26..eac89a3cbe6c4714e5029ae8b5a1c556fd4e8c42 2024-11-16 14:05:28 UTC to 2024-11-16 14:05:28 UTC - Fix typo in what-unsafe-does (rust-lang/nomicon#469) ## rust-lang/reference 10 commits in da0f6dad767670da0e8cd5af8a7090db3272f626..41ccb0e6478305401dad92e8fd3d04a4304edb4c 2024-11-15 21:45:16 UTC to 2024-11-05 21:46:30 UTC - Add identifiers to attributes.md and its subchapters (rust-lang/reference#1560) - Fix 2 typos (rust-lang/reference#1674) - Add examples to clarify the casting rules (rust-lang/reference#686) - Explaining how to link mixed C/Rust binaries. (rust-lang/reference#838) - Add Arm64EC to inline-assembly documentation (rust-lang/reference#1653) - Add three more WebAssembly features to the list of accepted ones (rust-lang/reference#1638) - Add s390x to inline-assembly documentation (rust-lang/reference#1643) - trait object constraint correction (rust-lang/reference#1670) - Update some "default" representation references (rust-lang/reference#1667) - Update lifetimes for pre-expansion validation (rust-lang/reference#1668) ## rust-lang/rustc-dev-guide 12 commits in 6a5accdaf10255882b1e6c59dfe5f1c79ac95484..b679e71c2d66c6fe13e06b99ac61773b866213f0 2024-11-18 08:18:15 UTC to 2024-11-05 07:22:17 UTC - Mention `RUSTC_BOOTSTRAP` for misc testing (rust-lang/rustc-dev-guide#2136) - Document how to acquire `cdb.exe` (rust-lang/rustc-dev-guide#2137) - Document `max-llvm-major-version` directive (rust-lang/rustc-dev-guide#2129) - Document `exact-llvm-major-version` directive (rust-lang/rustc-dev-guide#2135) - Note Rustfmt for separate rust-analyzer directory (rust-lang/rustc-dev-guide#2134) - still accurate (rust-lang/rustc-dev-guide#2133) - typo (rust-lang/rustc-dev-guide#2132) - add valid date-check marker (rust-lang/rustc-dev-guide#2131) - Update parallel-rustc.md (rust-lang/rustc-dev-guide#1926) - Rename `{ignore,only}-debug` -> `{ignore,needs}-{rustc,std}-debug-assertions` (rust-lang/rustc-dev-guide#2101) - update const stability docs (rust-lang/rustc-dev-guide#2111) - Ask folks to use the Oxford comma in diagnostics (rust-lang/rustc-dev-guide#2093)
2024-11-19Rollup merge of #133180 - GuillaumeGomez:jump-to-def-links-generics, r=notriddleLeón Orell Valerian Liehr-4/+33
[rustdoc] Fix items with generics not having their jump to def link generated Because the span originally included the generics, during the highlighting, it was not retrieved and therefore its jump to def link was not generated. r? ``@notriddle``
2024-11-19Rollup merge of #132758 - nnethercote:improve-get_key_value-docs, r=cuviperLeón Orell Valerian Liehr-8/+78
Improve `{BTreeMap,HashMap}::get_key_value` docs. They are unusual methods. The docs don't really describe the cases when they might be useful (as opposed to just `get`), and the examples don't demonstrate the interesting cases at all. This commit improves the docs and the examples.
2024-11-19Auto merge of #124780 - Mark-Simulacrum:lockless-cache, r=lcnrbors-65/+458
Improve VecCache under parallel frontend This replaces the single Vec allocation with a series of progressively larger buckets. With the cfg for parallel enabled but with -Zthreads=1, this looks like a slight regression in i-count and cycle counts (~1%). With the parallel frontend at -Zthreads=4, this is an improvement (-5% wall-time from 5.788 to 5.4688 on libcore) than our current Lock-based approach, likely due to reducing the bouncing of the cache line holding the lock. At -Zthreads=32 it's a huge improvement (-46%: 8.829 -> 4.7319 seconds). try-job: i686-gnu-nopt try-job: dist-x86_64-linux
2024-11-19Pass `flow_inits` by value.Nicholas Nethercote-11/+7
It's simpler that way, and we don't need the explicit `drop`.
2024-11-19Put `param_env` into `infcx`.Nicholas Nethercote-81/+72
Because they get passed around together a lot.
2024-11-19Pass `constraints` to `RegionInferenceContext::new`.Nicholas Nethercote-37/+25
Instead of destructuring it in advance and passing all the components individually. It's less code that way.
2024-11-19Don't refcount `PlaceholderIndices`.Nicholas Nethercote-5/+3
It's not necessary.
2024-11-19Inline and remove `TypeVerifier::new`.Nicholas Nethercote-8/+1
It has a single call site.
2024-11-19Compute `upvars` lazily.Nicholas Nethercote-7/+3
It can be computed from `tcx` on demand, instead of computing it eagerly and passing it around.
2024-11-19Clean up `UniversalRegions`.Nicholas Nethercote-60/+46
There is an `Rc<UniversalRegions>` within `UniversalRegionRelations`, and yet the two types get passed around in tandem a lot. This commit makes `UniversalRegionRelations` own `UniversalRegions`, removing the `Rc` (which wasn't truly needed) and the tandem-passing. This requires adding a `universal_relations` method to `UniversalRegionRelations`, and renaming a couple of existing methods producing iterators to avoid a name clash.
2024-11-19Make `TypeChecker::region_bound_pairs` owned.Nicholas Nethercote-4/+4
No reason not to be, and it's simpler that way.
2024-11-19Make `TypeChecker::known_type_outlives_obligations` owned.Nicholas Nethercote-9/+7
This avoids the need to arena allocate it. `ConstraintConversion` needs some simple lifetime adjustments to allow this.
2024-11-19Don't pass `universal_regions` unnecessarily.Nicholas Nethercote-6/+5
`TypeChecker` already has it in a field.
2024-11-18RELEASES.md: Don't document unstable `--test-build-wrapper`Alona Enraght-Moony-7/+0
2024-11-18rustdoc book: Move `--test-builder(--wrapper)?` docs to unstable section.Alona Enraght-Moony-29/+33
2024-11-18Auto merge of #132460 - lcnr:questionable-uwu, r=compiler-errorsbors-1341/+1745
Use `TypingMode` throughout the compiler instead of `ParamEnv` Hopefully the biggest single PR as part of https://github.com/rust-lang/types-team/issues/128. ## `infcx.typing_env` while defining opaque types I don't know how'll be able to correctly handle opaque types when using something taking a `TypingEnv` while defining opaque types. To correctly handle the opaques we need to be able to pass in the current `opaque_type_storage` and return constraints, i.e. we need to use a proper canonical query. We should migrate all the queries used during HIR typeck and borrowck where this matters to proper canonical queries. This is ## `layout_of` and `Reveal::All` We convert the `ParamEnv` to `Reveal::All` right at the start of the `layout_of` query, so I've changed callers of `layout_of` to already use a post analysis `TypingEnv` when encountering it. https://github.com/rust-lang/rust/blob/ca87b535a05097df6abbe2a031b057de2cefac5b/compiler/rustc_ty_utils/src/layout.rs#L51 ## `Ty::is_[unpin|sized|whatever]` I haven't migrated `fn is_item_raw` to use `TypingEnv`, will do so in a followup PR, this should significantly reduce the amount of `typing_env.param_env`. At some point there will probably be zero such uses as using the type system while ignoring the `typing_mode` is incorrect. ## `MirPhase` and phase-transitions When inside of a MIR-body, we can mostly use its `MirPhase` to figure out the right `typing_mode`. This does not work during phase transitions, most notably when transitioning from `Analysis` to `Runtime`: https://github.com/rust-lang/rust/blob/dae7ac133b9eda152784c075facb31a6688c92b1/compiler/rustc_mir_transform/src/lib.rs#L606-L625 All these passes still run with `MirPhase::Analysis`, but we should only use `Reveal::All` once we're run the `RevealAll` pass. This required me to manually construct the right `TypingEnv` in all these passes. Given that it feels somewhat easy to accidentally miss this going forward, I would maybe like to change `Body::phase` to an `Option` and replace it at the start of phase transitions. This then makes it clear that the MIR is currently in a weird state. r? `@ghost`
2024-11-18rustdoc-search: add descriptive comments to bitmap classMichael Howell-0/+23
2024-11-18Update src/doc/rustc/src/platform-support/s390x-unknown-linux-gnu.mdUlrich Weigand-0/+1
Co-authored-by: Josh Stone <cuviper@gmail.com>
2024-11-18interpret: do not ICE when a promoted fails with OOMRalf Jung-7/+51
2024-11-18Update booksrustbot-0/+0
2024-11-18Add reference annotations for diagnostic attributesEric Huss-147/+170
This adds reference annotations for `diagnostic::on_unimplmented` and the `diagnostic` namespace in general.
2024-11-18Document s390x-unknown-linux targetsUlrich Weigand-2/+199
This adds documentation for the following existing targets: s390x-unknown-linux-gnu (Tier 2 with host tools) s390x-unknown-linux-musl (Tier 3) I volunteer as maintainer for these targets going forward. Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
2024-11-18rustdoc-search: use smart binary search in bitmapsMichael Howell-10/+32
Addresses a comment from [jsha's benchmarking], where the `contains` function showed up in the profiler. This commit pulls it from about 5% of the runtime to about 0.5%. [jsha's benchmarking]: https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/search.20profiling/near/481868761
2024-11-18Auto merge of #133179 - GuillaumeGomez:rollup-ro5rtts, r=GuillaumeGomezbors-45/+31
Rollup of 5 pull requests Successful merges: - #133156 (typo in config.example.toml) - #133157 (stability: remove skip_stability_check_due_to_privacy) - #133163 (remove pointless cold_path impl in interpreter) - #133169 (Update autolabels for T-compiler and T-bootstrap) - #133171 (Add the missing quotation mark in comment) r? `@ghost` `@rustbot` modify labels: rollup
2024-11-18Update `xshell` and `xshell-macros` to v0.2.7Urgau-5/+5
2024-11-18Bump `stdarch` to the latest masterUrgau-0/+0
2024-11-18Update `anstream` to 0.6.18 to fix a check-cfg issueUrgau-2/+2
2024-11-18Report `unexpected_cfgs` lint in external macrosUrgau-0/+38
2024-11-18const_panic: inline in bootstrap builds to avoid f16/f128 crashesRalf Jung-1/+1
2024-11-18Add regression test for jump to def links on items with genericsGuillaume Gomez-0/+14
2024-11-18Fix items with generics not having their jump to def link generatedGuillaume Gomez-3/+18