Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Give tidy the good news about C-SKY #125702

Merged
merged 3 commits into from
May 30, 2024

Conversation

workingjubilee
Copy link
Member

It seems this was overlooked in #125472 because we don't test C-SKY much yet.

Fixes #125697

r? @erikdesjardins

@rustbot
Copy link
Collaborator

rustbot commented May 29, 2024

Failed to set assignee to erikdesjardins: invalid assignee

Note: Only org members with at least the repository "read" role, users with write permissions, or people who have commented on the PR may be assigned.

@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels May 29, 2024
@workingjubilee
Copy link
Member Author

:ferrisCluelesser:

r? bootstrap

@Kobzol
Copy link
Contributor

Kobzol commented May 29, 2024

r? @Kobzol

@bors r+

@bors
Copy link
Contributor

bors commented May 29, 2024

📌 Commit 084f058 has been approved by Kobzol

It is now in the queue for this repository.

@rustbot rustbot assigned Kobzol and unassigned Mark-Simulacrum May 29, 2024
@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 29, 2024
@lqd
Copy link
Member

lqd commented May 29, 2024

Can the test be re-enabled?

// FIXME: disabled since it fails on CI saying the csky component is missing
/* revisions: csky
[csky] compile-flags: --target csky-unknown-linux-gnuabiv2
[csky] needs-llvm-components: csky
*/

@RalfJung
Copy link
Member

Can you also enable csky in tests/ui/abi/compatibility.rs so we can tell whether this actually works? In the past there was some trouble with this component, but the details are lost to github deleting all our logfiles...

@RalfJung
Copy link
Member

@bors r-

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels May 29, 2024
@workingjubilee
Copy link
Member Author

I believe the problem with CSKY was that when we supported sufficiently early-enough versions of LLVM, those ones didn't have the actual component in them.

@workingjubilee
Copy link
Member Author

Since the change to LLVM 18 and the dropping of an old LLVM version have happened since last November, the logfiles would have been misinforming you anyways.

@workingjubilee
Copy link
Member Author

It passes locally, and I was able to make the test emit a compile error for specifically the csky revision, so it is in fact building it.

@RalfJung
Copy link
Member

RalfJung commented May 29, 2024

Yeah the test already passed locally back then (and I did verify that it was being run). But then somehow on CI the test failed.

I believe the problem with CSKY was that when we supported sufficiently early-enough versions of LLVM, those ones didn't have the actual component in them.

That doesn't explain it though -- the test had the needs-component line, so if the LLVM on CI does not have csky it should have skipped the test. Maybe our implementation of needs-component is buggy...

@workingjubilee workingjubilee added the O-csky Target: glaCSKY above covers over me~ label May 29, 2024
@workingjubilee
Copy link
Member Author

Maybe our implementation of needs-component is buggy...

do you really think people would really do that? just go out on the internet and write bugs in their test code? :^)

@lqd
Copy link
Member

lqd commented May 29, 2024

LLVM component shenanigans and unclear CI requirements could mess a rollup, @bors r=Kobzol,lqd rollup=iffy

@bors
Copy link
Contributor

bors commented May 29, 2024

📌 Commit 81bc4d0 has been approved by Kobzol,lqd

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels May 29, 2024
@Kobzol
Copy link
Contributor

Kobzol commented May 29, 2024

There was some weird csky behavior in #125141. The x86_64-gnu-llvm-17 job was outputting

error: could not create LLVM TargetMachine for triple: csky-unknown-linux-gnuabiv2: No available targets are compatible with triple "csky-unknown-linux-gnuabiv2"

in tests/run-make/print-target-list. The test was obviously succeeding before this PR, but somehow unrelated changes from the PR somehow also broke csky (?). Or maybe the error is swallowed because of some test bug 🤷

@lqd
Copy link
Member

lqd commented May 29, 2024

We'll see what the PR builder says about this one.

We could also take a look at CI's record of tests results with their ignore reason, if we have it until that far back, and check for csky there.

bors added a commit to rust-lang-ci/rust that referenced this pull request May 29, 2024
… r=Kobzol,lqd

Give tidy the good news about C-SKY

It seems this was overlooked in rust-lang#125472 because we don't test C-SKY much yet.

Fixes rust-lang#125697

r? `@erikdesjardins`
@nikic
Copy link
Contributor

nikic commented May 29, 2024

We should unset COMPILETEST_NEEDS_ALL_LLVM_COMPONENTS for the llvm-N jobs.

@RalfJung
Copy link
Member

Oh, so on CI we actually ignore the needs-llvm-component part and run the test anyway?
That should be documented and mentioned in the error message, it is very confusing.
But it is good to know that we actually enforce that the test runs somewhere. If we unset COMPILETEST_NEEDS_ALL_LLVM_COMPONENTS, will the test be run anywhere at all?

