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

Rollup of 5 pull requests #132401

Merged
merged 21 commits into from
Oct 31, 2024
Merged

Rollup of 5 pull requests #132401

merged 21 commits into from
Oct 31, 2024

Commits on Oct 30, 2024

  1. Add lp64e RISC-V ABI

    koute committed Oct 30, 2024
    Configuration menu
    Copy the full SHA
    167350d View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2024

  1. Configuration menu
    Copy the full SHA
    44b720a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c1db011 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    183599f View commit details
    Browse the repository at this point in the history
  4. minicore: add minimal minicore test auxiliary

    The initial `minicore` is intentionally super minimal and contains an
    incomplete subset of `core` items, and explicitly not items from `alloc`
    or `std`-only items.
    jieyouxu committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    82c2e42 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f9ca420 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    74c0c48 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    95d01fc View commit details
    Browse the repository at this point in the history
  8. compiletest: conditionally build and provide minicore as extern pre…

    …lude when requested via `//@ add-core-stubs` directive
    
    `//@ add-core-stubs` will imply `-Cpanic=abort`.
    jieyouxu committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    a737f75 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    59cb59d View commit details
    Browse the repository at this point in the history
  10. tests/assembly: add minicore compiletest self-test

    Check that `minicore` cannot be used with `run-{pass,fail}` tests.
    jieyouxu committed Oct 31, 2024
    Configuration menu
    Copy the full SHA
    b115a22 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    a8b34f5 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    0bbe07e View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    adb6d47 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    8dddd1a View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    3036f4f View commit details
    Browse the repository at this point in the history
  16. Rollup merge of rust-lang#130693 - jieyouxu:minicore, r=bjorn3

    Add `minicore` test auxiliary and support `//@ add-core-stubs` directive in ui/assembly/codegen tests
    
    Context: [Real cross-compiling tests instead of `#![no_core]` silliness rust-lang#130375](rust-lang#130375)
    MCP: rust-lang/compiler-team#786
    Tracking issue: rust-lang#131485
    
    This prototype PR is subject to further changes based on feedback.
    
    ### New `minicore` test auxiliary and `//@ add-core-stubs` compiletest directive
    
    This PR introduces a prototype implementation of a `minicore` auxiliary test helper that provides `core` stubs for `#![no_core]` ui/assembly/codegen tests that need to build but not run on both the host platform and the cross-compiled target platform.
    
    Key summary:
    
    - `tests/auxiliary/minicore.rs` contains stub definitions of `core` items intended for consumption by `check-pass`/`build-pass` tests that want the typical prelude items like `Copy` to be stubbed out under `#![no_core]` scenarios, so that the test can be built (not run) for cross-compiled target platforms. Such tests don't want nor need full `-Z build-std` (e.g. `tests/ui/abi/compatibility.rs`).
    - `minicore` is intended for `core` items **only**, not `std`- or `alloc`-exclusive items. If stubs for `alloc` or `std` are wanted, they should be provided by an additional directive and test auxiliary, and not be conflated with `minicore` or `core` stubs. This is because a wider range of tests can benefit from `core`-only stubs.
    
    ### Implementation
    
    - The `minicore` auxiliary is a single source file `tests/auxiliary/minicore.rs`.
    - The path to `minicore` is made avaiable from bootstrap to compiletest via the `--minicore-path` compiletest flag.
    - `minicore` is then built on-demand via the `//@ add-core-stubs` compiletest directive, for each test revision for the given target platform (this distinction is important for when host platform != target platform in cross-compilation scenario).
    - `minicore` is then made available to the test as an [extern prelude].
    
    [extern prelude]: https://doc.rust-lang.org/reference/names/preludes.html#extern-prelude
    
    ### Example usage
    
    ```rs
    // tests/ui/abi/my-abi-test.rs
    
    //@ check-pass
    //@ add-core-stubs
    //@ compile-flags: --target i686-unknown-linux-gnu
    //@ needs-llvm-components: x86
    
    #![feature(no_core, lang_items)]
    #![no_std]
    #![no_core]
    #![allow(unused, internal_features)]
    
    extern crate minicore;
    use minicore::*;
    
    #[lang = "clone"]
    pub trait Clone: Sized {      // `Sized` is provided by `minicore`
        fn clone(&self) -> Self;
    }
    ```
    
    ### Implementation steps
    
    - [x] 1. Add an initial `minicore` test auxiliary.
    - [x] 2. Build `minicore` in bootstrap.
    - [x] 3. Setup a `--minicore-path` compiletest cli flag and pass `minicore` build artifact path from bootstrap to compiletest.
    - [x] 4. Assert `add-core-stubs` is mutually incompatible with tests that require to be `run`, as the stubs are only good for tests that only need to be built (i.e. no `run-{pass,fail}`).
    - [x] 5. Add some self-tests to sanity check the behavior.
    - [x] 6. Ensure that `tests/auxiliary/minicore.rs` is input stamped, i.e. modifying `tests/auxiliary/minicore.rs` should invalidate test cache and force the test to be rerun.
    
    ### Known limitations
    
    - The current `minicore` is very minimal, because this PR is intended to focus on supporting the test infrastructure first. Further stubs could be added in follow-up PRs and/or on a as-needed basis.
    
    try-job: aarch64-apple
    try-job: armhf-gnu
    try-job: x86_64-msvc
    try-job: test-various
    try-job: dist-various-1
    matthiaskrgr authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    2da5560 View commit details
    Browse the repository at this point in the history
  17. Rollup merge of rust-lang#132316 - MarcoIeni:ci-free-runners-windows,…

    … r=Mark-Simulacrum
    
    CI: use free runners for 3 fast windows jobs
    
    try-job: dist-i686-msvc
    try-job: dist-i686-mingw
    try-job: dist-x86_64-mingw
    try-job: dist-x86_64-msvc-alt
    matthiaskrgr authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    76b748a View commit details
    Browse the repository at this point in the history
  18. Rollup merge of rust-lang#132354 - koute:master, r=workingjubilee

    Add `lp64e` RISC-V ABI
    
    This PR adds support for the `lp64e` RISC-V ABI, which is the 64-bit equivalent of the `ilp32e` ABI that is already supported.
    
    For reference, this ABI was originally added to LLVM in [this PR](https://reviews.llvm.org/D70401).
    matthiaskrgr authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    6b96a79 View commit details
    Browse the repository at this point in the history
  19. Rollup merge of rust-lang#132395 - Zalathar:coverage-cx-ice, r=jieyouxu

    coverage: Avoid ICE when `coverage_cx` is unexpectedly unavailable
    
    In rust-lang#132124, `coverage_cx()` was changed to panic if the context was unavailable, under the assumption that it would always be available whenever coverage instrumentation is enabled.
    
    However, there have been reports of this change causing ICEs in `polars` CI.
    
    I don't yet understand why this is happening, but for now it seems wisest to revert that part of the change, restoring the two early returns that had been replaced with panics.
    matthiaskrgr authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    bfc956e View commit details
    Browse the repository at this point in the history
  20. Rollup merge of rust-lang#132396 - MarcoIeni:ci-use-free-runners-for-…

    …x86_64-gnu-tools-and-x86_64-rust-for-linux, r=Kobzol
    
    CI: use free runners for x86_64-gnu-tools and x86_64-rust-for-linux
    
    try-job: x86_64-gnu-tools
    try-job: x86_64-rust-for-linux
    matthiaskrgr authored Oct 31, 2024
    Configuration menu
    Copy the full SHA
    c9584b7 View commit details
    Browse the repository at this point in the history