Commit graph

153104 commits

Author SHA1 Message Date
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
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
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
许杰友 Jieyou Xu (Joe)
40ca4d8cd3 Special case error message for a build-fail test that failed check build 2024-10-13 15:59:55 +08:00
Zalathar
3c6ed4e541 Move debugger setup code out of lib.rs 2024-10-13 17:55:46 +11:00
Trevor Gross
ef96679505
Rollup merge of #131358 - onur-ozkan:129528, r=Mark-Simulacrum
force "HEAD" for non-CI and `git_upstream_merge_base` for CI environment

When rust-lang/rust is configured as remote, some of the git logic (for tracking changed files) that uses get_closest_merge_commit starts to produce annoying results as the upstream branch becomes outdated quickly (since it isn't updated with git pull). We can rely on HEAD for non-CI environments as we specifically treat bors commits as merge commits, which also exist on upstream. As for CI environments, we should use `git_upstream_merge_base` to correctly track modified files as bors commits may be in `HEAD` but not yet on the upstream remote.

This is also an alternative fix for https://github.com/rust-lang/rust/issues/129528 since https://github.com/rust-lang/rust/pull/131331 reverts the previous fix attempts.
2024-10-12 21:38:36 -05:00
Trevor Gross
d576cdda7e
Rollup merge of #131334 - heiher:loong-sanitizers, r=Mark-Simulacrum
Enable sanitizers for loongarch64-unknown-*

Enable sanitizers for `loongarch64-unknown-linux-{gnu,musl,ohos}` targets.
2024-10-12 21:38:35 -05:00
Trevor Gross
c8b2f7e458
Rollup merge of #131120 - tgross35:stabilize-const_option, r=RalfJung
Stabilize `const_option`

This makes the following API stable in const contexts:

```rust
impl<T> Option<T> {
    pub const fn as_mut(&mut self) -> Option<&mut T>;
    pub const fn expect(self, msg: &str) -> T;
    pub const fn unwrap(self) -> T;
    pub const unsafe fn unwrap_unchecked(self) -> T;
    pub const fn take(&mut self) -> Option<T>;
    pub const fn replace(&mut self, value: T) -> Option<T>;
}

impl<T> Option<&T> {
    pub const fn copied(self) -> Option<T>
    where T: Copy;
}

impl<T> Option<&mut T> {
    pub const fn copied(self) -> Option<T>
    where T: Copy;
}

impl<T, E> Option<Result<T, E>> {
    pub const fn transpose(self) -> Result<Option<T>, E>
}

impl<T> Option<Option<T>> {
    pub const fn flatten(self) -> Option<T>;
}
```

The following functions make use of the unstable `const_precise_live_drops` feature:

- `expect`
- `unwrap`
- `unwrap_unchecked`
- `transpose`
- `flatten`

Fixes: <https://github.com/rust-lang/rust/issues/67441>
2024-10-12 21:38:35 -05:00
许杰友 Jieyou Xu (Joe)
9f0f0352f7 Error on trying to use revisions in run-make tests
Currently `run-make` tests do not support revisions.
2024-10-13 08:29:53 +08:00
Zalathar
f51088021c Remove the one thing that was checking a directive's original_line 2024-10-13 09:41:40 +11:00
Zalathar
4d59c33780 Rename HeaderLine to DirectiveLine 2024-10-13 09:41:39 +11:00
Trevor Gross
19f6c17df4 Stabilize const_option
This makes the following API stable in const contexts:

    impl<T> Option<T> {
        pub const fn as_mut(&mut self) -> Option<&mut T>;
        pub const fn expect(self, msg: &str) -> T;
        pub const fn unwrap(self) -> T;
        pub const unsafe fn unwrap_unchecked(self) -> T;
        pub const fn take(&mut self) -> Option<T>;
        pub const fn replace(&mut self, value: T) -> Option<T>;
    }

    impl<T> Option<&T> {
        pub const fn copied(self) -> Option<T>
        where T: Copy;
    }

    impl<T> Option<&mut T> {
        pub const fn copied(self) -> Option<T>
        where T: Copy;
    }

    impl<T, E> Option<Result<T, E>> {
        pub const fn transpose(self) -> Result<Option<T>, E>
    }

    impl<T> Option<Option<T>> {
        pub const fn flatten(self) -> Option<T>;
    }

The following functions make use of the unstable
`const_precise_live_drops` feature:

- `expect`
- `unwrap`
- `unwrap_unchecked`
- `transpose`
- `flatten`

Fixes: <https://github.com/rust-lang/rust/issues/67441>
2024-10-12 17:07:13 -04:00
Matthias Krüger
d547f2c7eb
Rollup merge of #131277 - ismailarilik:handle-potential-query-instability-lint-for-clippy, r=xFrednet
Handle `clippy` cases of `rustc::potential_query_instability` lint

This PR removes `#![allow(rustc::potential_query_instability)]` line from [`src/tools/clippy/clippy_lints/src/lib.rs`](https://github.com/rust-lang/rust/blob/master/src/tools/clippy/clippy_lints/src/lib.rs#L30) and converts `FxHash{Map,Set}` types into `FxIndex{Map,Set}` to suppress lint errors.

A somewhat tracking issue: https://github.com/rust-lang/rust/issues/84447
2024-10-12 23:00:57 +02:00
Matthias Krüger
ba75f24888
Rollup merge of #130965 - onur-ozkan:bootstrap-step-trait-doc, r=Mark-Simulacrum
make `Step` doc-comments more clear

Aiming to improve complicated `Step` documentation. Once we merge this, I will update [this page](https://rustc-dev-guide.rust-lang.org/building/bootstrapping/how-bootstrap-does-it.html?highlight=Step#synopsis-of--step) too.
2024-10-12 23:00:56 +02:00
bors
6b9676b454 Auto merge of #131612 - tgross35:rollup-zy3yg4p, r=tgross35
Rollup of 7 pull requests

Successful merges:

 - #130870 (Add suggestion for removing invalid path sep `::` in fn def)
 - #130954 (Stabilize const `ptr::write*` and `mem::replace`)
 - #131233 (std: fix stdout-before-main)
 - #131590 (yeet some clones)
 - #131596 (mark InterpResult as must_use)
 - #131597 (Take a display name for `tool_check_step!`)
 - #131605 (`LLVMConstInt` only allows integer types)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-12 18:28:39 +00:00
Trevor Gross
1e0c5ffdf1
Rollup merge of #131597 - jieyouxu:explicit-check-name, r=Kobzol
Take a display name for `tool_check_step!`

The tool build step already takes a display name, make the tool check step also take a display name to better represent the tool name. I.e. instead of `src/tools/cargo-miri` becoming `cargomiri`, it now becomes `cargo-miri`.

Fixes #131592.
2024-10-12 11:08:45 -05:00
bors
e200c7f2e1 Auto merge of #131448 - DianQK:fixes-131164, r=onur-ozkan
Update LLVM submodule

Fixes (maybe after beta backport) #131164.

r? nikic
2024-10-12 15:40:46 +00:00
DianQK
4441a89750
Update LLVM submodule 2024-10-12 21:42:13 +08:00
DianQK
49202c7b47
Ignore the download_ci_llvm test 2024-10-12 21:42:11 +08:00
许杰友 Jieyou Xu (Joe)
52090f0715 Take a display name for tool_check_step! 2024-10-12 19:12:19 +08:00
Ralf Jung
bc4366b099 miri: avoid cloning AllocExtra 2024-10-12 12:14:28 +02:00
onur-ozkan
4454fa998c add new CI step: "setup upstream remote"
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-12 08:58:39 +03:00
onur-ozkan
33ac202904 force "HEAD" for non-CI and git_upstream_merge_base for CI environment
When rust-lang/rust is configured as remote, some of the git
logic (for tracking changed files) that uses get_closest_merge_commit
starts to produce annoying results as the upstream branch becomes outdated
quickly (since it isn't updated with git pull). We can rely on HEAD for
non-CI environments as we specifically treat bors commits as merge commits,
which also exist on upstream. As for CI environments, we should use
`git_upstream_merge_base` to correctly track modified files as bors commits
may be in `HEAD` but not yet on the upstream remote.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-10-12 07:45:24 +03:00
Trevor Gross
5e477c9107
Rollup merge of #131576 - Zalathar:tests-tests, r=jieyouxu
Flatten redundant test module `run_make_support::diff::tests::tests`

This module is already named `tests`, and is already gated by `#[cfg(test)]`, so there's no need for it to also contain `mod tests`.

r? jieyouxu
2024-10-11 23:57:48 -04:00
Trevor Gross
3f9aa50b70
Rollup merge of #124874 - jedbrown:float-mul-add-fast, r=saethlin
intrinsics fmuladdf{32,64}: expose llvm.fmuladd.* semantics

Add intrinsics `fmuladd{f32,f64}`. This computes `(a * b) + c`, to be fused if the code generator determines that (i) the target instruction set has support for a fused operation, and (ii) that the fused operation is more efficient than the equivalent, separate pair of `mul` and `add` instructions.

https://llvm.org/docs/LangRef.html#llvm-fmuladd-intrinsic

The codegen_cranelift uses the `fma` function from libc, which is a correct implementation, but without the desired performance semantic. I think this requires an update to cranelift to expose a suitable instruction in its IR.

I have not tested with codegen_gcc, but it should behave the same way (using `fma` from libc).

---
This topic has been discussed a few times on Zulip and was suggested, for example, by `@workingjubilee` in [Effect of fma disabled](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/Effect.20of.20fma.20disabled/near/274179331).
2024-10-11 23:57:44 -04:00
Zalathar
f4376c426b Avoid cross-file glob import 2024-10-12 11:59:57 +11:00
Zalathar
395b0787d4 Flatten redundant test module run_make_support::diff::tests::tests 2024-10-12 11:54:33 +11:00
bors
fb20e4d3b9 Auto merge of #131573 - tgross35:rollup-r7l182a, r=tgross35
Rollup of 7 pull requests

Successful merges:

 - #130078 (rustdoc-json: change item ID's repr from a string to an int)
 - #131065 (Port sort-research-rs test suite to Rust stdlib tests)
 - #131109 (Stabilize `debug_more_non_exhaustive`)
 - #131287 (stabilize const_result)
 - #131463 (Stabilise `const_char_encode_utf8`.)
 - #131543 (coverage: Remove code related to LLVM 17)
 - #131552 (RustWrapper: adapt for rename of Intrinsic::getDeclaration)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-11 23:57:42 +00:00