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 #126824

Merged
merged 19 commits into from
Jun 22, 2024
Merged

Rollup of 5 pull requests #126824

merged 19 commits into from
Jun 22, 2024

Commits on Jun 20, 2024

  1. Fix ... in multline code-skips in suggestions

    When we have long code skips, we write `...` in the line number gutter.
    
    For suggestions, we were "centering" the `...` with the line, but that was consistent with what we do in every other case.
    estebank committed Jun 20, 2024
    Configuration menu
    Copy the full SHA
    9fd7784 View commit details
    Browse the repository at this point in the history
  2. Implement new command execution logic

    This function both handles error printing and early/late failures, but it also always returns the actual output of the command
    Kobzol committed Jun 20, 2024
    Configuration menu
    Copy the full SHA
    a12f541 View commit details
    Browse the repository at this point in the history
  3. Remove run_quiet

    Kobzol committed Jun 20, 2024
    Configuration menu
    Copy the full SHA
    949e667 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e933cfb View commit details
    Browse the repository at this point in the history
  5. Remove run_delaying_failure

    Kobzol committed Jun 20, 2024
    Configuration menu
    Copy the full SHA
    0de7b92 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5c4318d View commit details
    Browse the repository at this point in the history
  7. Remove unused import

    Kobzol committed Jun 20, 2024
    Configuration menu
    Copy the full SHA
    c152934 View commit details
    Browse the repository at this point in the history
  8. Appease clippy

    Kobzol committed Jun 20, 2024
    Configuration menu
    Copy the full SHA
    3fe4d13 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    bc12972 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2024

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

Commits on Jun 22, 2024

  1. Configuration menu
    Copy the full SHA
    38bd7a0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    250586c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d9962bb View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e7dfd4a View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#126555 - beetrees:f16-inline-asm-arm, r=Ama…

    …nieu
    
    Add `f16` inline ASM support for 32-bit ARM
    
    Adds `f16` inline ASM support for 32-bit ARM. SIMD vector types are taken from [here](https://developer.arm.com/architectures/instruction-sets/intrinsics/#f:`@navigationhierarchiesreturnbasetype=[float]&f:@navigationhierarchieselementbitsize=[16]&f:@navigationhierarchiesarchitectures=[A32]).`
    
    Relevant issue: rust-lang#125398
    Tracking issue: rust-lang#116909
    
    `@rustbot` label +F-f16_and_f128
    GuillaumeGomez authored Jun 22, 2024
    Configuration menu
    Copy the full SHA
    07e8b3a View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#126686 - fmease:dump-preds-n-item-bounds, r…

    …=compiler-errors
    
    Add `#[rustc_dump_{predicates,item_bounds}]`
    
    Conflicts with rust-lang#126668.
    
    As discussed
    r? compiler-errors CC ``@fee1-dead``
    GuillaumeGomez authored Jun 22, 2024
    Configuration menu
    Copy the full SHA
    3ed2cd7 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#126723 - estebank:dot-dot-dot, r=Nadrieril

    Fix `...` in multline code-skips in suggestions
    
    When we have long code skips, we write `...` in the line number gutter.
    
    For suggestions, we were "centering" the `...` with the line, but that was inconsistent with what we do in every other case *and* off-center.
    GuillaumeGomez authored Jun 22, 2024
    Configuration menu
    Copy the full SHA
    399c5ca View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#126731 - Kobzol:bootstrap-cmd-refactor, r=o…

    …nur-ozkan
    
    Bootstrap command refactoring: refactor `BootstrapCommand` (step 1)
    
    This PR is a first step towards https://rust-lang.zulipchat.com/#narrow/stream/326414-t-infra.2Fbootstrap.
    
    It refactors `BoostrapCommand` to get it closer to a state where it is an actual command wrapper that can be routed through a central place of command execution, and also to make the distinction between printing output vs handling output programatically clearer (since now it's a mess).
    
    The existing usages of `BootstrapCommand` are complicated primarily because of different ways of handling output. There are commands that:
    1) Want to eagerly print stdout/stderr of the executed command, plus print an error message if the command fails (output mode `PrintAll`). Note that this error message attempts to print stdout/stderr of the command when `-v` is enabled, but that will always be empty, since this mode uses `.status()` and not `.output()`.
    2) Want to eagerly print stdout/stderr of the executed command, but do not print any additional error message if it fails (output mode `PrintOutput`)
    3) Want to capture stdout/stderr of the executed command, but print an error message if it fails (output mode `PrintFailure`). This means that the user wants to either ignore the output or handle it programatically, but that's not obvious from the name.
    
    The difference between 1) and 2) (unless explicitly specified) is determined dynamically based on the bootstrap verbosity level.
    
    It is very difficult for me to wrap my head around all these modes. I think that in a future PR, we should split these axes into e.g. this:
    1) Do I want to handle the output programmatically or print it to the terminal? This should be a separate axis, true/false. (Note that "hiding the output" essentially just means saying that I handle it programmatically, and then I ignore the output).
    2) Do I want to print a message if the command fails? Yes/No/Based on verbosity (which would be the default).
    
    Then there is also the failure mode, but that is relatively simple to handle, the command execution will just shutdown bootstrap (either eagerly or late) when the command fails.
    
    Note that this is just a first refactoring steps, there are a lot of other things to be done, so some things might not look "final" yet. The next steps are (not necessarily in this order):
    - Remove `run` and `run_cmd` and implement everything in terms of `run_tracked` and rename `run_tracked` to `run`
    - Implement the refactoring specified above (change how output modes work)
    - Modify `BootstrapCmd` so that it stores `Command` instead of `&mut Command` and remove all the annoying `BootstrapCmd::from` by changing `Command::new` to `BootstrapCmd::new`
    - Refactor the rest of command executions not currently using `BootstrapCmd` that can access Builder to use the correct output and failure modes. This will include passing Builder to additional places.
    - Handle the most complex cases, such as output streaming. That will probably need to be handled separately.
    - Refactor the rest of commands that cannot access builder (e.g. `Config::parse`) by introducing a new command context that will be passed to these places, and then stored in `Builder`. Move certain fields (such as `fail_fast`) from `Builder` to the command context.
    - Handle the co-operation of `Builder`, `Build`, `Config` and command context. There are some fields and logic used during command execution that are distributed amongst `Builder/Build/Config`, so it will require some refactoring to make it work if the execution will happen on a separate place (in the command context).
    - Refactor logging of commands, so that it is either logged to a file or printed in a nice hierarchical way that cooperates with the `Step` debug hierarchical output.
    - Implement profiling of commands (add command durations to the command log, print a log of slowest commands and their execution counts at the end of bootstrap execution, perhaps store command executions to `metrics.json`).
    - Implement caching of commands.
    - Implement testing of commands through snapshot tests/mocking.
    
    Best reviewed commit by commit.
    
    r? ``@onur-ozkan``
    GuillaumeGomez authored Jun 22, 2024
    Configuration menu
    Copy the full SHA
    25bcc7d View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#126823 - GuillaumeGomez:migrate-run-make-in…

    …line-always-many-cgu, r=Kobzol
    
    Migrate `run-make/inline-always-many-cgu` to `rmake.rs`
    
    Part of rust-lang#121876.
    
    r? `@jieyouxu`
    GuillaumeGomez authored Jun 22, 2024
    Configuration menu
    Copy the full SHA
    d265538 View commit details
    Browse the repository at this point in the history