Commit graph

281686 commits

Author SHA1 Message Date
onur-ozkan
76063a683f print warning and help messages
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-19 19:26:43 +03:00
onur-ozkan
4b9b5d7896 add change-entry for tools profile update
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-19 19:18:54 +03:00
onur-ozkan
b4a3b6484d set build.test-stage = 2 for tools profile
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-19 19:16:49 +03:00
onur-ozkan
26d6ce76a7 add rustc-dev doc about bootstrap tools
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-19 09:03:35 +03:00
onur-ozkan
5408aaea59 fix rust-analyzer tests
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 20:21:50 +03:00
onur-ozkan
26f588bba4 fix cargo tests
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 16:28:05 +00:00
onur-ozkan
60ade6c1d7 add test coverage for tool::get_tool_rustc_compiler
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 16:07:42 +00:00
onur-ozkan
baef666f78 adapt tool module to ToolBuildResult
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 16:00:06 +00:00
onur-ozkan
5e5b1b054a document tool implementations
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 15:35:51 +00:00
onur-ozkan
6cf650fce7 remove manually handled stage offs
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 16:32:13 +03:00
onur-ozkan
a33843968c return ToolBuildResult to utilize them from callers
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 15:35:33 +03:00
onur-ozkan
8e011e5e67 migrate llvm-bitcode-linker to ToolBuild
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 15:34:55 +03:00
onur-ozkan
72e67e87da return more advanced type from ToolBuild
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 15:34:49 +03:00
onur-ozkan
7638abb580 bless tests
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 15:34:45 +03:00
onur-ozkan
164f2408a2 pass target_compiler from Rustdoc
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 15:34:43 +03:00
onur-ozkan
f012427aa6 handle ToolRustc build stages automatically
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-02-18 15:34:40 +03:00
bors
3b022d8cee Auto merge of #133852 - x17jiri:cold_path, r=saethlin
improve cold_path()

#120370 added a new instrinsic `cold_path()` and used it to fix `likely` and `unlikely`

However, in order to limit scope, the information about cold code paths is only used in 2-target switch instructions. This is sufficient for `likely` and `unlikely`, but limits usefulness of `cold_path` for idiomatic rust. For example, code like this:

```
if let Some(x) = y { ... }
```

may generate 3-target switch:

```
switch y.discriminator:
0 => true branch
1 = > false branch
_ => unreachable
```

and therefore marking a branch as cold will have no effect.

This PR improves `cold_path()` to work with arbitrary switch instructions.

Note that for 2-target switches, we can use `llvm.expect`, but for multiple targets we need to manually emit branch weights. I checked Clang and it also emits weights in this situation. The Clang's weight calculation is more complex that this PR, which I believe is mainly because `switch` in `C/C++` can have multiple cases going to the same target.
2025-02-18 07:49:09 +00:00
bors
aaa8614934 Auto merge of #137162 - nnethercote:remove-Map-2, r=Zalathar
Move methods from `Map` to `TyCtxt`, part 2.

Continuing the work started in #136466.

Every method gains a `hir_` prefix, though for the ones that already have a `par_` or `try_par_` prefix I added the `hir_` after that.

r? Zalathar
2025-02-18 04:26:30 +00:00
bors
de91711756 Auto merge of #137176 - matthiaskrgr:rollup-eht05gr, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #136959 (Simplify switch sources)
 - #137020 (Pass vendored sources from bootstrap to generate-copyright)
 - #137073 (boostrap: skip no_std targets in Std doc step)
 - #137165 (Use `tell` for `<File as Seek>::stream_position`)
 - #137166 (Update default loongarch code model in docs)
 - #137168 (correct comment)
 - #137169 (CI: rfl: move job forward to Linux v6.14-rc3)
 - #137170 (Allow configuring jemalloc per target)
 - #137173 (Subtree update of `rust-analyzer`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-18 00:05:30 +00:00
