Commit Graph

2772 Commits

Author SHA1 Message Date
Jakub Beránek d06c3fc3b4
Merge pull request #2237 from Kobzol/ci-fix
Pass `GITHUB_TOKEN` to Zulip CI step
2025-01-31 17:02:21 +01:00
Jakub Beránek 4755a326eb Pass `GITHUB_TOKEN` to Zulip CI step 2025-01-31 17:01:38 +01:00
Jakub Beránek d56a2103f8
Merge pull request #2234 from Kobzol/rustc-pull-error-code
Make rustc pulls on CI more frequent
2025-01-30 21:09:23 +01:00
Jakub Beránek c45e1e9a0e Run rustc-pull CI every day, don't notify when there is nothing to update 2025-01-30 20:00:39 +01:00
Jakub Beránek 88197e4182 Distinguish between "nothing to pull" and "pull error" in josh-sync 2025-01-30 16:48:39 +01:00
Boxy f61d56ba4d
Rustc pull 2025-01-29 16:46:09 +00:00
许杰友 Jieyou Xu (Joe) ea884accae
Merge pull request #2227 from Joren-vanGoethem/master 2025-01-29 05:03:36 +00:00
许杰友 Jieyou Xu (Joe) 5000a7027c
Merge pull request #2231 from yegeunyang/#2069 2025-01-29 05:02:55 +00:00
yegeunyang 2332c8e114 Touch up a sentence 2025-01-28 22:56:52 -06:00
许杰友 Jieyou Xu (Joe) ed1fc5d8e1
Merge pull request #2232 from yegeunyang/#2114
Add a link to declare_lint! macro doc in diagnostics.md
2025-01-29 04:08:54 +00:00
许杰友 Jieyou Xu (Joe) b221a6bfad
Merge pull request #2229 from notriddle/typescript
Add some extra pointers for rustdoc frontend devs
2025-01-29 03:53:00 +00:00
yegeunyang 7e74e43eaa Add link to declare_lint! macro 2025-01-28 21:05:12 -06:00
yegeunyang 930c6a61e3 Add "Writing tests" section 2025-01-28 20:42:26 -06:00
Michael Howell bc8f00367e Add some extra pointers for rustdoc frontend devs 2025-01-28 11:04:26 -07:00
Boxy b98da0d8e3 Merge from rustc 2025-01-28 11:57:19 +00:00
Boxy b06461f7df Preparing for merge from rustc 2025-01-28 11:57:04 +00:00
Joren-vanGoethem 636c5b1a4d
Update about-this-guide.md 2025-01-28 07:43:16 +01:00
bors e0f00731b8 Auto merge of #134290 - tgross35:windows-i128-callconv, r=bjorn3,wesleywiser
Windows x86: Change i128 to return via the vector ABI

Clang and GCC both return `i128` in xmm0 on windows-msvc and windows-gnu. Currently, Rust returns the type on the stack. Add a calling convention adjustment so we also return scalar `i128`s using the vector ABI, which makes our `i128` compatible with C.

In the future, Clang may change to return `i128` on the stack for its `-msvc` targets (more at [1]). If this happens, the change here will need to be adjusted to only affect MinGW.

Link: https://github.com/rust-lang/rust/issues/134288 (does not fix) [1]

try-job: x86_64-msvc
try-job: x86_64-msvc-ext1
try-job: x86_64-mingw-1
try-job: x86_64-mingw-2
2025-01-28 06:11:13 +00:00
许杰友 Jieyou Xu (Joe) 15929a3a91
Merge pull request #2226 from Kobzol/rustc-pull-ci-bash
Fix rustc-pull CI's bash commands
2025-01-28 12:35:41 +08:00
Jakub Beránek a0f5d80dfe
Fix rustc-pull CI's bash commands 2025-01-27 23:34:43 +01:00
bors 0dd8c602cc Auto merge of #136110 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2025-01-27 20:35:09 +00:00
bors 1b2a8e245d Auto merge of #136098 - jyn514:linker-output, r=saethlin
Downgrade `linker-warnings` to allow-by-default

This needs more time to bake before we turn it on. Turning it on early risks people silencing the warning indefinitely, before we have the chance to make it less noisy.

cc https://github.com/rust-lang/rust/issues/136096
fixes https://github.com/rust-lang/rust/issues/136086#issuecomment-2614476308

r? `@saethlin` cc `@Noratrieb` `@bjorn3`

`@rustbot` label A-linkage L-linker_messages
2025-01-27 14:36:51 +00:00
bors c031382d62 Auto merge of #136024 - GuillaumeGomez:cg_gcc-subtree, r=GuillaumeGomez
Update rustc_codegen_gcc subtree

