Commit graph

149887 commits

Author SHA1 Message Date
Oneirical
c9be69fd0a Add shallow_find_files helper function to run-make-support 2024-07-05 10:25:48 -04:00
Oneirical
b15e72a9ed rewrite profile to rmake 2024-07-05 10:17:48 -04:00
Oneirical
a1555eb0d6 rewrite pgo-use to rmake 2024-07-05 10:17:48 -04:00
Oneirical
1e4d821136 rewrite pgo-gen to rmake 2024-07-05 10:17:46 -04:00
bors
11dd90f761 Auto merge of #127360 - GuillaumeGomez:rollup-f0zs1qr, r=GuillaumeGomez
Rollup of 7 pull requests

Successful merges:

 - #124290 (DependencyList: removed outdated comment)
 - #126709 (Migrate `include_bytes_deps`, `optimization-remarks-dir-pgo`, `optimization-remarks-dir`, `issue-40535` and `rmeta-preferred` `run-make` tests to rmake)
 - #127214 (Use the native unwind function in miri where possible)
 - #127320 (Update windows-bindgen to 0.58.0)
 - #127349 (Tweak `-1 as usize` suggestion)
 - #127352 (coverage: Rename `mir::coverage::BranchInfo` to `CoverageInfoHi`)
 - #127359 (Improve run make llvm ident code)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-07-05 11:32:40 +00:00
Guillaume Gomez
4fd3b123bc
Rollup merge of #127359 - GuillaumeGomez:improve-run-make-llvm-ident-code, r=jieyouxu
Improve run make llvm ident code

I took the commits that are not blocking https://github.com/rust-lang/rust/pull/127237.

r? `@Kobzol`
2024-07-05 11:33:18 +02:00
Guillaume Gomez
80a9717091
Rollup merge of #127320 - ChrisDenton:win-sys, r=Mark-Simulacrum
Update windows-bindgen to 0.58.0

This also switches from the bespoke `std` generated bindings to the normal `sys` ones everyone else uses.

This has almost no difference except that the  `sys` bindings use the `windows_targets::links!` macro for FFI imports, which we implement manually. This does cause the diff to look much larger than it really is but the bulk of the changes are mostly contained to the generated code.
2024-07-05 11:33:16 +02:00
Guillaume Gomez
7a208c72b0
Rollup merge of #127214 - bjorn3:miri_native_unwind, r=oli-obk
Use the native unwind function in miri where possible

Continuation of https://github.com/rust-lang/miri/pull/3319

cc `@RalfJung`
2024-07-05 11:33:15 +02:00
Guillaume Gomez
e66f4d3356
Rollup merge of #126709 - Oneirical:exitestial-crisis, r=jieyouxu
Migrate `include_bytes_deps`, `optimization-remarks-dir-pgo`, `optimization-remarks-dir`, `issue-40535` and `rmeta-preferred` `run-make` tests to rmake

Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).

Needs BSD tryjob.

try-job: aarch64-apple
try-job: x86_64-msvc
try-job: armhf-gnu
try-job: test-various
2024-07-05 11:33:15 +02:00
bors
2ad6630673 Auto merge of #127008 - Jules-Bertholet:tc-ergonomics, r=Nadrieril
Match ergonomics 2024: Implement TC's match ergonomics proposal

Under gate `ref_pat_eat_one_layer_2024_structural`. Enabling `ref_pat_eat_one_layer_2024` at the same time allows the union of what the individual gates allow. `@traviscross`

r? `@Nadrieril`

cc https://github.com/rust-lang/rust/issues/123076

`@rustbot` label A-edition-2024 A-patterns
2024-07-05 09:10:17 +00:00
Guillaume Gomez
3e4368053f Improve Command::args API in run-make-support 2024-07-05 10:53:22 +02:00
bors
489233170a Auto merge of #123781 - RalfJung:miri-fn-identity, r=oli-obk
Miri function identity hack: account for possible inlining

