Commit graph

153162 commits

Author SHA1 Message Date
c6c7
5d178e1d4d Make fuchsia-test-runner.py compatible with new JSON output from llvm-readelf
[A recent commit in LLVM](ab930ee7ca) modified the JSON output of LLVM. The LLVM change renamed "Notes" to "NoteSections" and inserted a new "Notes" key nested under each "NoteSection".

This change shores up exceptions around reading the JSON output of llvm-readelf and reads from "NoteSections" instead of the non-existent "Notes".
2024-10-15 11:59:01 -04:00
bors
f79fae3069 Auto merge of #131723 - matthiaskrgr:rollup-krcslig, r=matthiaskrgr
Rollup of 9 pull requests

Successful merges:

 - #122670 (Fix bug where `option_env!` would return `None` when env var is present but not valid Unicode)
 - #131095 (Use environment variables instead of command line arguments for merged doctests)
 - #131339 (Expand set_ptr_value / with_metadata_of docs)
 - #131652 (Move polarity into `PolyTraitRef` rather than storing it on the side)
 - #131675 (Update lint message for ABI not supported)
 - #131681 (Fix up-to-date checking for run-make tests)
 - #131702 (Suppress import errors for traits that couldve applied for method lookup error)
 - #131703 (Resolved python deprecation warning in publish_toolstate.py)
 - #131710 (Remove `'apostrophes'` from `rustc_parse_format`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-15 11:50:31 +00:00
bors
00367d523e Auto merge of #131727 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-10-15 08:42:24 +00:00
Matthias Krüger
fb691b470a
Rollup merge of #130635 - eholk:pin-reborrow-sugar, r=compiler-errors
Add `&pin (mut|const) T` type position sugar

This adds parser support for `&pin mut T` and `&pin const T` references. These are desugared to `Pin<&mut T>` and `Pin<&T>` in the AST lowering phases.

This PR currently includes #130526 since that one is in the commit queue. Only the most recent commits (bd450027eb4a94b814a7dd9c0fa29102e6361149 and following) are new.

Tracking:

- #130494

r? `@compiler-errors`
2024-10-15 05:12:34 +02:00
Matthias Krüger
d82a49dba2
Rollup merge of #131703 - alex:patch-1, r=Kobzol
Resolved python deprecation warning in publish_toolstate.py

`utcnow()` is deprecated in favor of passing a timezone to `now()`. `utcnow()` would return a tz-naive datetime, while this returns a tz-aware datetime. For the purposes of the formatting we do, these are the same.
2024-10-15 05:11:39 +02:00
Matthias Krüger
258c17741b
Rollup merge of #131681 - Zalathar:fix-run-make-stamp, r=jieyouxu
Fix up-to-date checking for run-make tests

This special case in `output_base_dir` had the unfortunate side-effect of causing all run-make tests to share the same `stamp` file. So as soon as any one of them succeeded, all of the failed tests would be incorrectly considered up-to-date and would no longer run in subsequent test invocations.

Fixes #129971.

r? jieyouxu
2024-10-15 05:11:38 +02:00
Matthias Krüger
4d53a28cac
Rollup merge of #131652 - compiler-errors:modifiers, r=Nadrieril,jieyouxu
Move polarity into `PolyTraitRef` rather than storing it on the side

Arguably we could move these modifiers into `TraitRef` instead of `PolyTraitRef`, but I see `TraitRef` as simply the *path* part of the trait ref. It doesn't really matter -- refactoring this further is much easier now.
2024-10-15 05:11:37 +02:00
Matthias Krüger
bb2f970604
Rollup merge of #131095 - GuillaumeGomez:switch-to-env-variables, r=notriddle
Use environment variables instead of command line arguments for merged doctests

