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

CI: fix auto builds and make sure that we always have at least a single CI job #124739

Closed
wants to merge 118 commits into from

Conversation

Kobzol
Copy link
Contributor

@Kobzol Kobzol commented May 5, 2024

Fixes CI regression introduced in #124631, which essentially let auto builds get away without a single executed job. Now that everything is managed by the Python script, I removed the hack to enable empty CI jobs, and now this situation will result in an error.

ultrabear and others added 30 commits April 13, 2024 04:15
Allow allow enums like `Result<T, E>` to be used across FFI if the
T/E can be niche optimized and the non-niche-optimized type is FFI safe.
Fields are disallowed so checking the top attribute is enough.
Tests both `T` and `E` for niche variant optimization lints
Couldn't find documentation supporting that single-variant
`#[repr(Rust)]` enums with RHS assigned work as expected with this
change.

```rust
enum Variants {
  A = 17,
} // Would this be zero sized optimized guaranteed?
```
…sion-of-nodejs, r=RalfJung

bump actions/cache to v4

fixes rust-lang#3518.
josh rustc-pull: check that no new root commits get created

A second root was a bad sign in Miri (judging from the description in rust-lang/miri#2583) and seems to be a [bad sign in RA](rust-lang/rust-analyzer#17025 (comment)). So let's add this to the sanity checks.
Handle post-merge comments of AVX2 PR
file descriptors: make write take &mut self
The code is written in a way to support 32-bit iOS and tvOS ARM devices,
for future compatibility even though we currently only have a target for
32-bit iOS ARM.
Use the interpreted program's TZ variable in localtime_r

This requires a bit of wiring and a new dependency, but the tests should correctly pass now regardless of what the host's time zone is.

Fixes rust-lang/miri#3522
Don’t print `Preparing a sysroot` when `-q`/`--quiet` is passed

Resolves rust-lang#3530.

This also fixes a typo in `cargo miri --help` that I found while trying to run the `--print-sysroot` example.
RalfJung and others added 20 commits May 4, 2024 22:44
Co-authored-by: Trevor Gross <[email protected]>

Update library/core/src/primitive_docs.rs

Co-authored-by: Trevor Gross <[email protected]>

Update library/core/src/primitive_docs.rs
Co-authored-by: Jubilee <[email protected]>

Update library/core/src/primitive_docs.rs

Rewrite f16 and f128 hw support comments to match PR feedback

I wrote RISC-V allcaps in all cases, and wrote amd64 lowercase in all
cases, im not sure if either is the more correct way for either
platform, thats just how I normally write them, if theres a precedent
elsewhere it should probably be changed to match though.

Update library/core/src/primitive_docs.rs

Co-authored-by: Jubilee <[email protected]>

Update library/core/src/primitive_docs.rs

Co-authored-by: Jubilee <[email protected]>

Update library/core/src/primitive_docs.rs
Co-authored-by: Jubilee <[email protected]>

Update library/core/src/primitive_docs.rs

Remove orphaned doc link and clean up grammar a bit

Update library/core/src/primitive_docs.rs
…albini

CI: enable arbitrary try builds

This PR should enable running arbitrary try builds with ``@bors` try`. So far there is no support for this in bors! You would need to manually add a special line (see below) to the PR description (this will later be automated with new bors).

try-job: aarch64-gnu
try-job: arm-android

r? `@ghost`
Support Result<T, E> across FFI when niche optimization can be used

Allow allow enums like `Result<T, E>` to be used across FFI if the T/E can be niche optimized and the non-niche-optimized type is FFI safe.

Implementation of rust-lang/rfcs#3391
Tracking issue: rust-lang#110503

Additional ABI and codegen tests were added in rust-lang#115372
…r=Mark-Simulacrum

Implement lldb formattter for "clang encoded" enums (LLDB 18.1+)

## Summary:

fixes rust-lang#79530

I landed a fix last year to enable `DW_TAG_variant_part` encoding in LLDBs (https://reviews.llvm.org/D149213). This PR is a corresponding fix in synthetic formatters to decode that information.

This is in no way perfect implementation but at least it improves the status quo. But most types of enums will be visible and debuggable in some way.

I've also updated most of the existing tests that touch enums and re-enabled test cases based on LLDB for enums.

## Test Plan:
ran tests `./x test tests/debuginfo/`. Also tested manually in LLDB CLI and LLDB VSCode

## Other Thoughs:
A better approach would probably be adopting [formatters from codelldb](https://github.com/vadimcn/codelldb/blob/master/formatters/rust.py). There is some neat hack that hooks up summary provider via synthetic provider which can ultimately fix more display issues for Rust types and enums too. But getting it to work well might take more time that I have right now.
Stabilize exclusive_range_pattern

Stabilization report: rust-lang#37854 (comment)
FCP: rust-lang#37854 (comment)

Stabilization was blocked by a lint that was merged here: rust-lang#118879

Documentation PR is here: rust-lang/reference#1484

`@rustbot` label +F-exclusive_range_pattern +T-lang
…Mark-Simulacrum

Fix unwinding on 32-bit watchOS ARM

Found while doing rust-lang#124491, I wanted to unify the code under `target_vendor = "apple"`, and found that [Clang actually specifies that watchOS ARM 32-bit does not use SjLj](https://github.com/llvm/llvm-project/blob/llvmorg-18.1.4/clang/lib/Driver/ToolChains/Darwin.cpp#L3107-L3119).

I don't have an Apple Watch from that generation at hand to test this myself (series 1 to 3), and I don't think it will be sufficient to test it in the simulator (as it's architecture-specific), so maybe someone else could do so?

N.B. The code is written in a way to support 32-bit iOS and tvOS ARM devices (which do use SjLj) for future compatibility even though we currently only have a target for 32-bit iOS ARM (if you think that's excessive, then I'll change it).

CC target maintainers `@deg4uss3r,` `@vladimir-ea,` `@leohowell.`
CC `@simlay,` `@thomcc` whom might have more insight into this than I.

`@rustbot` label O-watchos
…workingjubilee

Document That `f16` And `f128` Hardware Support is Limited

This adds a small paragraph to the recently added f16 and f128 types explaining that hardware support may be limited, and that performance may suffer as a result of that.

I mainly wrote this because I felt it may be useful to express in some form; as a launchpoint for readers of the documentation if they have issues with performance.

I tried to word the documentation in a way that doesn't create false assumptions (that f16/f128 is too slow to use, for instance), removing the software implementation part could mislead people to thinking that f16/f128 is only available on some platforms, not all, so I believe it is important to keep in.\
"not all *major* platforms" is specifically said so as to not be redundant, because not all platforms implement many things, but the average rustacean is probably going to be using x86_64 or aarch64 derived ISA's, which is who this documentation is targeted towards.

I'm not sure of the best way to word the documentation, or if it should even be added, but I feel like it may be useful to have (potentially in a reworded way, I'm not very confident in the current wording and cannot decide if that is because it is too vague to be useful or too specific to be generally correct).
…ool, r=jieyouxu

Migrate `run-make/doctests-runtool` to rmake

Part of rust-lang#121876.

The first commit is making the `edition` method common to `Rustc` and `Rustdoc` as I'll need it for the doctest in rust-lang#123974.

r? `@jieyouxu`
@rustbot
Copy link
Collaborator

rustbot commented May 5, 2024

r? @Mark-Simulacrum

rustbot has assigned @Mark-Simulacrum.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@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-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels May 5, 2024
@rust-log-analyzer
Copy link
Collaborator

The job mingw-check failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
downloading https://ci-artifacts.rust-lang.org/rustc-builds-alt/69ffc0d3a3c619009bcb27b8f61d810e27b12612/rust-dev-nightly-x86_64-unknown-linux-gnu.tar.xz
curl: (22) The requested URL returned error: 404
ERROR: failed to download llvm from ci

    HELP: There could be two reasons behind this:
        1) The host triple is not supported for `download-ci-llvm`.
        2) Old builds get deleted after a certain time.
    HELP: In either case, disable `download-ci-llvm` in your config.toml:
    [llvm]
    download-ci-llvm = false
    
Build completed unsuccessfully in 0:00:01

@Kobzol
Copy link
Contributor Author

Kobzol commented May 5, 2024

Closing in favour of #124743.

@Kobzol Kobzol closed this May 5, 2024
@Kobzol Kobzol deleted the fix-auto-build branch May 5, 2024 12:10
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 S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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.