Having a non-lifetime generic is not the only reason a function can be duplicated. Another possibility is that the function may be eligible for cross-crate inlining. So also take into account the inlining attribute in this Miri hack for function pointer identity.

That said, `cross_crate_inlinable` will still sometimes return true even for `inline(never)` functions:
- when they are `DefKind::Ctor(..) | DefKind::Closure` -- I assume those cannot be `InlineAttr::Never` anyway?
- when `cross_crate_inline_threshold == InliningThreshold::Always`

so maybe this is still not quite the right criterion to use for function pointer identity.
2024-07-04 23:45:56 +00:00
bors
c422581297 Auto merge of #127317 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-07-04 18:57:16 +00:00
Matthias Krüger
1652721ea1
Rollup merge of #127314 - chenyukang:yukang-fix-bless-note, r=albertlarsan68
Trivial update on tidy bless note

Make the notes more verbose.
2024-07-04 18:16:25 +02:00
Matthias Krüger
6f43a02c12
Rollup merge of #127309 - its-the-shrimp:jsondocck_add_file_var, r=aDotInTheVoid
jsondocck: add `$FILE` built-in variable

This built-in variable will allow accessing the full path to the currently tested file and allow to test things like source code spans generated by rustdoc-json, and that is exactly the reason why I've come up with the idea to add this