Nicholas Nethercote
fd7b4bf4e1 Move methods from Map to TyCtxt, part 2.
Continuing the work started in #136466.

Every method gains a `hir_` prefix, though for the ones that already
have a `par_` or `try_par_` prefix I added the `hir_` after that.
2025-02-18 10:17:44 +11:00
Matthias Krüger
fc829035c1
Rollup merge of #137173 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2025-02-17 17:06:14 +01:00
Matthias Krüger
10cc816cef
Rollup merge of #137170 - ferrocene:pa-target-jemalloc, r=Kobzol
Allow configuring jemalloc per target

In Ferrocene we're trying to switch from `./configure` to a predefined `config.toml` file. One of the limitations of doing that is the `rust.jemalloc` configuration option, which we need to conditionally disable based on the target. This PR adds a `target.$tuple.jemalloc` option to override `rust.jemalloc` to make that possible.
2025-02-17 17:06:13 +01:00
Matthias Krüger
8d72b7cb42
Rollup merge of #137169 - ojeda:rfl, r=lqd
CI: rfl: move job forward to Linux v6.14-rc3

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.

r? `@lqd` `@Kobzol`
try-job: x86_64-rust-for-linux
`@rustbot` label A-rust-for-linux
`@bors` try
2025-02-17 17:06:13 +01:00
Matthias Krüger
7808784f01
Rollup merge of #137168 - klensy:rc--, r=lcnr
correct comment

Rc was removed in #113573, so
r? `@lcnr`
2025-02-17 17:06:12 +01:00
Matthias Krüger
652c8b6866
Rollup merge of #137166 - nikic:loongarch-code-model, r=workingjubilee
Update default loongarch code model in docs

Since https://github.com/rust-lang/rust/pull/130266 loongarch defaults to medium code model.
2025-02-17 17:06:11 +01:00
Matthias Krüger
10018d8e10
Rollup merge of #137165 - thaliaarchi:file-tell, r=ChrisDenton
Use `tell` for `<File as Seek>::stream_position`

Some platforms have a more efficient way to get the current offset of the file than by seeking. For example, Wasi has `fd_tell` and SOLID has `SOLID_FS_Ftell`. Implement `<File as Seek>::stream_position()` in terms of those.