Fixes [#130796](https://github.com/rust-lang/rust/issues/130796).

Before merging this one, let's first ensure it has a smaller impact compared to command line arguments (results can be seen [here](https://github.com/rust-lang/rust/pull/130285)). I'll start a crater run once CI passed.

cc ``@ehuss``
r? ``@notriddle``
2024-10-15 05:11:36 +02:00
Ralf Jung
413ea993de use new check_min_arg_count helper in more places 2024-10-14 23:37:03 +02:00
bors
b7c06b40e1 Auto merge of #3973 - RalfJung:os-unfair-lock, r=RalfJung
ensure that a macOS os_unfair_lock that is moved while being held is not implicitly unlocked

Fixes https://github.com/rust-lang/miri/issues/3859

We mark an os_unfair_lock that is moved while being held as "poisoned", which means it is not considered forever locked. That's not quite what the real implementation does, but allowing arbitrary moves-while-locked would likely expose a ton of implementation details, so hopefully this is good enough.
2024-10-14 20:47:13 +00:00
Ralf Jung
a802fd9c11 ensure that a macOS os_unfair_lock that is moved while being held is not implicitly unlocked 2024-10-14 22:43:41 +02:00
Ralf Jung
4e14ad6d62 move lazy_sync helper methods to be with InterpCx 2024-10-14 21:59:34 +02:00
bors
2b020bf2cc Auto merge of #3968 - YohDeadfall:variadic-arg-helper, r=RalfJung
Added a variadic argument helper

`@RalfJung,` as you wished (:
2024-10-14 19:39:29 +00:00
Ralf Jung
af98424285 add test ensuring a moved mutex deadlocks 2024-10-14 21:37:34 +02:00
Alex Gaynor
eb6062ce00
Resolved python deprecation warning in publish_toolstate.py
`utcnow()` is deprecated in favor of passing a timezone to `now()`. `utcnow()` would return a tz-naive datetime, while this returns a tz-aware datetime. For the purposes of the formatting we do, these are the same.
2024-10-14 15:27:37 -04:00
Yoh Deadfall
64259a7b8d Added a variadic argument helper 2024-10-14 22:10:27 +03:00
Oli Scherer
1412993757 Avoid some needless monomorphizations 2024-10-14 19:55:50 +02:00
Ralf Jung
ba95d52258 pick more clear names for the types 2024-10-14 17:44:29 +02:00
Ralf Jung
9265a6e467 turns out relaxed accesses suffice here 2024-10-14 17:44:29 +02:00
Ralf Jung
e3cfe456d6 make lazy_sync_get_data also take a closure to initialize if needed 2024-10-14 17:44:29 +02:00
Ralf Jung
0f7d321684 Windows InitOnce: also store ID outside addressable memory 2024-10-14 17:44:29 +02:00
Ralf Jung
8f342edd7c macOS os_unfair_lock: also store ID outside addressable memory 2024-10-14 17:44:29 +02:00
Ralf Jung
17f0aed84c pthread_cond: also store ID outside addressable memory 2024-10-14 17:44:29 +02:00
Ralf Jung
1389bb9114 pthread_rwlock: also store ID outside addressable memory 2024-10-14 17:44:29 +02:00
Ralf Jung
89323bff8b pthread_mutex: store mutex ID outside adressable memory, so it can be trusted 2024-10-14 17:44:29 +02:00
Ralf Jung
543d226589 clippy 2024-10-14 17:09:44 +02:00
Matthias Krüger
53cfc10742
Rollup merge of #131679 - Zalathar:ct-docs, r=jieyouxu
compiletest: Document various parts of compiletest's `lib.rs`

This adds some much-needed comments to many of the items in compiletest's `lib.rs`, giving a better overview of how a compiletest invocation actually proceeds.

To make review easier I have refrained from renames or functional changes, though I couldn't resist getting rid of one obviously-redundant `Arc::clone` in `make_test_closure`.
2024-10-14 17:06:39 +02:00
Ralf Jung
9d579f5358 Merge from rustc 2024-10-14 17:04:43 +02:00
Ralf Jung
5e6170b97f Preparing for merge from rustc 2024-10-14 17:04:30 +02:00
Michael Goulet
95dba280b9 Move trait bound modifiers into ast::PolyTraitRef 2024-10-14 09:20:38 -04:00
Michael Goulet
7500e09b8b Move trait bound modifiers into hir::PolyTraitRef 2024-10-14 09:20:38 -04:00
Zalathar
c6e1fbf8eb Fix up-to-date checking for run-make tests
This special case in `output_base_dir` had the unfortunate side-effect of
causing all run-make tests to share the same `stamp` file. So as soon as any
one of them succeeded, all of the failed tests would be considered up-to-date
and would no longer run in subsequent test invocations.
2024-10-14 22:55:51 +11:00
Zalathar
cec5986439 Document various parts of compiletest's lib.rs 2024-10-14 21:09:48 +11:00
Matthias Krüger
4139018cfb
Rollup merge of #131593 - RalfJung:alloc-no-clone, r=saethlin
miri: avoid cloning AllocExtra

We shouldn't be cloning Miri allocations, so make `AllocExtra::clone` panic instead, and adjust the one case where we *do* clone (the leak check) to avoid cloning.

This is in preparation for https://github.com/rust-lang/miri/pull/3966 where I am adding something to `AllocExtra` that cannot (easily) be cloned.

r? ``@saethlin``
2024-10-14 06:04:29 +02:00
Matthias Krüger
eb060f6507
Rollup merge of #131533 - workingjubilee:update-emscripten-version, r=Kobzol
emscripten: Use the latest emsdk 3.1.68

This should fix our precompiled std being unsound in `std::fs` code.

Should resolve #131467 I hope.
2024-10-14 06:04:28 +02:00
bors
5ceb623a4a Auto merge of #131662 - matthiaskrgr:rollup-r1wkfxw, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #130356 (don't warn about a missing change-id in CI)
 - #130900 (Do not output () on empty description)
 - #131066 (Add the Chinese translation entry to the RustByExample build process)
 - #131067 (Fix std_detect links)
 - #131644 (Clean up some Miri things in `sys/windows`)
 - #131646 (sys/unix: add comments for some Miri fallbacks)
 - #131653 (Remove const trait bound modifier hack)
 - #131659 (enable `download_ci_llvm` test)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-13 22:38:44 +00:00
bors
27861c429a Auto merge of #131560 - cuviper:start-1.84, r=cuviper
Bump to 1.84

https://forge.rust-lang.org/release/process.html#bump-the-stable-version-number-t-6-days-friday-the-week-before

r? ghost
2024-10-13 20:08:57 +00:00
Matthias Krüger
0e00a70e52
Rollup merge of #131659 - onur-ozkan:llvm-test, r=albertlarsan68
enable `download_ci_llvm` test

This was ignored because it caused merge failures on [LLVM update PR](https://github.com/rust-lang/rust/pull/131448). The issue was not checking `is_ci_llvm_available` in the test which is crucial for enabling CI LLVM:

2aa26d8a72/src/bootstrap/src/core/config/config.rs (L2835-L2844)
2024-10-13 18:27:22 +02:00
Matthias Krüger
6bca11ec38
Rollup merge of #131067 - ismailarilik:fix-std-detect-links, r=albertlarsan68
Fix std_detect links

This PR aims to fix this issue: https://github.com/rust-lang/rust/issues/96506

Fixes #96506
2024-10-13 18:27:20 +02:00
Matthias Krüger
05a29714c5
Rollup merge of #131066 - Binlogo:build-doc/rbe-add-zh-entry, r=albertlarsan68
Add the Chinese translation entry to the RustByExample build process

Following the guidelines outlined at [https://github.com/rust-lang/rust-by-example/blob/master/TRANSLATING.md](https://github.com/rust-lang/rust-by-example/blob/master/TRANSLATING.md), I am adding a Chinese translation to Rust by Example. You can view the related pull request here: [https://github.com/rust-lang/rust-by-example/pull/1886#issue-2537891289](https://github.com/rust-lang/rust-by-example/pull/1886#issue-2537891289).

For similar issues and PRs, see [https://github.com/rust-lang/rust/issues/124641](https://github.com/rust-lang/rust/issues/124641) and [https://github.com/rust-lang/rust/pull/124731](https://github.com/rust-lang/rust/pull/124731).
2024-10-13 18:27:20 +02:00
Matthias Krüger
022b327d86
Rollup merge of #130900 - capickett:empty-description-rust-version, r=albertlarsan68
Do not output () on empty description

When passing an explicitly empty description string, as explained here https://github.com/rust-lang/rust/blob/master/config.example.toml#L611-L613, my expectation is that the resulting rustc will be compatible with upstream.

However, it seems that instead, a `()` is added to the end of the version string, causing the version compatibility check to fail. My proposed fix here would be to instead only print `({description})` if `description` is a non-empty string.
2024-10-13 18:27:19 +02:00
Matthias Krüger
1d0c7cf49f
Rollup merge of #130356 - lolbinarycat:ci-no-change-id, r=albertlarsan68
don't warn about a missing change-id in CI

fixes #130352
2024-10-13 18:27:19 +02:00
onur-ozkan
6e6cbdd2df check stage0, channel and version files for CI rustc
These files have important role for compiler builds, so include them
in the "if-unchanged" rustc logic.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-13 07:48:21 -07:00
onur-ozkan
ac20242fbb enable download_ci_llvm test
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-13 17:43:02 +03:00
Matthias Krüger
0fa7101a8d
Rollup merge of #131642 - jieyouxu:build-fail-check-fail, r=Kobzol
Special case error message for a `build-fail` test that failed check build

A `build-fail` test requires that a check build (roughly `--emit=metadata`, no codegen) succeeds but fails later. Previously, if its check build failed, the user will see the error message

```
error: test compilation failed although it shouldn't!
```

which is confusing. Because the test is `build-fail`, we want the test compilation to fail! This error message doesn't account for the difference between a check build and a complete build, so let's special case the error message for a `build-fail` test whose check build failed to instead say

```
error: `build-fail` test is required to pass check build, but check build failed
```

Fixes #130894.
2024-10-13 12:32:19 +02:00
Matthias Krüger
84dd8cdb22
Rollup merge of #131641 - RalfJung:unicode-bitset-static, r=dtolnay
switch unicode-data bitsets back to 'static'

Back in https://github.com/rust-lang/rust/pull/101401, these were changed to `const` to make some functions `const fn`. However, `@dtolnay` was [not happy](https://github.com/rust-lang/rust/issues/101400#issuecomment-1742500968) about this. Meanwhile, `const fn` can access immutable statics like these, so we can change this back.

Part of https://github.com/rust-lang/rust/issues/101400.
2024-10-13 12:32:18 +02:00
Matthias Krüger
29ef664763
Rollup merge of #131638 - Zalathar:debuggers, r=jieyouxu
compiletest: Move debugger setup code out of `lib.rs`

These functions contain a few hundred lines of code for dealing with debuggers (for `debuginfo` tests), and don't really belong in the crate root.

Moving them out to their own module makes `lib.rs` easier to follow.
2024-10-13 12:32:18 +02:00
Matthias Krüger
6d5a133995
Rollup merge of #131614 - jieyouxu:rmake-no-rev, r=Kobzol
Error on trying to use revisions in `run-make` tests

Currently, `run-make` tests do not support revisions.
2024-10-13 12:32:17 +02:00
Matthias Krüger
6e1488be72
Rollup merge of #131585 - Zalathar:original-line, r=jieyouxu
compiletest: Remove the one thing that was checking a directive's `original_line`

This special handling of `ignore-tidy*` was introduced during the migration to `//`@`` directives (#120881), and has become unnecessary after the subsequent removal of the legacy directive check (#131392).
2024-10-13 12:32:17 +02:00
Ralf Jung
90e4f10f6c switch unicode-data back to 'static' 2024-10-13 11:53:06 +02:00