@nikic
Copy link
Contributor

nikic commented May 29, 2024

We don't run the test, but we check that all components are present in CI test runs. And yes, the test will get run on builders using our own LLVM. But we don't control which targets Ubuntu's LLVM includes, so we shouldn't use the option there.

@RalfJung
Copy link
Member

RalfJung commented May 29, 2024

We don't run the test, but we check that all components are present in CI test runs.

If the component is present, then we also run the test, no?
Doesn't this mean the new check in #125472 is unnecessary, we would already have noticed when someone adds a non-existing component?

#125710 should help clarify the error we are seeing here.

But we don't control which targets Ubuntu's LLVM includes, so we shouldn't use the option there.

Ah so there are still other runners where COMPILETEST_NEEDS_ALL_LLVM_COMPONENTS is set?

@nikic
Copy link
Contributor

nikic commented May 29, 2024

Doesn't this mean the new check in #125472 is unnecessary, we would already have noticed when someone adds a non-existing component?

Yes-ish. I believe CI would fail, but having it in tidy is probably still a nice convenience to catch the issue during local development and PR CI already.

Ah so there are still other runners where COMPILETEST_NEEDS_ALL_LLVM_COMPONENTS is set?

See

rust/src/ci/run.sh

Lines 172 to 176 in 5870f1c

# Unless we're using an older version of LLVM, check that all LLVM components
# used by tests are available.
if [ "$IS_NOT_LATEST_LLVM" = "" ]; then
export COMPILETEST_NEEDS_ALL_LLVM_COMPONENTS=1
fi
. It's currently set unless IS_NOT_LATEST_LLVM which is only set for the llvm-17 job. It's enabled everywhere else.

@bors
Copy link
Contributor

bors commented May 29, 2024

☔ The latest upstream changes (presumably #125695) made this pull request unmergeable. Please resolve the merge conflicts.

@workingjubilee
Copy link
Member Author

I am simply going to move the logic under $EXTERNAL_LLVM, since the answer to "does this LLVM have the components we need?" is "well, did we build it with them?"

@rustbot rustbot added the T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. label May 29, 2024
We want to only demand that we check for all components we expect
if we actually built the components we expect, which means
we built the LLVM. Otherwise, it isn't worth checking.
@nikic
Copy link
Contributor

nikic commented May 29, 2024

@bors r+

@bors
Copy link
Contributor

bors commented May 29, 2024

📌 Commit 60c30f5 has been approved by nikic

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 29, 2024
@bors
Copy link
Contributor

bors commented May 29, 2024

⌛ Testing commit 60c30f5 with merge 23ea77b...

@bors
Copy link
Contributor

bors commented May 30, 2024

☀️ Test successful - checks-actions
Approved by: nikic
Pushing 23ea77b to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label May 30, 2024
@bors bors merged commit 23ea77b into rust-lang:master May 30, 2024
7 checks passed
@rustbot rustbot added this to the 1.80.0 milestone May 30, 2024
@workingjubilee workingjubilee deleted the tell-tidy-about-csky branch May 30, 2024 00:57
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (23ea77b): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary -0.5%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
3.8% [2.2%, 5.4%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.2% [-3.1%, -1.4%] 5
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.5% [-3.1%, 5.4%] 7

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 666.699s -> 669.162s (0.37%)
Artifact size: 318.90 MiB -> 318.80 MiB (-0.03%)

@erikdesjardins
Copy link
Contributor

erikdesjardins commented Jun 3, 2024

Hmm, I didn't realize that this was already caught in (non-PR) CI.

I'm inclined to revert the original PR. It's a rare enough issue that it just needs to be caught somehow, and it shouldn't be a huge issue that it takes a bors run to do so.

bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 17, 2024
Revert "tidy: validate LLVM component names in tests"

This reverts rust-lang#125472.

This has already caused a [bit](rust-lang#125702) of [trouble](rust-lang#125710), and I was mistaken about the original motivation--incorrect component names [_will_](rust-lang#125702 (comment)) be detected by a full CI run.

I no longer think it pulls its weight.

r? `@workingjubilee`
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request Nov 18, 2024
Revert "tidy: validate LLVM component names in tests"

This reverts #125472.

This has already caused a [bit](rust-lang/rust#125702) of [trouble](rust-lang/rust#125710), and I was mistaken about the original motivation--incorrect component names [_will_](rust-lang/rust#125702 (comment)) be detected by a full CI run.

I no longer think it pulls its weight.

r? `@workingjubilee`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. O-csky Target: glaCSKY above covers over me~ S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot write tests that need the csky backend