Commit Graph

259719 Commits

Author SHA1 Message Date
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
Ding Xiang Fei 0b4edb2487
reject SmartPointer constructions not serving the purpose 2024-07-04 16:41:23 +08:00
bors 9ffe52e05b Auto merge of #127305 - jhpratt:rollup-3p5wf3h, r=jhpratt
Rollup of 5 pull requests

Successful merges:

 - #126792 (wasm64 build with target-feature=+simd128,+atomics)
 - #127195 (Remove unqualified form import of io::Error in process_vxworks.rs and fallback on remove_dir_impl for vxworks)
 - #127287 (jsondocck: Use correct index for error message.)
 - #127289 (rustdoc-json: Better representation of lifetime bounds in where clauses.)
 - #127303 (chore: remove repeat words)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-07-04 08:36:35 +00: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 71ea0b9535
Rollup merge of #127303 - cuishuang:master, r=jhpratt
chore: remove repeat words
2024-07-04 04:09:51 -04: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
Jacob Pratt 5712539a62
Rollup merge of #127195 - biabbas:vxworks_cleanup, r=jhpratt
Remove unqualified form import of io::Error in process_vxworks.rs and fallback on remove_dir_impl for vxworks

Hi all,
This is to address issue #127084. On inspections it was found that io::Error refrences were all of qualified form and there was no need to add a unqualified form import. Also to successfully build rust for vxworks, we need to fallback on the remove_impl_dir implementations.

Thank you.
2024-07-04 04:09:49 -04:00
Jacob Pratt 6cf34c0cfd
Rollup merge of #126792 - wooden-worm:master, r=Mark-Simulacrum
wasm64 build with target-feature=+simd128,+atomics

Fixes https://github.com/rust-lang/rust/issues/126778
2024-07-04 04:09:49 -04:00
cuishuang b50e915578 chore: remove repeat words
Signed-off-by: cuishuang <imcusg@gmail.com>
2024-07-04 14:56:08 +08:00
bors 486bc278ab Auto merge of #127293 - ldm0:ldm_coroutine, r=saethlin
Use `IndexVec` for coroutine local mapping

Resolves a old FIXME
2024-07-04 06:18:55 +00:00
Esteban Küber a5e7da0cf6 Tweak raw-pointer field access and array indexing suggestions 2024-07-04 06:06:33 +00:00
Esteban Küber 8ea1066fe6 Tweak slice and as_deref suggestion span
Use multispan suggestion.
2024-07-04 05:50:21 +00:00
Esteban Küber ff92ab0903 More accurate mutability suggestion 2024-07-04 05:36:34 +00:00
Esteban Küber 2699d8108c Use shorter span for float literal suggestion 2024-07-04 05:19:35 +00:00
tison 57e76d4596
impl PathBuf::add_extension and Path::with_added_extension
Signed-off-by: tison <wander4096@gmail.com>
2024-07-03 22:12:55 -07:00
bors 4a4a81aec4 Auto merge of #3731 - rust-lang:rustup-2024-07-04, r=saethlin
Automatic Rustup
2024-07-04 05:11:57 +00: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
Esteban Küber 9344779f71 Fix `&mut` removal suggestion 2024-07-04 04:36:52 +00:00
bors f6fa358a18 Auto merge of #127226 - mat-1:optimize-siphash-round, r=nnethercote
Optimize SipHash by reordering compress instructions

