Commit Graph

4285 Commits

Author SHA1 Message Date
Tshepang Mbambo 08e9bce01c
Merge pull request #2435 from smanilov/patch-19
Add opaque type attributes
2025-06-02 11:55:19 +02:00
Tshepang Mbambo 4bfb215935
Merge pull request #2437 from rust-lang/rustc-pull
Rustc pull update
2025-06-02 11:47:49 +02:00
Tshepang Mbambo 3039843284
Merge pull request #2438 from smanilov/patch-20
Trivial: fix typo (change `foo` to `bar`)
2025-06-02 11:27:24 +02:00
Stan Manilov 294963c0c6
Trivial: fix typo (change `foo` to `bar`)
There is no `foo` symbol in the preceding example. I assume the method `bar` is meant.
2025-06-02 10:52:31 +03:00
bors 592a101be3 Auto merge of #119899 - onur-ozkan:redesign-stage0-std, r=albertlarsan68,jieyouxu,mark-simulacrum,kobzol,jyn514,Noratrieb,WaffleLapkin,RalfJung,bjorn3
redesign stage 0 std

### Summary

**Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/**

This PR changes how bootstrap builds the stage 1 compiler by switching to precompiled stage 0 standard library instead of building the in-tree one. The goal was to update bootstrap to use the beta standard library at stage 0 rather than compiling it from source (see the motivation at https://github.com/rust-lang/compiler-team/issues/619).

Previously, to build a stage 1 compiler bootstrap followed this path:

```
download stage0 compiler -> build in-tree std -> compile stage1 compiler with in-tree std
```

With this PR, the new path is:

```
download stage0 compiler -> compile stage1 compiler with precompiled stage0 std
```

This also means that `cfg(bootstrap)`/`cfg(not(bootstrap))` is no longer needed for library development.

### Building "library"

Since stage0 `std` is no longer in-tree `x build/test/check library --stage 0` is now no-op. The minimum supported stage to build `std` is now 1. For the same reason, default stage values in the library profile is no longer 0.

Because building the in-tree library now requires a stage1 compiler, I highly recommend library developers to enable `download-rustc` to speed up compilation time.

<hr>

**Blog post: https://blog.rust-lang.org/inside-rust/2025/05/29/redesigning-the-initial-bootstrap-sequence/**

If you encounter a bug or unexpected results please open a topic in the [#t-infra/bootstrap](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap) Zulip channel or create a [bootstrap issue](https://github.com/rust-lang/rust/issues/new?template=bootstrap.md).

(Review thread: https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Review.20thread.3A.20stage.200.20redesign.20PR/with/508271433)

~~Blocked on https://github.com/rust-lang/rust/pull/122709~~

try-job: dist-x86_64-linux
try-job: `x86_64-msvc*`
try-job: `x86_64-apple-*`
try-job: `aarch64-apple`
try-job: x86_64-gnu
try-job: `x86_64-gnu-llvm*`
2025-06-02 07:49:18 +00:00
The rustc-dev-guide Cronjob Bot a29099fb6c Merge from rustc 2025-06-02 04:08:41 +00:00
The rustc-dev-guide Cronjob Bot 5d7586c344 Preparing for merge from rustc 2025-06-02 04:08:33 +00:00
Stan Manilov f267718a78
Add opaque type attributes
This allows for the code to compile on `nightly`.
2025-06-01 10:36:28 +03:00
bors 687ddbb1a6 Auto merge of #141725 - nnethercote:avoid-UsePath-overcounting, r=BoxyUwU
Avoid over-counting of `UsePath` in the HIR stats.

Currently we over-count. Details in the individual commits.

r? `@BoxyUwU`
2025-06-01 04:21:50 +00:00
nora e76d93cb24
Merge pull request #2434 from rust-lang/tshepang-mailmap
update surname (was lekhonkhobe previously) and email
2025-05-31 23:20:40 +02:00
Tshepang Mbambo e59e6bfcaf update surname (was lekhonkhobe previously) and email 2025-05-31 23:06:14 +02:00
nora c067de3662
Merge pull request #2432 from rust-lang/tshepang-patch-1
suggest build/rust-analyzer instead of build-rust-analyzer
2025-05-31 22:53:01 +02:00
nora 354865c1a7
Merge pull request #2433 from rust-lang/tshepang-patch-2
replace a broken sentence
2025-05-31 22:52:11 +02:00
Tshepang Mbambo 8cf3cc09b9
replace a broken sentence 2025-05-31 22:30:00 +02:00
Tshepang Mbambo eabc382733
suggest build/rust-analyzer instead of build-rust-analyzer
This is better because
- `./x clean` also removes it, without needing extra text to explain it
- Does not need an extra .gitignore entry
2025-05-31 22:21:04 +02:00
许杰友 Jieyou Xu (Joe) e26fce98bb
Merge pull request #2431 from jieyouxu/review-group 2025-06-01 00:40:59 +08:00
Jieyou Xu b2077fb2f1
triagebot: add doc link to `[assign]` 2025-05-31 23:48:47 +08:00
Jieyou Xu ae46731db6
triagebot: setup `rustc-dev-guide` adhoc-group
So that PR authors can opt-in to request review via
`r? rustc-dev-guide`.
2025-05-31 23:26:32 +08:00
Jieyou Xu acb7ffd277
triagebot: fix incorrect link 2025-05-31 23:21:43 +08:00
bors fc5bd174c1 Auto merge of #141685 - orlp:inplace-tls-drop, r=joboet
Do not move thread-locals before dropping

Fixes rust-lang/rust#140816. I also (potentially) improved the speed of `get_or_init` a bit by having an explicit hot/cold path.

We still move the value before dropping in the event of a recursive initialization (leading to double-initialization with one value being silently dropped). This is the old behavior, but changing this to panic instead would involve changing tests and also the other OS-specific `thread_local/os.rs` implementation, which is more than I'd like in this PR.
2025-05-31 14:56:33 +00:00
bors 5fb0c46fec Auto merge of #141678 - Kobzol:revert-141516, r=workingjubilee
Revert "increase perf of charsearcher for single ascii characters"

This reverts commit 245bf503e2a948ac98170516d11df632e85a948b (PR https://github.com/rust-lang/rust/pull/141516).

It caused a large `doc` perf. regression in https://github.com/rust-lang/rust/pull/141605.
2025-05-31 08:11:06 +00:00
bors 2947e9cf82 Auto merge of #141667 - lqd:lazy-maybe-init, r=matthewjasper
Add fast path for maybe-initializedness in liveness

r? `@matthewjasper`

Correct me if I'm wrong Matthew, but my understanding is that
1. `MaybeInitializedPlaces` is currently eagerly computed, in `do_mir_borrowck`
2. but this data is only used in liveness
3. and `liveness::trace` actually only uses it for drop-liveness

This PR moves the computation to `liveness::trace` which looks to be its only use-site. We also add a fast path there, so that it's only computed by drop-liveness.

This is interesting because 1) liveness is only computed for relevant live locals, 2) drop-liveness is only computed for relevant live locals with >0 drop points; 0 is the common case from our benchmarks, as far as I can tell, so even just computing the entire data lazily helps.

It seems possible to also reduce the domain here, and speed up the analysis for the cases where it has to be computed -- so I've left a fixme for that, and may look into it soon.

(I've come upon this while doing implementation work for polonius, so don't be too enamored with possible wins: the goal is to reduce the eventual polonius overhead and make it more palatable 😓)
2025-05-31 04:52:37 +00:00
bors 01cee0c2ad Auto merge of #141657 - petrochenkov:nobinroot, r=jieyouxu
bootstrap: Remove `bin_root` from `PATH`

It's not currently load bearing in typical setups on typical targets.
Basically, if it passes the standard CI, then we can remove it, I think.

If someone later reports this breaking the build, then we can address it in a more fine grained way.
E.g. add it to `PATH` last and not first, only on specific targets, and only if specific files are not already found in `PATH` directories.

Fixes [#t-infra/bootstrap > Build broken in MSYS2 @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Build.20broken.20in.20MSYS2/near/520709527)
2025-05-30 18:56:37 +00:00
onur-ozkan 257e73f3a3 improve comments and docs
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30 21:04:14 +03:00
onur-ozkan 09eb3b3f78 update dev guidelines
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30 21:04:08 +03:00
onur-ozkan 19a333ad0f split `mingw-check` into two
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-05-30 21:04:05 +03:00
bors 53dcc6bbdb Auto merge of #139385 - joboet:threadlocal_address, r=nikic
rustc_codegen_llvm: use `threadlocal.address` intrinsic to access TLS

Fixes #136044
r? `@nikic`
2025-05-30 15:39:56 +00:00
bors a4e0ab2e75 Auto merge of #141573 - nnethercote:rustdoc-alloc-cleanups, r=camelid
rustdoc: cleanups relating to allocations

These commits generally clean up the code a bit and also reduce allocation rates a bit.

r? `@camelid`
2025-05-30 08:55:18 +00:00
bors c6e08679d1 Auto merge of #141651 - compiler-errors:less-assert, r=lcnr
Make some assertions in solver into debug assertions

These may or may not be expensive :>

r? lcnr
2025-05-30 02:21:17 +00:00
bors 8ffccd116b Auto merge of #141490 - compiler-errors:bump-pgo, r=Kobzol
Bump rustc-perf and update PGO crates

Updates rustc-perf to rust-lang/rustc-perf@8158f78f73, and updates the crates.

r? `@Kobzol`
2025-05-29 19:42:49 +00:00
bors 15be64207d Auto merge of #141595 - bjorn3:rustc_no_sysroot_proc_macro, r=onur-ozkan
Do not get proc_macro from the sysroot in rustc

With the stage0 refactor the proc_macro version found in the sysroot will no longer always match the proc_macro version that proc-macros get compiled with by the rustc executable that uses this proc_macro. This will cause problems as soon as the ABI of the bridge gets changed to implement new features or change the way existing features work.

To fix this, this commit changes rustc crates to depend directly on the local version of proc_macro which will also be used in the sysroot that rustc will build.
2025-05-29 12:07:53 +00:00
bors a7cdec89dc Auto merge of #141717 - jhpratt:rollup-neu8nzl, r=jhpratt
Rollup of 4 pull requests

Successful merges:

 - rust-lang/rust#138285 (Stabilize `repr128`)
 - rust-lang/rust#139994 (add `CStr::display`)
 - rust-lang/rust#141571 (coretests: extend and simplify float tests)
 - rust-lang/rust#141656 (CI: Add cargo tests to aarch64-apple-darwin)

Failed merges:

 - rust-lang/rust#141430 (remove `visit_clobber` and move `DummyAstNode` to `rustc_expand`)
 - rust-lang/rust#141636 (avoid some usages of `&mut P<T>` in AST visitors)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-05-29 08:53:27 +00:00
许杰友 Jieyou Xu (Joe) 60d52c8b52
Merge pull request #2425 from jieyouxu/adjust-triagebot 2025-05-29 16:38:11 +08:00
Jieyou Xu afb57b1f06
triagebot: update `[issue-links]` config 2025-05-29 16:37:09 +08:00
Jieyou Xu 02088e7791
triagebot: add doc backlink for `[no-mentions]` 2025-05-29 16:37:09 +08:00
Jieyou Xu 604343a24e
triagebot: enable note functionality 2025-05-29 16:37:06 +08:00
Jieyou Xu 77b0952142
triagebot: enable issue transfer 2025-05-29 16:37:02 +08:00
Jieyou Xu 7485ed7fbc
triagebot: enable PR review status flipping and its shortcuts 2025-05-29 16:15:04 +08:00
Jieyou Xu 6f298ff4b7
triagebot: apply `needs-triage` label for new issues 2025-05-29 16:13:03 +08:00
Jieyou Xu 531ef6c610
triagebot: adjust `allow-unauthenticated` labels 2025-05-29 16:12:35 +08:00
bors 8c21631ebc Auto merge of #141716 - jhpratt:rollup-9bjrzfi, r=jhpratt
Rollup of 16 pull requests

Successful merges:

 - rust-lang/rust#136429 (GCI: At their def site, actually wfcheck the where-clause & always eval free lifetime-generic constants)
 - rust-lang/rust#138139 (Emit warning while outputs is not exe and prints linkage info)
 - rust-lang/rust#141104 (Test(fs): Fix `test_eq_windows_file_type` for Windows 7)
 - rust-lang/rust#141477 (Path::with_extension: show that it adds an extension where one did no…)
 - rust-lang/rust#141533 (clean up old rintf leftovers)
 - rust-lang/rust#141612 (Call out possibility of invariant result in variance markers)
 - rust-lang/rust#141638 (Use `builtin_index` instead of hand-rolling it)
 - rust-lang/rust#141643 (ci: verify that codebuild jobs use ghcr.io)
 - rust-lang/rust#141675 (Reorder `ast::ItemKind::{Struct,Enum,Union}` fields.)
 - rust-lang/rust#141680 (replace TraitRef link memory.md)
 - rust-lang/rust#141682 (interpret/allocation: Fixup type for `alloc_bytes`)
 - rust-lang/rust#141683 (Handle ed2021 precise capturing of unsafe binder)
 - rust-lang/rust#141684 (rustbook: Bump versions of `onig` and `onig_sys`)
 - rust-lang/rust#141687 (core: unstably expose atomic_compare_exchange so stdarch can use it)
 - rust-lang/rust#141690 (Add `rustc_diagnostic_item` to `sys::Mutex` methods)
 - rust-lang/rust#141702 (Add eholk to compiler reviewer rotation)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-05-29 05:41:04 +00:00
Jacob Pratt 10771a9a79
Rollup merge of #141702 - eholk:eholk-reviewers, r=aDotInTheVoid
Add eholk to compiler reviewer rotation

Now that we have work queue limits on triagebot, I'm happy to share some of the review load.

r? ``@wesleywiser``
2025-05-29 04:49:47 +02:00
Jacob Pratt eb19d9b48c
Rollup merge of #141690 - Patrick-6:intercept-mutex, r=m-ou-se
Add `rustc_diagnostic_item` to `sys::Mutex` methods

For an ongoing project for adding a concurrency model checker to Miri we need to be able to intercept locking/unlocking operations on standard library mutexes.

This PR adds diagnostic items to the relevant calls `lock`, `try_lock` and `unlock` for the `sys::Mutex` implementation on the targets we care about.
This PR also makes the internals of `pthread::Mutex` less public, to reduce the chance of anyone locking/unlocking a mutex without going through the intercepted methods.

r? ``@RalfJung``
2025-05-29 04:49:47 +02:00
Jacob Pratt 7c783dad9f
Rollup merge of #141687 - RalfJung:atomic_compare_exchange, r=bjorn3
core: unstably expose atomic_compare_exchange so stdarch can use it

Due to https://github.com/rust-lang/stdarch/issues/1655, cleaning up the atomic intrinsics will be a bunch of extra work: stdarch directly calls them [here](8764244589/crates/core_arch/src/x86_64/cmpxchg16b.rs (L58-L74)).

Instead of duplicating that match, stdarch should use what we have in libcore, so let's expose that.

r? `@bjorn3`
2025-05-29 04:49:46 +02:00
Jacob Pratt 228227bae3
Rollup merge of #141684 - petrochenkov:bumponig, r=ehuss
rustbook: Bump versions of `onig` and `onig_sys`

This fixes the build on GCC 15.
2025-05-29 04:49:46 +02:00
Jacob Pratt 441d57951f
Rollup merge of #141683 - compiler-errors:unsafe-binder-capture, r=oli-obk
Handle ed2021 precise capturing of unsafe binder

Missing pieces from last pr.

r? oli-obk

Fixes https://github.com/rust-lang/rust/issues/141655
2025-05-29 04:49:45 +02:00
Jacob Pratt 3d531a4c5a
Rollup merge of #141682 - nia-e:fixup-alloc, r=RalfJung
interpret/allocation: Fixup type for `alloc_bytes`

This can be `FnOnce`, which helps us avoid an extra clone in rust-lang/miri#4343

r? RalfJung
2025-05-29 04:49:45 +02:00
Jacob Pratt 66f365d5bf
Rollup merge of #141680 - davidjsonn:master, r=oli-obk
replace TraitRef link memory.md

Hi, I fixed broken links in the documentation and replaced them with working ones.

https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/struct.TraitRef.html - old link
https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/type.TraitRef.html - new link
2025-05-29 04:49:44 +02:00
Jacob Pratt 86e53f09db
Rollup merge of #138139 - xizheyin:issue-137384, r=ChrisDenton
Emit warning while outputs is not exe and prints linkage info

cc #137384

```bash
$ rustc +stage1 /dev/null --print native-static-libs --crate-type staticlib  --emit metadata
warning: skipping link step due to conflict: cannot output linkage information without emitting executable

note: consider emitting executable to print link information

warning: 1 warning emitted
```
2025-05-29 04:49:40 +02:00
bors 6ebb2adf6e Auto merge of #141693 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2025-05-28 23:05:24 +00:00