I do not use any APIs that were not already used in `std`. Although, the `libc` crate has [`ftell`](https://docs.rs/libc/latest/libc/fn.ftell.html), [`ftello`](https://docs.rs/libc/latest/libc/fn.ftello.html), and [`ftello64`](https://docs.rs/libc/latest/libc/fn.ftello64.html), I do not know platform coverage. It appears that Windows has no `tell`-like API.

I have checked that it builds on each relevant platform.
2025-02-17 17:06:10 +01:00
Matthias Krüger
97962d7643
Rollup merge of #137073 - niklaskorz:bootstrap-doc-fix-empty-no-std, r=clubby789
boostrap: skip no_std targets in Std doc step

This fixes a bug that currently prevents us from adding no_std library targets to rustc in nixpkgs (https://github.com/NixOS/nixpkgs/pull/382166).

When running `./x.py doc`, the `Std` doc step generally fails for no_std targets, logs: https://gist.github.com/niklaskorz/fb83f9503ce19b75e8b1af02cdebd592

Skipping no_std targets in this step will allow using no_std targets such as `bpfel-unknown-none` together with other targets in the same config without blocking the doc generator for them, e.g.

```
./configure --release-channel=stable --tools=rustc,rustdoc,rust-analyzer-proc-macro-srv --build=aarch64-apple-darwin --host=aarch64-apple-darwin --target=aarch64-apple-darwin,bpfel-unknown-none

./x.py doc
```

Logs with this fix applied: https://gist.github.com/niklaskorz/cdd50aaea33ede579f737434286d800b
2025-02-17 17:06:10 +01:00
Matthias Krüger
48543dd66d
Rollup merge of #137020 - ferrocene:pa-vendor-sources, r=Kobzol
Pass vendored sources from bootstrap to generate-copyright

In addition to doing the vendoring in bootstrap, this PR also loads the list of manifests to parse from bootstrap (instead of hardcoding a smaller list in generate-copyright). This is best reviewed commit-by-commit.

Fixes https://github.com/rust-lang/rust/issues/136955
2025-02-17 17:06:09 +01:00
Matthias Krüger
005de3877d
Rollup merge of #136959 - nnethercote:simplify-SwitchSources, r=tmiasko
Simplify switch sources

`SwitchSources` and the code around it can be simplified.

r? `@tmiasko`
2025-02-17 17:06:08 +01:00
bors
ce36a966c7 Auto merge of #135763 - nikic:llvm-20, r=cuviper
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-17 14:19:33 +00:00
Pietro Albini
92f31b95c9
use the shared vendor impl for plan source tarballs 2025-02-17 14:52:02 +01:00
Thalia Archibald
7112474134 Use tell for <File as Seek>::stream_position 2025-02-17 05:25:14 -08:00
Laurențiu Nicola
e08736d70d
Merge pull request #19170 from lnicola/update-lockfile
minor: Update lockfile
2025-02-17 13:06:12 +00:00
Laurențiu Nicola
bce3d0ff1c Update lockfile 2025-02-17 14:50:39 +02:00
Laurențiu Nicola
0c9c489355
Merge pull request #19169 from lnicola/sync-from-rust
minor: Sync from downstream
2025-02-17 12:30:13 +00:00
Laurențiu Nicola
952bfae057 Bump rustc crates 2025-02-17 14:11:12 +02:00
WANG Rui
1873bd3720 Default to the medium code model for the loongarch64-linux toolchains
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-17 12:42:00 +01:00
Lukas Wirth
2a0d16f3c4
Merge pull request #19167 from ChayimFriedman2/fix-ref-pat
fix: Fix detection of ref patterns for path patterns
2025-02-17 11:23:18 +00:00
Laurențiu Nicola
b571e8a8ac Merge from rust-lang/rust 2025-02-17 13:20:12 +02:00
Laurențiu Nicola
19fa3deab3 Preparing for merge from rust-lang/rust 2025-02-17 13:20:07 +02:00
bors
2162e9d4b1 Auto merge of #137164 - matthiaskrgr:rollup-dj5826k, r=matthiaskrgr
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-17 11:18:33 +00:00
Pietro Albini
a71de77ae9
allow configuring jemalloc per target 2025-02-17 11:43:49 +01:00
Pietro Albini
33e7f9bc66
generate-copyright: pass the vendored sources from bootstrap 2025-02-17 11:00:21 +01:00
Chayim Refael Friedman
b7a9a32126 Fix detection of ref patterns for path patterns
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-17 11:51:29 +02:00
Lukas Wirth
c7a2986c20
Merge pull request #19158 from PoignardAzur/expaned_pub_glob_imports
Implement expand_glob_reexport assist
2025-02-17 09:46:29 +00:00
Miguel Ojeda
f46c7652d5 CI: rfl: move job forward to Linux v6.14-rc3
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-17 10:46:01 +01:00
Lukas Wirth
d7fb8f15c7
Merge pull request #19122 from Austaras/master
pass struct fields to chalk
2025-02-17 09:37:55 +00:00
klensy
6fa3ad1e5e correct comment 2025-02-17 12:32:26 +03:00
Nikita Popov
9cbc310314 Update default loongarch code model in docs
Since https://github.com/rust-lang/rust/pull/130266 loongarch
defaults to medium code model.
2025-02-17 09:57:13 +01:00
Lukas Wirth
123f17c57b
Merge pull request #19127 from ChayimFriedman2/different-generic-args
feat: Refactor path lowering and serve a new path diagnostic
2025-02-17 08:30:10 +00:00