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 4 pull requests #93627

Closed
wants to merge 13 commits into from

Commits on Jan 1, 2022

  1. Stabilize -Z instrument-coverage as -C instrument-coverage

    Continue supporting -Z instrument-coverage for compatibility for now,
    but show a deprecation warning for it.
    
    Update uses and documentation to use the -C option.
    
    Move the documentation from the unstable book to stable rustc
    documentation.
    joshtriplett committed Jan 1, 2022
    Configuration menu
    Copy the full SHA
    34106f8 View commit details
    Browse the repository at this point in the history
  2. Rewrite instrument-coverage documentation to use LLVM tools directly

    llvm-tools-preview is still experimental, so document it as such, and
    don't use it in the examples.
    joshtriplett committed Jan 1, 2022
    Configuration menu
    Copy the full SHA
    760c13f View commit details
    Browse the repository at this point in the history
  3. Update instrument-coverage documentation to document stability and LL…

    …VM versions
    
    The instrument-coverage option is stable; the details of the profile
    data format are not.
    
    Recommend llvm-tools-preview as the preferred alternative to obtain a
    compatible version of the LLVM tools, rather than finding LLVM tools
    elsewhere.
    joshtriplett committed Jan 1, 2022
    Configuration menu
    Copy the full SHA
    c840003 View commit details
    Browse the repository at this point in the history
  4. Clarify stability expectations for llvm-tools-preview

    Co-authored-by: Mark Rousskov <mark.simulacrum@gmail.com>
    joshtriplett and Mark-Simulacrum committed Jan 1, 2022
    Configuration menu
    Copy the full SHA
    e14bd48 View commit details
    Browse the repository at this point in the history

Commits on Jan 2, 2022

  1. Require -Zunstable-options for -C instrument-coverage=except-* op…

    …tions
    
    These options primarily exist to work around bugs, and those bugs have
    largely been fixed. Avoid stabilizing them, so that we don't have to
    support them indefinitely.
    joshtriplett committed Jan 2, 2022
    Configuration menu
    Copy the full SHA
    6593fcd View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2022

  1. Configuration menu
    Copy the full SHA
    e1eff1b View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2022

  1. Add more *-unwind ABI variants

    The following *-unwind ABIs are now supported:
    - "C-unwind"
    - "cdecl-unwind"
    - "stdcall-unwind"
    - "fastcall-unwind"
    - "vectorcall-unwind"
    - "thiscall-unwind"
    - "aapcs-unwind"
    - "win64-unwind"
    - "sysv64-unwind"
    - "system-unwind"
    Amanieu committed Feb 2, 2022
    Configuration menu
    Copy the full SHA
    547b4e6 View commit details
    Browse the repository at this point in the history

Commits on Feb 3, 2022

  1. Only disable dialogs on CI.

    The "CI" environment var isn't universal (for example, I think Azure
    uses TF_BUILD). However, we are mostly concerned with rust-lang/rust's
    own CI which currently is GitHub Actions which does set "CI". And I
    think most other providers use "CI" as well.
    ehuss committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    c64d6bf View commit details
    Browse the repository at this point in the history
  2. Fix ret > 1 bound if shadowed by const

    Prior to a change, it would only look at types in bounds. When it started looking for consts,
    shadowing type variables with a const would cause an ICE, so now defer looking at consts only if
    there are no types present.
    JulianKnodt committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    2dfd77d View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#90132 - joshtriplett:stabilize-instrument-c…

    …overage, r=wesleywiser
    
    Stabilize `-Z instrument-coverage` as `-C instrument-coverage`
    
    (Tracking issue for `instrument-coverage`: rust-lang#79121)
    
    This PR stabilizes support for instrumentation-based code coverage, previously provided via the `-Z instrument-coverage` option. (Continue supporting `-Z instrument-coverage` for compatibility for now, but show a deprecation warning for it.)
    
    Many, many people have tested this support, and there are numerous reports of it working as expected.
    
    Move the documentation from the unstable book to stable rustc documentation. Update uses and documentation to use the `-C` option.
    
    Addressing questions raised in the tracking issue:
    
    > If/when stabilized, will the compiler flag be updated to -C instrument-coverage? (If so, the -Z variant could also be supported for some time, to ease migrations for existing users and scripts.)
    
    This stabilization PR updates the option to `-C` and keeps the `-Z` variant to ease migration.
    
    > The Rust coverage implementation depends on (and automatically turns on) -Z symbol-mangling-version=v0. Will stabilizing this feature depend on stabilizing v0 symbol-mangling first? If so, what is the current status and timeline?
    
    This stabilization PR depends on rust-lang#90128 , which stabilizes `-C symbol-mangling-version=v0` (but does not change the default symbol-mangling-version).
    
    > The Rust coverage implementation implements the latest version of LLVM's Coverage Mapping Format (version 4), which forces a dependency on LLVM 11 or later. A compiler error is generated if attempting to compile with coverage, and using an older version of LLVM.
    
    Given that LLVM 13 has now been released, requiring LLVM 11 for coverage support seems like a reasonable requirement. If people don't have at least LLVM 11, nothing else breaks; they just can't use coverage support. Given that coverage support currently requires a nightly compiler and LLVM 11 or newer, allowing it on a stable compiler built with LLVM 11 or newer seems like an improvement.
    
    The [tracking issue](rust-lang#79121) and the [issue label A-code-coverage](https://github.com/rust-lang/rust/labels/A-code-coverage) link to a few open issues related to `instrument-coverage`, but none of them seem like showstoppers. All of them seem like improvements and refinements we can make after stabilization.
    
    The original `-Z instrument-coverage` support went through a compiler-team MCP at rust-lang/compiler-team#278 . Based on that, ```@pnkfelix``` suggested that this needed a stabilization PR and a compiler-team FCP.
    matthiaskrgr committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    099cacb View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#93402 - ehuss:llvm-dialog, r=michaelwoerister

    Windows: Disable LLVM crash dialog boxes.
    
    This disables the crash dialog box on Windows. When LLVM hits an assertion, it will open a dialog box with Abort/Retry/Ignore. This is annoying on CI because CI will just hang until it times out (which can take hours).
    
    Instead of opening a dialog box, it will print a message like this:
    
    ```
    Assertion failed: isa<X>(Val) && "cast<Ty>() argument of incompatible type!", file D:\Proj\rust\rust\src\llvm-project\llvm\include\llvm/Support/Casting.h, line 255
    ```
    
    Closes rust-lang#92829
    matthiaskrgr committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    1de6839 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#93561 - Amanieu:more-unwind-abi, r=nagisa

    Add more *-unwind ABI variants
    
    The following *-unwind ABIs are now supported:
    - "C-unwind"
    - "cdecl-unwind"
    - "stdcall-unwind"
    - "fastcall-unwind"
    - "vectorcall-unwind"
    - "thiscall-unwind"
    - "aapcs-unwind"
    - "win64-unwind"
    - "sysv64-unwind"
    - "system-unwind"
    
    cc ```@rust-lang/wg-ffi-unwind```
    matthiaskrgr committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    00daa4a View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#93593 - JulianKnodt:master, r=oli-obk

    Fix ret > 1 bound if shadowed by const
    
    Prior to a change, it would only look at types in bounds. When it started looking for consts,
    shadowing type variables with a const would cause an ICE, so now defer looking at consts only if
    there are no types present.
    
    cc ``@compiler-errors``
    Should Fix rust-lang#93553
    matthiaskrgr committed Feb 3, 2022
    Configuration menu
    Copy the full SHA
    9280c00 View commit details
    Browse the repository at this point in the history