about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2025-02-17Use correct working directory for non-workspace proc-macro executionMehul Arora-31/+159
2025-02-17Auto merge of #135763 - nikic:llvm-20, r=cuviperbors-0/+4
Update to LLVM 20 LLVM 20 GA is scheduled for March 11th. Rust 1.87 will be stable on May 15th. * [x] https://github.com/rust-lang/rust/pull/135764 * [x] https://github.com/rust-lang/rust/pull/136134 * [x] https://github.com/rust-lang/compiler-builtins/pull/752 * [x] https://github.com/llvm/llvm-project/pull/125287 * [x] https://github.com/rust-lang/rust/pull/136537 * [x] https://github.com/rust-lang/rust/pull/136895 * [x] Wait for beta branch (Feb 14). Tested: host-x86_64, host-aarch64, apple, mingw, msvc
2025-02-17use the shared vendor impl for plan source tarballsPietro Albini-21/+17
2025-02-17Update lockfileLaurențiu Nicola-12/+12
2025-02-17Merge pull request #19169 from lnicola/sync-from-rustLaurențiu Nicola-3028/+5627
minor: Sync from downstream
2025-02-17Bump rustc cratesLaurențiu Nicola-5/+5
2025-02-17Default to the medium code model for the loongarch64-linux toolchainsWANG Rui-0/+4
The medium code model is already the default on the Rust side. Make sure that linked in C objects (e.g. from glibc) also use medium code model.
2025-02-17Changed `.display()` to `.to_str()`Jakub Beránek-1/+1
2025-02-17Trim channelJakub Beránek-1/+3
To avoid including a newline at the end, which broke `only_on_channel` comparison.
2025-02-17Trim try-job namesJakub Beránek-1/+1
2025-02-17Avoid double serialization of environment stringsJakub Beránek-21/+16
2025-02-17Add testsJakub Beránek-39/+324
2025-02-17Add comment to [workspace]Jakub Beránek-0/+3
2025-02-17Apply review commentsJakub Beránek-2/+7
2025-02-17Update documentationJakub Beránek-7/+16
2025-02-17Delete the previous Python scriptJakub Beránek-318/+0
2025-02-17Add local job execution to `citool`Jakub Beránek-0/+82
2025-02-17Add missing base-job directiveJakub Beránek-0/+2
2025-02-17Implement CI tooling in RustJakub Beránek-0/+653
2025-02-17Merge pull request #19167 from ChayimFriedman2/fix-ref-patLukas Wirth-17/+64
fix: Fix detection of ref patterns for path patterns
2025-02-17Merge from rust-lang/rustLaurențiu Nicola-3022/+5621
2025-02-17Preparing for merge from rust-lang/rustLaurențiu Nicola-1/+1
2025-02-17Auto merge of #137164 - matthiaskrgr:rollup-dj5826k, r=matthiaskrgrbors-5/+19
Rollup of 7 pull requests Successful merges: - #137095 (Replace some u64 hashes with Hash64) - #137100 (HIR analysis: Remove unnecessary abstraction over list of clauses) - #137105 (Restrict DerefPure for Cow<T> impl to T = impl Clone, [impl Clone], str.) - #137120 (Enable `relative-path-include-bytes-132203` rustdoc-ui test on Windows) - #137125 (Re-add missing empty lines in the releases notes) - #137145 (use add-core-stubs / minicore for a few more tests) - #137149 (Remove SSE ABI from i586-pc-windows-msvc) r? `@ghost` `@rustbot` modify labels: rollup
2025-02-17allow configuring jemalloc per targetPietro Albini-3/+18
2025-02-17generate-copyright: pass the vendored sources from bootstrapPietro Albini-52/+41
2025-02-17Fix detection of ref patterns for path patternsChayim Refael Friedman-17/+64
I was wrong on #19127, I thought hir-def resolver is enough for them, but it turns out not because of paths like `<Enum>::Variant` and `Type::AssocThatIsEnum::Variant`.
2025-02-17Merge pull request #19158 from PoignardAzur/expaned_pub_glob_importsLukas Wirth-92/+297
Implement expand_glob_reexport assist
2025-02-17CI: rfl: move job forward to Linux v6.14-rc3Miguel Ojeda-2/+2
Linux v6.14-rc3 contains commit 6273a058383e ("x86: rust: set rustc-abi=x86-softfloat on rustc>=1.86.0"), which resolves the error from https://github.com/rust-lang/rust/pull/136146. Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-02-17Merge pull request #19122 from Austaras/masterLukas Wirth-20/+37
pass struct fields to chalk
2025-02-17Update default loongarch code model in docsNikita Popov-1/+1
Since https://github.com/rust-lang/rust/pull/130266 loongarch defaults to medium code model.
2025-02-17Merge pull request #19127 from ChayimFriedman2/different-generic-argsLukas Wirth-1144/+1222
feat: Refactor path lowering and serve a new path diagnostic
2025-02-17Rollup merge of #137095 - saethlin:use-hash64-for-hashes, r=workingjubileeMatthias Krüger-5/+19
Replace some u64 hashes with Hash64 I introduced the Hash64 and Hash128 types in https://github.com/rust-lang/rust/pull/110083, essentially as a mechanism to prevent hashes from landing in our leb128 encoding paths. If you just have a u64 or u128 field in a struct then derive Encodable/Decodable, that number gets leb128 encoding. So if you need to store a hash or some other value which behaves very close to a hash, don't store it as a u64. This reverts part of https://github.com/rust-lang/rust/pull/117603, which turned an encoded Hash64 into a u64. Based on https://github.com/rust-lang/rust/pull/110083, I don't expect this to be perf-sensitive on its own, though I expect that it may help stabilize some of the small rmeta size fluctuations we currently see in perf reports.
2025-02-17Rollup merge of #137101 - GrigorenkoPV:str-inherent-lint, r=UrgauMatthias Krüger-4/+5
`invalid_from_utf8[_unchecked]`: also lint inherent methods Addressing https://github.com/rust-lang/rust/issues/131114#issuecomment-2646663535 Also corrected a typo: "_an_ invalid literal", not "_a_ invalid literal".
2025-02-17Rollup merge of #137080 - jieyouxu:more-tracing, r=onur-ozkanMatthias Krüger-31/+340
bootstrap: add more tracing to compiler/std/llvm flows - Add more tracing to compiler/std/llvm flows. - Two drive-by nits: 1. Take `TargetSelection` by-value for `builder.is_builder_target()`. Noticed while adding tracing; follow-up to #136767. 2. Coalesce enzyme build logic into one branch. - Document `COMPILER{,_FOR}` tracing targets for #96176. - No functional changes. ### Testing You can play with the tracing locally with: ``` $ BOOTSTRAP_TRACING=bootstrap=debug ./x build library $ BOOTSTRAP_TRACING=bootstrap=trace ./x build library $ BOOTSTRAP_TRACING=bootstrap=trace,COMPILER=trace,COMPILER_FOR=trace ./x build library ``` ### Previews ``` $ BOOTSTRAP_TRACING=bootstrap=debug ./x build library ``` ![Screenshot 2025-02-15 230824](https://github.com/user-attachments/assets/c3b02b62-d52e-4c03-a00a-da0d95618989) ``` $ BOOTSTRAP_TRACING=bootstrap=trace,COMPILER=trace,COMPILER_FOR=trace ./x build library ``` ![Screenshot 2025-02-15 233859](https://github.com/user-attachments/assets/842e4ece-4c26-4191-acbb-5f93e42de4dc) r? ``@onur-ozkan`` (or reroll)
2025-02-17Rollup merge of #136671 - nnethercote:middle-limits, r=NadrierilMatthias Krüger-3/+3
Overhaul `rustc_middle::limits` In particular, to make `pattern_complexity` work more like other limits, which then enables some other simplifications. r? ``@Nadrieril``
2025-02-17Rollup merge of #136466 - nnethercote:start-removing-Map, r=cjgillotMatthias Krüger-250/+240
Start removing `rustc_middle::hir::map::Map` `rustc_middle::hir::map::Map` is now just a low-value wrapper around `TyCtxt`. This PR starts removing it. r? `@cjgillot`
2025-02-17Merge from rustcThe Miri Cronjob Bot-20/+408
2025-02-17Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2025-02-17Calculate drop glue and show it on hoverChayim Refael Friedman-6/+1002
Also fix the `needs_drop()` intrinsic. Unions also need this information (to err if they have a drop-needing field), but this will come in a follow-up PR.
2025-02-17stabilize (const_)ptr_sub_ptrbendn-3/+0
2025-02-17Remove `TyCtxt::hir_krate`.Nicholas Nethercote-1/+1
It's a trivial wrapper around the `hir_crate` query with a small number of uses.
2025-02-17Overhaul the `intravisit::Map` trait.Nicholas Nethercote-76/+73
First of all, note that `Map` has three different relevant meanings. - The `intravisit::Map` trait. - The `map::Map` struct. - The `NestedFilter::Map` associated type. The `intravisit::Map` trait is impl'd twice. - For `!`, where the methods are all unreachable. - For `map::Map`, which gets HIR stuff from the `TyCtxt`. As part of getting rid of `map::Map`, this commit changes `impl intravisit::Map for map::Map` to `impl intravisit::Map for TyCtxt`. It's fairly straightforward except various things are renamed, because the existing names would no longer have made sense. - `trait intravisit::Map` becomes `trait intravisit::HirTyCtxt`, so named because it gets some HIR stuff from a `TyCtxt`. - `NestedFilter::Map` assoc type becomes `NestedFilter::MaybeTyCtxt`, because it's always `!` or `TyCtxt`. - `Visitor::nested_visit_map` becomes `Visitor::maybe_tcx`. I deliberately made the new trait and associated type names different to avoid the old `type Map: Map` situation, which I found confusing. We now have `type MaybeTyCtxt: HirTyCtxt`.
2025-02-17Move some `Map` methods onto `TyCtxt`.Nicholas Nethercote-174/+167
The end goal is to eliminate `Map` altogether. I added a `hir_` prefix to all of them, that seemed simplest. The exceptions are `module_items` which became `hir_module_free_items` because there was already a `hir_module_items`, and `items` which became `hir_free_items` for consistency with `hir_module_free_items`.
2025-02-17Fix sorting of runnablesChayim Refael Friedman-11/+4
There were two mistakes: first, tests were sorted before test modules, and second, we re-sorted based on the name only, which cancelled the sort based on the kind.
2025-02-17Rename `pattern_complexity` attr as `pattern_complexity_limit`.Nicholas Nethercote-2/+2
For consistency with `recursion_limit`, `move_size_limit`, and `type_length_limit`.
2025-02-17Add `pattern_complexity_limit` to `Limits`.Nicholas Nethercote-1/+1
It's similar to the other limits, e.g. obtained via `get_limit`. So it makes sense to handle it consistently with the other limits. We now use `Limit`/`usize` in most places instead of `Option<usize>`, so we use `Limit::new(usize::MAX)`/`usize::MAX` to emulate how `None` used to work. The commit also adds `Limit::unlimited`.
2025-02-16Auto merge of #137143 - matthiaskrgr:rollup-9hapmyd, r=matthiaskrgrbors-16/+299
Rollup of 8 pull requests Successful merges: - #136986 (Apply unsafe_op_in_unsafe_fn to the standard library) - #137012 (add docs and ut for bootstrap util cc-detect) - #137072 (Load all builtin targets at once instead of one by one in check-cfg) - #137102 (Rework `name_regions` to not rely on reverse scc graph for non-member-constrain usages) - #137112 (Don't project into `NonNull` when dropping a `Box`) - #137114 (Add an example for `std::error::Error`) - #137117 (Fix test that relies on error language) - #137119 (fix broken `x {doc, build} core`) r? `@ghost` `@rustbot` modify labels: rollup
2025-02-16Move hashes from rustc_data_structure to rustc_hashes so they can be shared ↵Ben Kimock-5/+19
with rust-analyzer
2025-02-16Pass through of target features to llvm-bitcode-linker and handling themkulst-2/+17
The .ptx version produced by llc can be specified by passing it with --mattr. Currently it is not possible to specify the .ptx version with -Ctarget-feature because these are not passed through to llvm-bitcode-linker and handled by it. This commit adds both. --target-feature and -mattr are passed with equals to mitigate issues when the value starts with a - (minus).
2025-02-16add erf and erfc to nondet tests, and reduce how much we're changing the ↵Ralf Jung-125/+48
float test