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 14 pull requests #89002

Closed
wants to merge 34 commits into from

Commits on Jul 31, 2021

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

Commits on Sep 7, 2021

  1. Recover from Foo(a: 1, b: 2)

    Detect likely `struct` literal using parentheses as delimiters and emit
    targeted suggestion instead of type ascription parse error.
    
    Fix rust-lang#61326.
    estebank committed Sep 7, 2021
    Configuration menu
    Copy the full SHA
    b82ec36 View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2021

  1. Doc comments

    bjorn3 committed Sep 8, 2021
    Configuration menu
    Copy the full SHA
    a4a22f0 View commit details
    Browse the repository at this point in the history
  2. Move get_tools_search_paths from FileSearch to Session

    It only uses fields of FileSearch that are stored in Session too
    bjorn3 committed Sep 8, 2021
    Configuration menu
    Copy the full SHA
    58000ed View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d7ef0b3 View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2021

  1. Add ConstraintCategory::Usage for handling aggregate construction

    In some cases, we emit borrowcheck diagnostics pointing
    at a particular field expression in a struct expression
    (e.g. `MyStruct { field: my_expr }`). However, this
    behavior currently relies on us choosing the
    `ConstraintCategory::Boring` with the 'correct' span.
    When adding additional variants to `ConstraintCategory`,
    (or changing existing usages away from `ConstraintCategory::Boring`),
    the current behavior can easily get broken, since a non-boring
    constraint will get chosen over a boring one.
    
    To make the diagnostic output less fragile, this commit
    adds a `ConstraintCategory::Usage` variant. We use this variant
    for the temporary assignments created for each field of
    an aggregate we are constructing.
    
    Using this new variant, we can emit a message mentioning
    "this usage", emphasizing the fact that the error message
    is related to the specific use site (in the struct expression).
    
    This is preparation for additional work on improving NLL error messages
    (see rust-lang#57374)
    Aaron1011 committed Sep 9, 2021
    Configuration menu
    Copy the full SHA
    3feddf7 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2021

  1. Document the closure arguments for reduce.

    Fixes issue rust-lang#88927.
    lefth committed Sep 14, 2021
    Configuration menu
    Copy the full SHA
    6b7f916 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ffc623a View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2021

  1. Add chown functions to std::os::unix::fs to change the owner and grou…

    …p of files
    
    This is a straightforward wrapper that uses the existing helpers for C
    string handling and errno handling.
    
    Having this available is convenient for UNIX utility programs written in
    Rust, and avoids having to call unsafe functions like `libc::chown`
    directly and handle errors manually, in a program that may otherwise be
    entirely safe code.
    
    In addition, these functions provide a more Rustic interface by
    accepting appropriate traits and using `None` rather than `-1`.
    joshtriplett committed Sep 15, 2021
    Configuration menu
    Copy the full SHA
    4840f67 View commit details
    Browse the repository at this point in the history
  2. [aarch64] add target feature outline-atomics

    Enable outline-atomics by default as enabled in clang by the following commit
    https://reviews.llvm.org/rGc5e7e649d537067dec7111f3de1430d0fc8a4d11
    
    Performance improves by several orders of magnitude when using the LSE instructions
    instead of the ARMv8.0 compatible load/store exclusive instructions.
    
    Tested on Graviton2 aarch64-linux with
    x.py build && x.py install && x.py test
    Sebastian Pop committed Sep 15, 2021
    Configuration menu
    Copy the full SHA
    870a132 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9762116 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ef44452 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cc7929b View commit details
    Browse the repository at this point in the history
  6. Disable RemoveZsts in generators to avoid query cycles

    Querying layout of a generator requires its optimized MIR. Thus
    computing layout during MIR optimization of a generator might create a
    query cycle. Disable RemoveZsts in generators to avoid the issue
    (similar approach is used in ConstProp transform already).
    tmiasko committed Sep 15, 2021
    Configuration menu
    Copy the full SHA
    c39d759 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    1b0186e View commit details
    Browse the repository at this point in the history
  8. Update clobber_abi list to include k[1-7] regs

    Commeownist committed Sep 15, 2021
    Configuration menu
    Copy the full SHA
    09745a6 View commit details
    Browse the repository at this point in the history
  9. Update the backtrace crate

    rust-lang/backtrace-rs#437 fixed backtraces in
    OpenBSD -> update it here as well so OpenBSD Rust code can produce
    proper backtraces.
    hargoniX committed Sep 15, 2021
    Configuration menu
    Copy the full SHA
    4e61d11 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    4fd39dd View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    47104a3 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    862d89e View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2021

  1. Rollup merge of rust-lang#83655 - sebpop:arm64-outline-atomics, r=jos…

    …htriplett
    
    [aarch64] add target feature outline-atomics
    
    Enable outline-atomics by default as enabled in clang by the following commit
    https://reviews.llvm.org/rGc5e7e649d537067dec7111f3de1430d0fc8a4d11
    
    Performance improves by several orders of magnitude when using the LSE instructions
    instead of the ARMv8.0 compatible load/store exclusive instructions.
    
    Tested on Graviton2 aarch64-linux with
    x.py build && x.py install && x.py test
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    4e5ad6e View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#87529 - FabianWolff:issue-87496, r=nikomats…

    …akis
    
    Fix ICE in `improper_ctypes_definitions` lint with all-ZST transparent types
    
    Fixes rust-lang#87496. There is also another function in the same file that looks fishy, but I haven't been able to produce an ICE there, and in any case, it's not related to rust-lang#87496:
    https://github.com/rust-lang/rust/blob/fd853c00e255559255885aadff9e93a1760c8728/compiler/rustc_lint/src/types.rs#L720-L734
    
    r? `@JohnTitor`
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    4078cbf View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#88708 - Aaron1011:aggregate-usage, r=oli-obk

    Add `ConstraintCategory::Usage` for handling aggregate construction
    
    In some cases, we emit borrowcheck diagnostics pointing
    at a particular field expression in a struct expression
    (e.g. `MyStruct { field: my_expr }`). However, this
    behavior currently relies on us choosing the
    `ConstraintCategory::Boring` with the 'correct' span.
    When adding additional variants to `ConstraintCategory`,
    (or changing existing usages away from `ConstraintCategory::Boring`),
    the current behavior can easily get broken, since a non-boring
    constraint will get chosen over a boring one.
    
    To make the diagnostic output less fragile, this commit
    adds a `ConstraintCategory::Usage` variant. We use this variant
    for the temporary assignments created for each field of
    an aggregate we are constructing.
    
    Using this new variant, we can emit a message mentioning
    "this usage", emphasizing the fact that the error message
    is related to the specific use site (in the struct expression).
    
    This is preparation for additional work on improving NLL error messages
    (see rust-lang#57374)
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    800baa0 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#88729 - estebank:struct-literal-using-paren…

    …s, r=oli-obk
    
    Recover from `Foo(a: 1, b: 2)`
    
    Detect likely `struct` literal using parentheses as delimiters and emit
    targeted suggestion instead of type ascription parse error.
    
    Fix rust-lang#61326.
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    8684a4d View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#88751 - bjorn3:move_filesearch, r=oli-obk

    Couple of changes to FileSearch and SearchPath
    
    * Turn a couple of regular comments into doc comments
    * Move `get_tools_search_paths` from `FileSearch` to `Session`
    * Use Lrc instead of Option to avoid duplication of a `SearchPath`
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    e21b367 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#88883 - c410-f3r:tests, r=petrochenkov

    Move some tests to more reasonable directories - 7
    
    cc rust-lang#73494
    r? `@petrochenkov`
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    63cfeba View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#88892 - estebank:trait-objects, r=petrochenkov

    Move object safety suggestions to the end of the error
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    3d945d2 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#88928 - lefth:master, r=Mark-Simulacrum

    Document the closure arguments for `reduce`.
    
    See issue rust-lang#88927.
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    ce9af0e View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#88953 - joshtriplett:chown, r=dtolnay

    Add chown functions to std::os::unix::fs to change the owner and group of files
    
    This is a straightforward wrapper that uses the existing helpers for C
    string handling and errno handling.
    
    Having this available is convenient for UNIX utility programs written in
    Rust, and avoids having to call unsafe functions like `libc::chown`
    directly and handle errors manually, in a program that may otherwise be
    entirely safe code.
    
    In addition, these functions provide a more Rustic interface by
    accepting appropriate traits and using `None` rather than `-1`.
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    0717c3b View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#88976 - notriddle:notriddle/cow-from-cstr-d…

    …ocs, r=Mark-Simulacrum
    
    Clean up and add doc comments for CStr
    
    CC rust-lang#51430
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    34aaf54 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#88979 - tmiasko:no-remove-zsts-in-generator…

    …s, r=oli-obk
    
    Disable RemoveZsts in generators to avoid query cycles
    
    Querying layout of a generator requires its optimized MIR. Thus
    computing layout during MIR optimization of a generator might create a
    query cycle. Disable RemoveZsts in generators to avoid the issue
    (similar approach is used in ConstProp transform already).
    
    Fixes rust-lang#88972.
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    f7a6ae6 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#88983 - willcrichton:allow-single-polonius-…

    …call, r=ecstatic-morse
    
    Allow calling `get_body_with_borrowck_facts` without `-Z polonius`
    
    For my [static analysis tool](https://github.com/willcrichton/flowistry), I need to access the set of outlives-constraints. Recently, rust-lang#86977 merged a way to access these facts via Polonius. However, the merged implementation requires `-Z polonius` to be provided to use this feature. This uses Polonius for borrow checking on the entire crate, which as described [here](https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/Polonius.20performance.20in.20a.20rustc.20plugin/near/251301631), is very slow.
    
    This PR allows `get_body_with_borrowck_facts` to be called without `-Z polonius`. This is essential for my tool to run in a sensible length of time. This is a temporary patch as the Polonius-related APIs develop -- I can update my code as future changes happen.
    
    Additionally, this PR also makes public two APIs that were previously public but then became private after `rustc_mir` got broken up: `rustc_mir_dataflow::framework::graphviz` and `rustc_mir_transform::MirPass`. I need both of these for my analysis tool. (I can break this change into a separate PR if necessary.)
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    4fcc533 View commit details
    Browse the repository at this point in the history
  13. Rollup merge of rust-lang#88985 - Commeownist:patch-1, r=Amanieu

    Update clobber_abi list to include k[1-7] regs
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    d122790 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of rust-lang#88986 - hargoniX:master, r=Mark-Simulacrum

    Update the backtrace crate
    
    rust-lang/backtrace-rs#437 fixed backtraces in
    OpenBSD -> update it here as well so OpenBSD Rust code can produce
    proper backtraces.
    Manishearth committed Sep 16, 2021
    Configuration menu
    Copy the full SHA
    3dd0e34 View commit details
    Browse the repository at this point in the history