cc `@antoyo`
2025-01-27 11:51:28 +00:00
bors 80a7bad5be Auto merge of #136116 - fmease:rollup-c8pk3mj, r=fmease
Rollup of 8 pull requests

Successful merges:

 - #126604 (Uplift `clippy::double_neg` lint as `double_negations`)
 - #135158 (Add `TooGeneric` variant to `LayoutError` and emit `Unknown`)
 - #135635 (Move `std::io::pipe` code into its own file)
 - #136072 (add two old crash tests)
 - #136079 (compiler_fence: fix example)
 - #136091 (Add some tracing to core bootstrap logic)
 - #136097 (rustc_ast: replace some len-checks + indexing with slice patterns etc.)
 - #136101 (triagebot: set myself on vacation)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-27 06:54:42 +00:00
León Orell Valerian Liehr 4d92ac8d26
Rollup merge of #136101 - jieyouxu:away, r=jieyouxu
triagebot: set myself on vacation

Will be back 02-01.
2025-01-27 04:34:54 +01:00
León Orell Valerian Liehr 1d56295d1d
Rollup merge of #136097 - yotamofek:check-len-and-index, r=petrochenkov
rustc_ast: replace some len-checks + indexing with slice patterns etc.
2025-01-27 04:34:53 +01:00
León Orell Valerian Liehr 9c99bdd144
Rollup merge of #136091 - jieyouxu:core-tracing, r=clubby789
Add some tracing to core bootstrap logic

Follow-up to #135391.

### Summary

Add some initial tracing logging to bootstrap, focused on the core logic (in this PR).

Also:

- Adjusted tracing-tree style to not use indent lines (I found that more distracting than helpful).
- Avoid glob-importing `tracing` items.
- Improve the rustc-dev-guide docs on bootstrap tracing.

### Example output

```bash
$ BOOTSTRAP_TRACING=bootstrap=TRACE ./x check src/bootstrap
```