This PR optimizes hashing by changing the order of instructions in the sip.rs `compress` macro so the CPU can parallelize it better. The new order is taken directly from Fig 2.1 in [the SipHash paper](https://eprint.iacr.org/2012/351.pdf) (but with the xors moved which makes it a little faster). I attempted to optimize it some more after this, but I think this might be the optimal instruction order. Note that this shouldn't change the behavior of hashing at all, only statements that don't depend on each other were reordered.

It appears like the current order hasn't changed since its [original implementation from 2012](fada46c421 (diff-b751133c229259d7099bbbc7835324e5504b91ab1aded9464f0c48cd22e5e420R35)) which doesn't look like it was written with data dependencies in mind.

Running `./x bench library/core --stage 0 --test-args hash` before and after this change shows the following results:

Before:
```
benchmarks:
    hash::sip::bench_bytes_4             7.20/iter +/- 0.70
    hash::sip::bench_bytes_7             9.01/iter +/- 0.35
    hash::sip::bench_bytes_8             8.12/iter +/- 0.10
    hash::sip::bench_bytes_a_16         10.07/iter +/- 0.44
    hash::sip::bench_bytes_b_32         13.46/iter +/- 0.71
    hash::sip::bench_bytes_c_128        37.75/iter +/- 0.48
    hash::sip::bench_long_str          121.18/iter +/- 3.01
    hash::sip::bench_str_of_8_bytes     11.20/iter +/- 0.25
    hash::sip::bench_str_over_8_bytes   11.20/iter +/- 0.26
    hash::sip::bench_str_under_8_bytes   9.89/iter +/- 0.59
    hash::sip::bench_u32                 9.57/iter +/- 0.44
    hash::sip::bench_u32_keyed           6.97/iter +/- 0.10
    hash::sip::bench_u64                 8.63/iter +/- 0.07
```
After:
```
benchmarks:
    hash::sip::bench_bytes_4             6.64/iter +/- 0.14
    hash::sip::bench_bytes_7             8.19/iter +/- 0.07
    hash::sip::bench_bytes_8             8.59/iter +/- 0.68
    hash::sip::bench_bytes_a_16          9.73/iter +/- 0.49
    hash::sip::bench_bytes_b_32         12.70/iter +/- 0.06
    hash::sip::bench_bytes_c_128        32.38/iter +/- 0.20
    hash::sip::bench_long_str          102.99/iter +/- 0.82
    hash::sip::bench_str_of_8_bytes     10.71/iter +/- 0.21
    hash::sip::bench_str_over_8_bytes   11.73/iter +/- 0.17
    hash::sip::bench_str_under_8_bytes  10.33/iter +/- 0.41
    hash::sip::bench_u32                10.41/iter +/- 0.29
    hash::sip::bench_u32_keyed           9.50/iter +/- 0.30
    hash::sip::bench_u64                 8.44/iter +/- 1.09
```
I ran this on my computer so there's some noise, but you can tell at least `bench_long_str` is significantly faster (~18%).

Also, I noticed the same compress function from the library is used in the compiler as well, so I took the liberty of copy-pasting this change to there as well.

Thanks `@semisol` for porting SipHash for another project which led me to notice this issue in Rust, and for helping investigate. <3
2024-07-04 04:03:45 +00:00
Esteban Küber f63d2bc657 Better suggestion span for missing type parameter 2024-07-04 02:41:13 +00:00
Esteban Küber 89ecae5d85 Better span for "make binding mutable" suggestion 2024-07-04 02:02:21 +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
The 8472 f21683432b stir the hash state a little to avoid prefix collisions 2024-07-04 01:03:25 +02:00
Matthias Krüger 79bdb89a4a
Rollup merge of #127294 - ldm0:ldm_coroutine2, r=lcnr
Less magic number for corountine
2024-07-03 23:30:10 +02:00
Matthias Krüger 00765e193b
Rollup merge of #127280 - ferrocene:hoverbear/disable-rmake-rustdoc-io-error, r=jieyouxu
Disable rmake test rustdoc-io-error on riscv64gc-gnu

In https://github.com/rust-lang/rust/pull/126917 we disabled `inaccessible-temp-dir` on `riscv64gc-gnu` because the container runs the build as `root` (just like the `armhf-gnu` builds). Tests creating an inaccessible test directory are not possible, since `root` can always touch those directories.

553a69030e/src/ci/docker/host-x86_64/disabled/riscv64gc-gnu/Dockerfile (L99)

This means the tests are run as `root`. As `root`, it's perfectly normal and reasonable to violate permission checks this way:

```bash
$ sudo mkdir scratch
$ sudo chmod o-w scratch
$ sudo mkdir scratch/backs
$
```

Because of this, this PR makes the test ignored on `riscv64gc` (just like on `armhf-gnu`) for now.

As an alternative, I believe the best long-term strategy would be to not run the tests as `root` for this job. Some preliminary exploration was done in https://github.com/rust-lang/rust/pull/126917#issuecomment-2189933970, however that appears a larger lift.

## Testing

> [!NOTE]
> `riscv64gc-unknown-linux-gnu` is a [**Tier 2 with Host Tools** platform](https://doc.rust-lang.org/beta/rustc/platform-support.html), all tests may not necessarily pass! This change should only ignore `inaccessible-temp-dir` and not affect other tests.

You can test out the job locally:

```sh
DEPLOY=1 ./src/ci/docker/run.sh riscv64gc-gnu
```

r? `@jieyouxu`
2024-07-03 23:30:09 +02:00
Matthias Krüger 603130948b
Rollup merge of #127253 - chenyukang:yukang-fix-126246-fn-parameters-check, r=estebank
Fix incorrect suggestion for extra argument with a type error

Fixes #126246

I tried to fix it in the `find_errors` of ArgMatrix, but seems it's hard to avoid breaking some other test cases.

The root cause is we eliminate the first argument even with a type error at here:
6292b2af62/compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs (L664)

So the left argument is always treated as extra one.

But if there is already a type error, an error message will be generated firstly, which make this issue a trivial one.
2024-07-03 23:30:08 +02: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 9f8cf64105
Rollup merge of #127184 - bjorn3:interface_refactor2, r=Nadrieril
More refactorings to rustc_interface

Follow up to https://github.com/rust-lang/rust/pull/126834
2024-07-03 23:30:07 +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
Liu Dingming 4930937960 Less magic number for corountine 2024-07-04 05:13:35 +08: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
Liu Dingming a9194f30eb Use `IndexVec` for coroutine local mapping 2024-07-04 05:09:23 +08:00
Zanie Blue dd509c7a63 Add more test cases for path comparisons 2024-07-03 22:35:10 +02:00
Zanie Blue a7372372f6 Add test case demonstrating equality of paths "foo/bar" and "foobar" 2024-07-03 22:35:10 +02:00
Rémy Rakic 529a3f4ce6 cache type sizes in type-size limit visitor 2024-07-03 20:32:54 +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
Jakub Beránek 60c20bfe0c Refactor command outcome handling
To handle the case of failing to start a `BootstrapCommand`.
2024-07-03 21:13:55 +02:00