[futher discussion on zulip](https://rust-lang.zulipchat.com/#narrow/stream/266220-t-rustdoc/topic/rustdoc-json.20test.20help/near/449039819)
2024-07-04 18:16:25 +02:00
Matthias Krüger
c091d09b04
Rollup merge of #127307 - GuillaumeGomez:different-types-remap_path_prefix, r=Kobzol
Allow to have different types for arguments of `Rustc::remap_path_prefix`

r? `@Kobzol`
2024-07-04 18:16:24 +02:00
Matthias Krüger
54bd3a7b8d
Rollup merge of #127301 - estebank:fix-suggestions, r=Urgau
Tweak some structured suggestions to be more verbose and accurate

Addressing some issues I found while working on #127282.
```
error: this URL is not a hyperlink
  --> $DIR/auxiliary/include-str-bare-urls.md:1:11
   |
LL | HEADS UP! https://example.com MUST SHOW UP IN THE STDERR FILE!
   |           ^^^^^^^^^^^^^^^^^^^
   |
   = note: bare URLs are not automatically turned into clickable links
note: the lint level is defined here
  --> $DIR/include-str-bare-urls.rs:14:9
   |
LL | #![deny(rustdoc::bare_urls)]
   |         ^^^^^^^^^^^^^^^^^^
help: use an automatic link instead
   |
LL | HEADS UP! <https://example.com> MUST SHOW UP IN THE STDERR FILE!
   |           +                   +
```
```
error[E0384]: cannot assign twice to immutable variable `v`
  --> $DIR/assign-imm-local-twice.rs:7:5
   |
LL |     v = 1;
   |     ----- first assignment to `v`
LL |     println!("v={}", v);
LL |     v = 2;
   |     ^^^^^ cannot assign twice to immutable variable
   |
help: consider making this binding mutable
   |
LL |     let mut v: isize;
   |         +++
```
```
error[E0393]: the type parameter `Rhs` must be explicitly specified
  --> $DIR/issue-22560.rs:9:23
   |
LL | trait Sub<Rhs=Self> {
   | ------------------- type parameter `Rhs` must be specified for this
...
LL | type Test = dyn Add + Sub;
   |                       ^^^
   |
   = note: because of the default `Self` reference, type parameters must be specified on object types
help: set the type parameter to the desired type
   |
LL | type Test = dyn Add + Sub<Rhs>;
   |                          +++++
```
```
error[E0596]: cannot borrow `v` as mutable, as it is not declared as mutable
  --> $DIR/issue-33819.rs:4:34
   |
LL |         Some(ref v) => { let a = &mut v; },
   |                                  ^^^^^^ cannot borrow as mutable
   |
help: try removing `&mut` here
   |
LL -         Some(ref v) => { let a = &mut v; },
LL +         Some(ref v) => { let a = v; },
   |
```
```
help: remove the invocation before committing it to a version control system
   |
LL -     dbg!();
   |
```
```
error[E0308]: mismatched types
  --> $DIR/issue-39974.rs:1:21
   |
LL | const LENGTH: f64 = 2;
   |                     ^ expected `f64`, found integer
   |
help: use a float literal
   |
LL | const LENGTH: f64 = 2.0;
   |                      ++
```
```
error[E0529]: expected an array or slice, found `Vec<i32>`
  --> $DIR/match-ergonomics.rs:8:9
   |
LL |         [&v] => {},
   |         ^^^^ pattern cannot match with input type `Vec<i32>`
   |
help: consider slicing here
   |
LL |     match x[..] {
   |            ++++
```
```
error[E0609]: no field `0` on type `[u32; 1]`
  --> $DIR/parenthesized-deref-suggestion.rs:10:21
   |
LL |     (x as [u32; 1]).0;
   |                     ^ unknown field
   |
help: instead of using tuple indexing, use array indexing
   |
LL |     (x as [u32; 1])[0];
   |                    ~ +
```
2024-07-04 18:16:24 +02:00
Oneirical
3ea36f5bb6 add shallow_find_files helper function to run-make-support 2024-07-04 10:05:56 -04:00
Oneirical
b167a15d64 rewrite rmeta-preferred to rmake 2024-07-04 10:05:56 -04:00
Oneirical
5e23dfea9d rewrite and rename issue-40535 to rmake 2024-07-04 10:05:55 -04:00
Oneirical
651f02363d rewrite optimization-remarks-dir to rmake 2024-07-04 10:05:37 -04:00
Oneirical
73d7dc7f22 rewrite optimization-remarks-dir-pgo to rmake 2024-07-04 10:05:37 -04:00
Oneirical
40cad01f2f rewrite and rename include_bytes_deps to rmake 2024-07-04 10:05:37 -04:00
Chris Denton
34860a56f0
Update windows-bindgen to 0.58.0 2024-07-04 12:18:38 +00:00
bors
e2cf31a614 Auto merge of #127120 - Kobzol:bootstrap-cmd-refactor-3, r=onur-ozkan
Bootstrap command refactoring: consolidate output modes (step 3)

This PR is a continuation to https://github.com/rust-lang/rust/pull/126731. It consolidates the output modes of bootstrap (`Print` vs `CaptureAll` vs `CaptureStdout`) and simplifies the logic around error printing (now a command error is always printed if the failure is not ignored). It also ports even more usages of `Command` to `BootstrapCommand`, most notably the git helpers and many usages of the `output` function.

The last commit was added because the third commit made two variants of the `Tool` enum unused (no idea why, but it seems to have been a false positive that they were used before).

It can be reviewed now, but I would wait with merging until at least a few days after https://github.com/rust-lang/rust/pull/126731, just to catch any potential issues from that PR before we move further.

As a next step, I want to clean up the API of the command a little bit to make usage easier (currently it's a bit verbose), and then continue with the rest of the tasks from the tracking issue.

As always, best reviewed commit by commit.

Tracking issue: https://github.com/rust-lang/rust/issues/126819

r? `@onur-ozkan`

try-job: aarch64-apple
2024-07-04 10:54:22 +00:00
bors
a3460e23ea Auto merge of #3732 - JoJoDeveloping:tree-borrows-protector-end-write, r=RalfJung
TB: Refine protector end semantics

Tree Borrows has protector end tag semantics, namely that protectors ending cause a [special implicit read](https://perso.crans.org/vanille/treebor/diff.0.html) on all locations protected by that protector that have actually been accessed. See also #3067.

While this is enough for ensuring protectors allow adding/reordering reads, it does not prove that one can reorder writes. For this, we need to make this stronger, by making this implicit read be a write in cases when there was a write to the location protected by that protector, i.e. if the permission is `Active`.

There is a test that shows why this behavior is necessary, see `tests/fail/tree_borrows/protector-write-lazy.rs`.
2024-07-04 10:31:24 +00:00
Johannes Hostert
02bec40930
TB: protector end semantics never causes immediate UB 2024-07-04 12:20:14 +02:00
yukang
87b741549c trivial update on tidy bless note 2024-07-04 10:07:22 +00:00
Johannes Hostert
0a86e79664
Add UI test for protector end write semantics 2024-07-04 12:05:33 +02:00
Johannes Hostert
8ef2c6c6af
TB: Make FnEntry access on protected locations be a write under certain circumstances 2024-07-04 12:05:23 +02:00
schvv31n
12f29e991a added built-in var to jsondocck 2024-07-04 10:18:57 +01:00
Guillaume Gomez
1471532131 Allow to have different types for arguments of Rustc::remap_path_prefix 2024-07-04 11:07:19 +02:00
Jakub Beránek
c198c0e6d0 Do not consider LLDB version to be valid if it is empty
When dry run is enabled, the command for finding LLDB version would succeed, but return an empty string. This was inadvertently enabling a code path that should only be executed when the LLDB is actually present and its version is valid. This commit makes sure that if the version is empty, LLDB will be considered not found.
2024-07-04 10:10:30 +02:00
Jacob Pratt
1b1b745df4
Rollup merge of #127289 - aDotInTheVoid:rustdoc-json-lt, r=GuillaumeGomez
rustdoc-json: Better representation of lifetime bounds in where clauses.

As suggested [on zulip][1] (CC `@its-the-shrimp),` there's no need to use `GenericBound` here, as the only bound a lifetime can have is that it outlives other lifetimes.

While we're making breaking changes here, I also renamed it from using "region" to "lifetime", as this is more user-aligned. See [this comment][2] for details.

[1]: https://rust-lang.zulipchat.com/#narrow/stream/266220-t-rustdoc/topic/.60ItemEnum.3A.3AOpaqueTy.60/near/448871430
[2]: https://github.com/rust-lang/rust/issues/100961#issuecomment-2206565556

r? `@GuillaumeGomez`
2024-07-04 04:09:51 -04:00
Jacob Pratt
726b9b7c27
Rollup merge of #127287 - aDotInTheVoid:jsondocck-index, r=GuillaumeGomez
jsondocck: Use correct index for error message.

If you misused a count command like ``@count` $some.selector '"T'"`, you would panic with OOB:

```
thread 'main' panicked at src/tools/jsondocck/src/main.rs:76:92:
index out of bounds: the len is 2 but the index is 2
```

This is because 57c85bd97d removed the file param, but didn't update the error case. We now error with:

```
Invalid command: Second argument to `@count` must be a valid usize (got `"T"`) on line 20
```

As some point I want to rewrite this code to avoid indexing in general, but this is a nice small fix.

r? `@GuillaumeGomez`
2024-07-04 04:09:50 -04:00
Esteban Küber
a06a18a47f Properly handle removal suggestion rendering
Do not leave a `+ ` line with only whitespace. In reality, the user will want to remove the entire line.
2024-07-04 05:04:48 +00:00
The Miri Cronjob Bot
d24bfd48b2 Merge from rustc 2024-07-04 05:01:57 +00:00
The Miri Cronjob Bot
5c2946a4be Preparing for merge from rustc 2024-07-04 04:54:26 +00:00
bors
66b4f0021b Auto merge of #127127 - notriddle:notriddle/pulldown-cmark-0.11, r=GuillaumeGomez
rustdoc: update to pulldown-cmark 0.11

r? rustdoc

This pull request updates rustdoc to the latest version of pulldown-cmark. Along with adding new markdown extensions (which this PR doesn't enable), the new pulldown-cmark version also fixes a large number of bugs. Because all text files successfully parse as markdown, these bugfixes change the output, which can break people's existing docs.

A crater run, https://github.com/rust-lang/rust/pull/121659, has already been run for this change.

The first commit upgrades and fixes rustdoc. The second commit adds a lint for the footnote and block quote parser changes, which break the largest numbers of docs in the Crater run. The strikethrough change was mitigated in pulldown-cmark itself.

Unblocks https://github.com/rust-lang/rust-clippy/pull/12876
2024-07-04 01:50:31 +00:00
Esteban Küber
140392b041 Adjust rustdoc automatic link suggestion
Use more accurate spans for multipart suggestion.
2024-07-04 00:40:04 +00:00
bors
b45401283f Auto merge of #127296 - matthiaskrgr:rollup-1t1isa7, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #127092 (Change return-type-notation to use `(..)`)
 - #127184 (More refactorings to rustc_interface)
 - #127190 (Update LLVM submodule)
 - #127253 (Fix incorrect suggestion for extra argument with a type error)
 - #127280 (Disable rmake test rustdoc-io-error on riscv64gc-gnu)
 - #127294 (Less magic number for corountine)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-07-03 23:25:24 +00:00
Matthias Krüger
77fa597079
Rollup merge of #127190 - DianQK:llvm-backport, r=nikic
Update LLVM submodule

Fixes #112548 and unlock #125642.

r? ``@cuviper`` or ``@nikic``
2024-07-03 23:30:08 +02:00
Matthias Krüger
33e9f25e91
Rollup merge of #127092 - compiler-errors:rtn-dots-redux, r=estebank
Change return-type-notation to use `(..)`

Aligns the syntax with the current wording of [RFC 3654](https://github.com/rust-lang/rfcs/pull/3654). Also implements rustfmt support (along with making a match exhaustive).

Tracking:
* https://github.com/rust-lang/rust/issues/109417
2024-07-03 23:30:07 +02:00
bors
aa1d4f6826 Auto merge of #127044 - Oneirical:fantestic-journey, r=Kobzol,jieyouxu
Migrate `dylib-chain`, `rlib-chain`, `issue-47384`, `msvc-opt-minsize` and `test-harness` `run-make` tests to ui/rmake

Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).

try-job: x86_64-msvc
try-job: aarch64-apple
2024-07-03 21:10:31 +00:00
Alona Enraght-Moony
7e8aac553e rustdoc-json: Better representation of lifetime bounds in where clauses.
As suggested [on zulip][1], there's no need to use `GenericBound` here,
as the only bound a lifetime can have is that it outlives other
lifetimes.

While we're making breaking changes here, I also renamed it from using
"region" to "lifetime", as this is more user-aligned. See [this
comment][2] for details.

[1]: https://rust-lang.zulipchat.com/#narrow/stream/266220-t-rustdoc/topic/.60ItemEnum.3A.3AOpaqueTy.60/near/448871430
[2]: https://github.com/rust-lang/rust/issues/100961#issuecomment-2206565556
2024-07-03 20:00:56 +00:00
Alona Enraght-Moony
ccc8baf08a jsondocck: Use correct index for error message.
If you misused a count command like `@count $some.selector '"T'"`, you would panic with OOB:

```
thread 'main' panicked at src/tools/jsondocck/src/main.rs:76:92:
index out of bounds: the len is 2 but the index is 2
```

Fixing this typo, we now get.

```
Invalid command: Second argument to @count must be a valid usize (got `"T"`) on line 20
```

As some point I want to rewrite this code to avoid indexing in general, but this is a nice small fix.
2024-07-03 19:38:19 +00:00
Jakub Beránek
54952b4445 Rebase on master 2024-07-03 21:14:46 +02:00
Jakub Beránek
b618fea358 Simplify and generalize implementation of output mode 2024-07-03 21:13:56 +02:00
Jakub Beránek
b90129dd21 Review changes 2024-07-03 21:13:55 +02:00
Jakub Beránek
70b6e04452 Handle execution of dry run commands 2024-07-03 21:13:55 +02:00