![Example bootstrap tracing output](https://github.com/user-attachments/assets/0be39042-0822-44b6-9451-30427cfea156)

r? bootstrap
2025-01-27 04:34:53 +01:00
León Orell Valerian Liehr 566a82e182
Rollup merge of #136079 - RalfJung:compiler-fence-example, r=jhpratt
compiler_fence: fix example

The old example was wrong, an acquire fence is required in the signal handler. To make the point more clear, I changed the "data" variable to use non-atomic accesses.

Fixes https://github.com/rust-lang/rust/issues/133014
2025-01-27 04:34:52 +01:00
Noah Lev e8952555b6
Merge pull request #2223 from marxin/CI-cache-restore-key
CI: use key-restore for cache GH action
2025-01-26 14:21:09 -08:00
Tshepang Mbambo 100f2c343d
Merge pull request #2225 from ehuss/patch-3
Correct information on dylib compression
2025-01-26 22:22:47 +02:00
Eric Huss ae3a58a13a
Correct information on dylib compression
Compression of dylibs was removed in https://github.com/rust-lang/rust/pull/113695 (and decompression removed in https://github.com/rust-lang/rust/pull/132402).
2025-01-26 12:08:48 -08:00
许杰友 Jieyou Xu (Joe) a86a368f0f rustc-dev-guide: update bootstrap tracing docs 2025-01-27 01:24:53 +08:00
bors 5d6f82509b Auto merge of #135764 - nikic:llvm-20-test-fixes, r=wesleywiser
Fix tests on LLVM 20

For sparcv8plus.rs, duplicate the test for LLVM 19 and LLVM 20. LLVM 20 resolves one of the FIXME in the test.

For x86_64-bigint-add.rs split the check lines for LLVM 19 and LLVM 20. The difference in codegen here is due to a difference in unroll factor, which I believe is not what the test is interested in.

Fixes https://github.com/rust-lang/rust/issues/132957.
Fixes https://github.com/rust-lang/rust/issues/133754.
2025-01-26 14:54:01 +00:00
bors ab7fd87a48 Auto merge of #135753 - compiler-errors:from-ty-const, r=oli-obk
Get rid of `mir::Const::from_ty_const`

This function is strange, because it turns valtrees into `mir::Const::Value`, but the rest of the const variants stay as type system consts.

All of the callsites except for one in `instsimplify` (array length simplification of `ptr_metadata` call) just go through the valtree arm of the function, so it's easier to just create a `mir::Const` directly for those.

For the instsimplify case, if we have a type system const we should *keep* having a type system const, rather than turning it into a `mir::Const::Value`; it doesn't really matter in practice, though, bc `usize` has no padding, but it feels more principled.
2025-01-26 09:26:34 +00:00
León Orell Valerian Liehr 1eab81562b
Merge pull request #2224 from ehuss/rustdoc-boring
Update boring lines to sync with rustdoc
2025-01-26 02:43:03 +01:00
León Orell Valerian Liehr 3ffcf606a9
Remove accidental leading empty line in code block 2025-01-26 02:42:09 +01:00
Eric Huss 684424aeef Update boring lines to sync with rustdoc 2025-01-25 13:49:32 -08:00
Martin Liska adb70de1c4 CI: use key-restore for cache GH action
It seems one can't overwrite a cache entry:
```
Failed to save: Unable to reserve cache with key linkcheck--0.8.1, another job may be creating this cache. More details: Cache already exists. Scope: refs/heads/master, Key: linkcheck--0.8.1, Version: 33f8fd511bed9c91c40778bc5c27cb58425caa894ab50f9c5705d83cb78660e0
Warning: Cache save failed.
```

A proper solution is to use `restore-keys`:
https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
2025-01-25 18:22:00 +01:00
bors 1fe935335a Auto merge of #119286 - jyn514:linker-output, r=bjorn3
show linker output even if the linker succeeds

Show stderr and stderr by default, controlled by a new `linker_messages` lint.

fixes https://github.com/rust-lang/rust/issues/83436. fixes https://github.com/rust-lang/rust/issues/38206. cc https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/uplift.20some.20-Zverbose.20calls.20and.20rename.20to.E2.80.A6.20compiler-team.23706/near/408986134

<!-- try-job: dist-x86_64-msvc -->
try-job: aarch64-apple

r? `@bjorn3`
2025-01-25 17:16:33 +00:00
bors a15bd2c81b Auto merge of #133154 - estebank:issue-133137, r=wesleywiser
Reword resolve errors caused by likely missing crate in dep tree

Reword label and add `help`:

```
error[E0432]: unresolved import `some_novel_crate`
 --> f704.rs:1:5
  |
1 | use some_novel_crate::Type;
  |     ^^^^^^^^^^^^^^^^ use of unresolved module or unlinked crate `some_novel_crate`
  |
  = help: if you wanted to use a crate named `some_novel_crate`, use `cargo add some_novel_crate` to add it to your `Cargo.toml`
```

Fix #133137.
2025-01-25 11:41:21 +00:00
Ben Kimock 84b49ffd47
Merge pull request #4150 from rust-lang/rustup-2025-01-25
Automatic Rustup
2025-01-25 06:05:36 +00:00
bors ecce576c88 Auto merge of #128657 - clubby789:optimize-none, r=fee1-dead,WaffleLapkin
Add `#[optimize(none)]`

cc #54882

This extends the `optimize` attribute to add `none`, which corresponds to the LLVM `OptimizeNone` attribute.

Not sure if an MCP is required for this, happy to file one if so.
2025-01-25 05:50:36 +00:00
The Miri Cronjob Bot cf664f4d40 Merge from rustc 2025-01-25 05:11:28 +00:00
Yuki Okushi a0bc41f5b9
Merge pull request #2221 from ada4a/patch-1 2025-01-25 14:00:46 +09:00
bors f5d48e907d Auto merge of #136023 - weihanglo:update-cargo, r=weihanglo
Update cargo

5 commits in 045bf21b36a2e1f3ed85e38278d1c3cc4305e134..cecde95c119a456c30e57d3e4b31fff5a7d83df4
2025-01-17 14:59:36 +0000 to 2025-01-24 17:15:24 +0000
- Remove unused `-C link-arg=-fuse-ld=lld` (rust-lang/cargo#15097)
- Remove `unsafe` by using `LazyLock` (rust-lang/cargo#15096)
- Print globs when workspace members can't be found (rust-lang/cargo#15093)
- Make --allow-dirty imply --allow-staged (rust-lang/cargo#15013)
- fix(config): When merging, replace rather than combining specific configuration keys (rust-lang/cargo#15066)
2025-01-25 02:43:32 +00:00
bors 0a395795d4 Auto merge of #136030 - matthiaskrgr:rollup-cbue0ng, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #135415 (Add `File already exists` error doc to `hard_link` function)
 - #135581 (Separate Builder methods from tcx)
 - #135728 (document order of items in iterator from drain)
 - #135749 (Do not assume const params are printed after type params)
 - #135829 (Rustc dev guide subtree update)
 - #135938 (Add memory layout documentation to generic NonZero<T>)
 - #135949 (Use short type string in E0308 secondary span label)
 - #135976 (Don't drop types with no drop glue when building drops for tailcalls)
 - #135998 ([rustdoc] Fix indent of trait items on mobile)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-24 23:13:48 +00:00
Matthias Krüger f4889aae42
Rollup merge of #135998 - GuillaumeGomez:fix-trait-items-mobile-indent, r=notriddle
[rustdoc] Fix indent of trait items on mobile

Before:

![Screenshot From 2025-01-24 15-38-53](https://github.com/user-attachments/assets/f7738ff8-92b6-4aca-8a66-2d3618c54572)

After:

![Screenshot From 2025-01-24 15-38-37](https://github.com/user-attachments/assets/0a19dc7e-dddd-4cd5-b087-1915e152d7c1)

Seems like we forgot them when we did #131718. Can be tested [here](https://rustdoc.crud.net/imperio/fix-trait-items-mobile-indent/foo/trait.T.html).

r? `@notriddle`
2025-01-24 23:25:46 +01:00
Matthias Krüger 45396b06ab
Rollup merge of #135976 - WaffleLapkin:tailcall-nodrop, r=oli-obk
Don't drop types with no drop glue when building drops for tailcalls

this is required as otherwise drops of `&mut` refs count as a usage of a
'two-phase temporary' causing an ICE.

fixes #128097

The underlying issue is that the current code generates drops for `&mut` which are later counted as a second use of a two-phase temporary:

`bat t.rs -p`
```rust
#![expect(incomplete_features)]
#![feature(explicit_tail_calls)]

fn f(x: &mut ()) {
    let _y = String::new();
    become f(x);
}

fn main() {}
```
`rustc t.rs -Zdump_mir=f`
```text
error: internal compiler error: compiler/rustc_borrowck/src/borrow_set.rs:298:17: found two uses for 2-phase borrow temporary _4: bb2[1] and bb3[0]
 --> t.rs:6:5
  |
6 |     become f(x);
  |     ^^^^^^^^^^^

thread 'rustc' panicked at compiler/rustc_borrowck/src/borrow_set.rs:298:17:
Box<dyn Any>
stack backtrace:
[REDACTED]

error: aborting due to 1 previous error
```
`bat ./mir_dump/t.f.-------.renumber.0.mir -p -lrust`
```rust
// MIR for `f` 0 renumber

fn f(_1: &mut ()) -> () {
    debug x => _1;
    let mut _0: ();
    let mut _2: !;
    let _3: std::string::String;
    let mut _4: &mut ();
    scope 1 {
        debug _y => _3;
    }

    bb0: {
        StorageLive(_3);
        _3 = String::new() -> [return: bb1, unwind: bb4];
    }

    bb1: {
        FakeRead(ForLet(None), _3);
        StorageLive(_4);
        _4 = &mut (*_1);
        drop(_3) -> [return: bb2, unwind: bb3];
    }

    bb2: {
        StorageDead(_3);
        tailcall f(Spanned { node: move _4, span: t.rs:6:14: 6:15 (#0) });
    }

    bb3 (cleanup): {
        drop(_4) -> [return: bb4, unwind terminate(cleanup)];
    }

    bb4 (cleanup): {
        resume;
    }
}
```

Note how `_4 is moved into the tail call in `bb2` and dropped in `bb3`.

This PR adds a check that the locals we drop need dropping.

r? `@oli-obk` (feel free to reassign, I'm not sure who would be a good reviewer, but thought you might have an idea)
cc `@beepster4096,` since you wrote the original drop implementation.
2025-01-24 23:25:46 +01:00
Matthias Krüger 951c4aec55
Rollup merge of #135949 - estebank:shorten-ty, r=davidtwco
Use short type string in E0308 secondary span label

We were previously printing the full type on the "this expression has type" label.

```
error[E0308]: mismatched types
  --> $DIR/secondary-label-with-long-type.rs:8:9
   |
LL |     let () = x;
   |         ^^   - this expression has type `((..., ..., ..., ...), ..., ..., ...)`
   |         |
   |         expected `((..., ..., ..., ...), ..., ..., ...)`, found `()`
   |
   = note:  expected tuple `((..., ..., ..., ...), ..., ..., ...)`
           found unit type `()`
   = note: the full type name has been written to '$TEST_BUILD_DIR/diagnostic-width/secondary-label-with-long-type/secondary-label-with-long-type.long-type-3987761834644699448.txt'
   = note: consider using `--verbose` to print the full type name to the console
```

Reported in a comment of #135919.
2025-01-24 23:25:45 +01:00
Matthias Krüger b4188c892d
Rollup merge of #135938 - carlsverre:master, r=joboet
Add memory layout documentation to generic NonZero<T>

The documentation I've added is based on the same Layout documentation that appears on the other `NonZero*` types. For example see [the Layout docs on `NonZeroI8`](https://doc.rust-lang.org/std/num/type.NonZeroI8.html#layout-1).
2025-01-24 23:25:44 +01:00