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

update from origin 2020-07-02 #9

Merged
merged 148 commits into from
Jul 2, 2020
Merged

Commits on May 25, 2020

  1. Remove legacy InnoSetup GUI installer

    On Windows the InnoSetup installer was superseded by the MSI installer. It's no longer needed.
    ChrisDenton committed May 25, 2020
    Configuration menu
    Copy the full SHA
    912963b View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2020

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

Commits on Jun 13, 2020

  1. Configuration menu
    Copy the full SHA
    144206e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c98b4c8 View commit details
    Browse the repository at this point in the history

Commits on Jun 14, 2020

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

Commits on Jun 18, 2020

  1. impl From<char> for String

    This allows us to write
    
    fn char_to_string() -> String {
        'a'.into()
    }
    
    which was not possible before.
    matthiaskrgr committed Jun 18, 2020
    Configuration menu
    Copy the full SHA
    1d0378c View commit details
    Browse the repository at this point in the history
  2. bootstrap: Configurable musl libdir

    Make it possible to customize the location of musl libdir using
    musl-libdir in config.toml, e.g., to use lib64 instead of lib.
    tmiasko committed Jun 18, 2020
    Configuration menu
    Copy the full SHA
    5c20ef4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2cde493 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2020

  1. Fix sentence structure

    Fixed grammar and sentence structure on appropriate instances.
    Anirban166 committed Jun 23, 2020
    Configuration menu
    Copy the full SHA
    886f81e View commit details
    Browse the repository at this point in the history
  2. [AVR] Update the rust-lang/llvm-project submodule to include AVR fixe…

    …s recently merged
    
    This commit updates rustc's LLVM submodule to include new AVR-specific
    fixes recently merged on the Rust LLVM 'rustc/10.0-2020-05-05' branch.
    
    All of these cherry-picked commits exist in upstream LLVM and were
    cherry-picked into Rust's LLVM fork in commit 6c040dd86ed.
    
      |- 6c040dd86ed Merge pull request #66 from dylanmckay/avr-pick-upstream-llvm-fixes
        |- 12dfdd3aed7 [AVR] Rewrite the function calling convention.
        |- 118ac53f12b [AVR] Don't adjust for instruction size
        |- bc27c282e13 [AVR] Fix miscompilation of zext + add
        |- cfbe205a7e8 [AVR] Remove faulty stack pushing behavior
        |- 143e1469e96 [AVR] Fix stack size in functions with a frame pointer
        |- 6b2445d841e [LLVM][AVR] Support for R_AVR_6 fixup
        |- 93ee4da19cf [AVR]  Fix I/O instructions on XMEGA
        |- 962c2415ffb [AVR] Do not place functions in .progmem.data
        |- 65b8b170aef [AVR] Do not use divmod calls for bigger integers
        |- 93a3b595d1c [AVR] Generalize the previous interrupt bugfix to signal
        |- handlers too
        |- cc4286349b4 [AVR] Respect the 'interrupt' function attribute
        |- 954d0a92205 [AVR] Fix reads of uninitialized variables from constructor of AVRSubtarget
        |- 1c0ddae73c9 [AVR] Fix read of uninitialized variable AVRSubtarget:::ELFArch
        |- 0ed0823fe60 [AVR] Fix incorrect register state for LDRdPtr
        |- 96075fc433d [AVR] Don't adjust addresses by 2 for absolute values
        |- 6dfc55ba53b [AVR] Use correct register class for mul instructions
    
    These changes include both correctness fixes and LLVM assertion error
    fixes. Once all of these commits have been cherry-picked, all of the
    LLVM plumbing for rust-lang/master to compile the AVR blink program will
    be in place. Once this commit is merged, only PR #73270 will
    be blocking successful compilation and emission of the AVR LED blink program.
    dylanmckay committed Jun 23, 2020
    Configuration menu
    Copy the full SHA
    50f20ec View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2020

  1. Update Box::from_raw example to generalize better

    I know very little about rust, so I saw this example and tried to generalize it by writing,
    ```
        let layout = Layout::new::<T>();
        let new_obj = unsafe {
            let ptr = alloc(layout) as *mut T;
            *ptr = obj;
            Box::from_raw(ptr)
        };
    ```
    for some more complicated `T`, which ended up crashing with SIGSEGV,
    because it tried to `drop_in_place` the previous object in `ptr` which is
    of course garbage. I also added a comment that explains why `.write`
    is used, but I think adding that comment is optional and may be too verbose
    here. I do however think that changing this example is a good idea to
    suggest the correct generalization. `.write` is also used in most of the rest
    of the documentation here, even if the example is `i32`, so it would additionally
    be more consistent.
    Keno committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    0c88dd6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3b5d7f8 View commit details
    Browse the repository at this point in the history
  3. Update README.md

    Anirban166 committed Jun 24, 2020
    Configuration menu
    Copy the full SHA
    d6cf8fc View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2020

  1. Configuration menu
    Copy the full SHA
    2bbc2b3 View commit details
    Browse the repository at this point in the history
  2. Commit suggestion

    Co-authored-by: Niko Matsakis <niko@alum.mit.edu>
    Anirban166 and nikomatsakis committed Jun 25, 2020
    Configuration menu
    Copy the full SHA
    22fc18f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8edcc6d View commit details
    Browse the repository at this point in the history
  4. Added clickable-link

    Linked the logo/svg to https://www.rust-lang.org/
    (change if required)
    Anirban166 committed Jun 25, 2020
    Configuration menu
    Copy the full SHA
    3a1ac28 View commit details
    Browse the repository at this point in the history
  5. Add responsiveness to logo

    Added responsiveness to image logo based on device width (set at 90% of device width, which can be changed as per requirement)
    Anirban166 committed Jun 25, 2020
    Configuration menu
    Copy the full SHA
    4c33b7c View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2020

  1. Merge pull request #2 from rust-lang/master

    update master
    TyPR124 committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    00ef461 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b71a3e1 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    31c6d5f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    15e81be View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cf398a3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    224bc05 View commit details
    Browse the repository at this point in the history
  7. Make likely and unlikely const

    They are gated by internal feature gate const_likely
    nbdd0121 committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    fc239e8 View commit details
    Browse the repository at this point in the history
  8. Fix ICE for lib features

    nbdd0121 committed Jun 26, 2020
    Configuration menu
    Copy the full SHA
    779b05d View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2020

  1. Configuration menu
    Copy the full SHA
    79a42e3 View commit details
    Browse the repository at this point in the history
  2. Recover extra trailing angle brackets in struct definition

    This commit applies the existing 'extra angle bracket recovery' logic
    when parsing fields in struct definitions. This allows us to continue
    parsing the struct's fields, avoiding spurious 'missing field' errors in
    code that tries to use the struct.
    Aaron1011 committed Jun 27, 2020
    Configuration menu
    Copy the full SHA
    765bd47 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3fc5593 View commit details
    Browse the repository at this point in the history
  4. Update src/librustc_mir/interpret/intrinsics.rs

    Co-authored-by: Oliver Scherer <github35764891676564198441@oli-obk.de>
    nbdd0121 and oli-obk committed Jun 27, 2020
    Configuration menu
    Copy the full SHA
    8b43012 View commit details
    Browse the repository at this point in the history
  5. Use an 'approximate' universal upper bound when reporting region errors

    Fixes #67765
    
    When reporting errors during MIR region inference, we sometimes use
    `universal_upper_bound` to obtain a named universal region that we
    can display to the user. However, this is not always possible - in a
    case like `fn foo<'a, 'b>() { .. }`, the only upper bound for a region
    containing `'a` and `'b` is `'static`. When displaying diagnostics, it's
    usually better to display *some* named region (even if there are
    multiple involved) rather than fall back to a generic error involving
    `'static`.
    
    This commit adds a new `approx_universal_upper_bound` method, which
    uses the lowest-numbered universal region if the only alternative is to
    return `'static`.
    Aaron1011 committed Jun 27, 2020
    Configuration menu
    Copy the full SHA
    517d361 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    8e899b1 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    7055c23 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2020

  1. Configuration menu
    Copy the full SHA
    14d0370 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7231e57 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4595fa8 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e611a3f View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e8f5785 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    dfd454b View commit details
    Browse the repository at this point in the history
  7. Fix small nits

    poliorcetics committed Jun 28, 2020
    Configuration menu
    Copy the full SHA
    4224313 View commit details
    Browse the repository at this point in the history
  8. Fix markdown rendering in librustc_lexer docs

    Use back-ticks instead of quotation marks in docs for the block comment
    variant of TokenKind.
    pierwill committed Jun 28, 2020
    Configuration menu
    Copy the full SHA
    49c1018 View commit details
    Browse the repository at this point in the history
  9. Edit cursor.prev() method docs in lexer

    Fix missing punctuation
    pierwill committed Jun 28, 2020
    Configuration menu
    Copy the full SHA
    40c74a7 View commit details
    Browse the repository at this point in the history
  10. Add newline to rustc MultiSpan docs

    Also adds back-ticks when referring to the contents of this collection.
    pierwill committed Jun 28, 2020
    Configuration menu
    Copy the full SHA
    4966272 View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2020

  1. Auto merge of #73032 - yoshuawuyts:stabilize-leading_trailing_ones, r…

    …=Amanieu
    
    stabilize leading_trailing_ones
    
    This PR stabilizes the `leading_trailing_ones` feature. It's been available on nightly since the start of the year, and hasn't had any issues since. It seems unlikely we'll want to change this, so following up on @djc's suggestion in #57969 (comment) I'd like to put forward this PR to stabilize the feature and make it part of `1.46.0`. Thanks!
    
    cc/ @djc @rust-lang/libs
    bors committed Jun 29, 2020
    Configuration menu
    Copy the full SHA
    c86039b View commit details
    Browse the repository at this point in the history
  2. Auto merge of #73391 - pickfire:liballoc-panic-doc, r=Mark-Simulacrum

    Add liballoc doc panic detail according to RawVec
    bors committed Jun 29, 2020
    Configuration menu
    Copy the full SHA
    0ca7f74 View commit details
    Browse the repository at this point in the history
  3. rustbuild: Move compiler-builtins build logic to manifest

    This commit moves the compiler-builtins-specific build logic from
    `src/bootstrap/bin/rustc.rs` into the workspace `Cargo.toml`'s
    `[profile]` configuration. Now that rust-lang/cargo#7253 is fixed we can
    ensure that Cargo knows about debug assertions settings, and it can also
    be configured to specifically disable debug assertions unconditionally
    for compiler-builtins. This should improve rebuild logic when
    debug-assertions settings change and also improve build-std integration
    where Cargo externally now has an avenue to learn how to build
    compiler-builtins as well.
    alexcrichton committed Jun 29, 2020
    Configuration menu
    Copy the full SHA
    3dfbf0b View commit details
    Browse the repository at this point in the history
  4. Revert "ci: allow gating gha on everything but macOS"

    This reverts commit 8bc3122.
    pietroalbini committed Jun 29, 2020
    Configuration menu
    Copy the full SHA
    c8f2dd0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    dd34698 View commit details
    Browse the repository at this point in the history
  6. add spans to injected coverage counters

    added regions with counter expressions and counters.
    
    Added codegen_llvm/coverageinfo mod for upcoming coverage map
    
    Move coverage region collection to CodegenCx finalization
    
    Moved from `query coverageinfo` (renamed from `query coverage_data`),
    as discussed in the PR at:
    
    #73684 (comment)
    
    Address merge conflict in MIR instrument_coverage test
    
    The MIR test output format changed for int types.
    
    moved debug messages out of block.rs
    
    This makes the block.rs calls to add coverage mapping data to the
    CodegenCx much more concise and readable.
    
    move coverage intrinsic handling into llvm impl
    
    I realized that having half of the coverage intrinsic handling in
    `rustc_codegen_ssa` and half in `rustc_codegen_llvm` meant that any
    non-llvm backend would be bound to the same decisions about how the
    coverage-related MIR terminators should be handled.
    
    To fix this, I moved the non-codegen portion of coverage intrinsic
    handling into its own trait, and implemented it in `rustc_codegen_llvm`
    alongside `codegen_intrinsic_call`.
    
    I also added the (required?) stubs for the new intrinsics to
    `IntrepretCx::emulate_intrinsic()`, to ensure calls to this function do
    not fail if called with these new but known intrinsics.
    
    address PR Feedback on 28 June 2020 2:48pm PDT
    richkadel committed Jun 29, 2020
    Configuration menu
    Copy the full SHA
    5239a68 View commit details
    Browse the repository at this point in the history
  7. Auto merge of #73374 - alexcrichton:compiler-bulitins-debug-assertion…

    …s, r=Mark-Simulacrum
    
    rustbuild: Move compiler-builtins build logic to manifest
    
    This commit moves the compiler-builtins-specific build logic from
    `src/bootstrap/bin/rustc.rs` into the workspace `Cargo.toml`'s
    `[profile]` configuration. Now that rust-lang/cargo#7253 is fixed we can
    ensure that Cargo knows about debug assertions settings, and it can also
    be configured to specifically disable debug assertions unconditionally
    for compiler-builtins. This should improve rebuild logic when
    debug-assertions settings change and also improve build-std integration
    where Cargo externally now has an avenue to learn how to build
    compiler-builtins as well.
    bors committed Jun 29, 2020
    Configuration menu
    Copy the full SHA
    a1528c4 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2020

  1. Serialize all foreign SourceFiles into proc-macro crate metadata

    Normally, we encode a `Span` that references a foreign `SourceFile` by
    encoding information about the foreign crate. When we decode this
    `Span`, we lookup the foreign crate in order to decode the `SourceFile`.
    
    However, this approach does not work for proc-macro crates. When we load
    a proc-macro crate, we do not deserialzie any of its dependencies (since
    a proc-macro crate can only export proc-macros). This means that we
    cannot serialize a reference to an upstream crate, since the associated
    metadata will not be available when we try to deserialize it.
    
    This commit modifies foreign span handling so that we treat all foreign
    `SourceFile`s as local `SourceFile`s when serializing a proc-macro.
    All `SourceFile`s will be stored into the metadata of a proc-macro
    crate, allowing us to cotinue to deserialize a proc-macro crate without
    needing to load any of its dependencies.
    
    Since the number of foreign `SourceFile`s that we load during a
    compilation session may be very large, we only serialize a `SourceFile`
    if we have also serialized a `Span` which requires it.
    Aaron1011 committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    3343733 View commit details
    Browse the repository at this point in the history
  2. Normalize symbol ids to 0 in test stdout

    The number of symbols we allocate (even early on) seems to be platform
    dependent. We only care about hygiene for the purposes of this test,
    so just set all of the symbol ids to zero
    Aaron1011 committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    a7c408d View commit details
    Browse the repository at this point in the history
  3. Compile rustdoc less often.

    ehuss committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    9154863 View commit details
    Browse the repository at this point in the history
  4. Auto merge of #73658 - dylanmckay:avr-update-llvm-submodule-with-pick…

    …s, r=cuviper
    
    [AVR] Update the rust-lang/llvm-project submodule to include AVR fixes recently merged
    
    This PR updates rustc's LLVM submodule to include new AVR-specific
    fixes recently merged on the Rust LLVM 'rustc/10.0-2020-05-05' branch.
    
    All of these cherry-picked commits exist in upstream LLVM and were
    cherry-picked into Rust's LLVM fork in commit 6c040dd86ed.
    
    Relates to rust-lang/llvm-project#66
    
    ```
      |- 6c040dd86ed Merge pull request #66 from dylanmckay/avr-pick-upstream-llvm-fixes
        |- 12dfdd3aed7 [AVR] Rewrite the function calling convention.
        |- 118ac53f12b [AVR] Don't adjust for instruction size
        |- bc27c282e13 [AVR] Fix miscompilation of zext + add
        |- cfbe205a7e8 [AVR] Remove faulty stack pushing behavior
        |- 143e1469e96 [AVR] Fix stack size in functions with a frame pointer
        |- 6b2445d841e [LLVM][AVR] Support for R_AVR_6 fixup
        |- 93ee4da19cf [AVR]  Fix I/O instructions on XMEGA
        |- 962c2415ffb [AVR] Do not place functions in .progmem.data
        |- 65b8b170aef [AVR] Do not use divmod calls for bigger integers
        |- 93a3b595d1c [AVR] Generalize the previous interrupt bugfix to signal
        |- handlers too
        |- cc4286349b4 [AVR] Respect the 'interrupt' function attribute
        |- 954d0a92205 [AVR] Fix reads of uninitialized variables from constructor of AVRSubtarget
        |- 1c0ddae73c9 [AVR] Fix read of uninitialized variable AVRSubtarget:::ELFArch
        |- 0ed0823fe60 [AVR] Fix incorrect register state for LDRdPtr
        |- 96075fc433d [AVR] Don't adjust addresses by 2 for absolute values
        |- 6dfc55ba53b [AVR] Use correct register class for mul instructions
    ```
    
    These changes include both correctness fixes and LLVM assertion error
    fixes. Once all of these commits have been cherry-picked, all of the
    LLVM plumbing for rust-lang/master to compile the AVR blink program will
    be in place. Once this commit is merged, only PR #73270 will
    be blocking successful compilation and emission of the AVR LED blink program.
    bors committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    665190b View commit details
    Browse the repository at this point in the history
  5. ci: fix wasm32 broken due to a NodeJS version bump

    Emscripten's SDK recently bumped the version of NodeJS they shipped, but
    our Dockerfile for the wasm32 builder hardcoded the version number. This
    will cause consistent CI failures once the currently cached image is
    rebuilt (either due to a change or due to the cache expiring).
    
    This commit fixes the problem by finding the latest version of NodeJS in
    the Emscripten SDK and symlinking it to a "latest" directory, which is
    then added to the PATH.
    pietroalbini committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    844dc31 View commit details
    Browse the repository at this point in the history
  6. stop taking references in Relate

    lcnr committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    1d7ba5f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    71b45b9 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    f632bd1 View commit details
    Browse the repository at this point in the history
  9. update equal_up_to_regions

    lcnr committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    69e4990 View commit details
    Browse the repository at this point in the history
  10. remove rustdoc warnings

    tshepang committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    f3645ca View commit details
    Browse the repository at this point in the history
  11. update Miri

    RalfJung committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    2d9ed15 View commit details
    Browse the repository at this point in the history
  12. Auto merge of #73888 - RalfJung:miri, r=RalfJung

    update Miri
    
    Fixes #73773
    Cc @rust-lang/miri r? @ghost
    bors committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    e070765 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    f74a7d3 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    8ee1dec View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    8a515e9 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    ac7539c View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    c68f478 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    c225e5c View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    b365233 View commit details
    Browse the repository at this point in the history
  20. Auto merge of #73456 - tmiasko:musl-libdir, r=Mark-Simulacrum

    bootstrap: Configurable musl libdir
    
    Make it possible to customize the location of musl libdir using
    musl-libdir in config.toml, e.g., to use lib64 instead of lib.
    bors committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    16957bd View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    1b3ef66 View commit details
    Browse the repository at this point in the history
  22. Deny unsafe ops in unsafe fns, part 6

    And final part!!!
    LeSeulArtichaut committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    a1623ff View commit details
    Browse the repository at this point in the history
  23. remove duplicate tests

    lcnr committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    0889d79 View commit details
    Browse the repository at this point in the history
  24. Bring net/parser.rs up to modern up to date with modern rust patterns

    Made the following changes throughout the IP address parser:
    - Replaced all uses of `is_some()` / `is_none()` with `?`.
    - "Upgraded" loops wherever possible; ie, replace `while` with `for`, etc.
        - Removed all cases of manual index tracking / incrementing.
    - Renamed several single-character variables with more expressive names.
    - Replaced several manual control flow segments with equivalent adapters (such as `Option::filter`).
    - Removed `read_seq_3`; replaced with simple sequences of `?`.
    - Parser now reslices its state when consuming, rather than carrying a separate state and index variable.
    - `read_digit` now uses `char::to_digit`.
    - Removed unnecessary casts back and forth between u8 and u32
    - Added comments throughout, especially in the complex IPv6 parsing logic.
    - Added comprehensive local unit tests for the parser to validate these changes.
    Lucretiel authored and dtolnay committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    3ab7ae3 View commit details
    Browse the repository at this point in the history
  25. Bless failing tests

    LeSeulArtichaut committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    6a7a652 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    37a48fa View commit details
    Browse the repository at this point in the history
  27. Configuration menu
    Copy the full SHA
    e191358 View commit details
    Browse the repository at this point in the history
  28. Only set the flag in LLVM builds.

    aspen committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    c22bcb0 View commit details
    Browse the repository at this point in the history
  29. Don't break on iOS Simulator builds.

    aspen committed Jun 30, 2020
    Configuration menu
    Copy the full SHA
    5f3dbd8 View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    51858da View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2020

  1. Configuration menu
    Copy the full SHA
    0d26512 View commit details
    Browse the repository at this point in the history
  2. Rewrite a few manual index loops with while-let

    There were a few instances of this pattern:
    
    ```rust
    while index < vec.len() {
        let item = &vec[index];
        // ...
    }
    ```
    
    These can be indexed at once:
    
    ```rust
    while let Some(item) = vec.get(index) {
        // ...
    }
    ```
    
    Particularly in `ObligationForest::process_obligations`, this mitigates
    a codegen regression found with LLVM 11 (#73526).
    cuviper committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    47425e4 View commit details
    Browse the repository at this point in the history
  3. Auto merge of #73706 - Aaron1011:fix/proc-macro-foreign-span, r=petro…

    …chenkov
    
    Serialize all foreign `SourceFile`s into proc-macro crate metadata
    
    Normally, we encode a `Span` that references a foreign `SourceFile` by
    encoding information about the foreign crate. When we decode this
    `Span`, we lookup the foreign crate in order to decode the `SourceFile`.
    
    However, this approach does not work for proc-macro crates. When we load
    a proc-macro crate, we do not deserialzie any of its dependencies (since
    a proc-macro crate can only export proc-macros). This means that we
    cannot serialize a reference to an upstream crate, since the associated
    metadata will not be available when we try to deserialize it.
    
    This commit modifies foreign span handling so that we treat all foreign
    `SourceFile`s as local `SourceFile`s when serializing a proc-macro.
    All `SourceFile`s will be stored into the metadata of a proc-macro
    crate, allowing us to cotinue to deserialize a proc-macro crate without
    needing to load any of its dependencies.
    
    Since the number of foreign `SourceFile`s that we load during a
    compilation session may be very large, we only serialize a `SourceFile`
    if we have also serialized a `Span` which requires it.
    bors committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    d462551 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7616cd9 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b438811 View commit details
    Browse the repository at this point in the history
  6. Stabilize #[track_caller].

    Does not yet make its constness stable, though. Use of
    `Location::caller` in const contexts is still gated by
    `#![feature(const_caller_location)]`.
    anp committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    f07d10d View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a5764de View commit details
    Browse the repository at this point in the history
  8. Auto merge of #73863 - pietroalbini:revert-8bc3122311d, r=Mark-Simula…

    …crum
    
    Revert "ci: allow gating gha on everything but macOS"
    
    The macOS issue on GHA's side seems to be fixed, so this is not needed anymore.
    
    r? @Mark-Simulacrum
    bors committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    1505c12 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    b37434e View commit details
    Browse the repository at this point in the history
  10. Implement slice_strip feature

    tesuji committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    cd9d833 View commit details
    Browse the repository at this point in the history
  11. Verify UI tests work in pass=check mode

    We do not test cross-compilation here as the PR builder lacks a sufficiently
    recent LLVM to cross-compile to 32-bit linux. Once we bump the minimum LLVM
    version to LLVM 9, this can use normal 32-bit linux.
    Mark-Simulacrum committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    562e015 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of #72071 - PankajChaudhary5:ErrorCode-E0687, r=davidtwco

    Added detailed error code explanation for issue E0687 in Rust compiler.
    
    Added proper error explanation for issue E0687 in the Rust compiler.
    Error Code E0687
    
    Sub Part of Issue #61137
    
    r? @GuillaumeGomez
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    128fa2b View commit details
    Browse the repository at this point in the history
  13. Rollup merge of #72369 - Lucretiel:socketaddr-parse, r=dtolnay

    Bring net/parser.rs up to modern up to date with modern rust patterns
    
    The current implementation of IP address parsing is very unidiomatic; it's full of `if` / `return` / `is_some` / `is_none` instead of `?`, `loop` with manual index tracking; etc. Went through and did and cleanup to try to bring it in line with modern sensibilities.
    
    The obvious concern with making changes like this is "make sure you understand why it's written that way before changing it". Looking through the commit history for this file, there are several much smaller commits that make similar changes (For instance, 3024c14, 4f3ab49, 79f8764), and there don't seem to be any commits in the history that indicate that this lack of idiomaticity is related to specific performance needs (ie, there aren't any commits that replace a `for` loop with a `loop` and a manual index count). In fact, the basic shape of the file is essentially unchanged from its initial commit back in 2015.
    
    Made the following changes throughout the IP address parser:
    - Replaced all uses of `is_some()` / `is_none()` with `?`.
    - "Upgraded" loops wherever possible; ie, replace `while` with `for`, etc.
        - Removed all cases of manual index tracking / incrementing.
    - Renamed several single-character variables with more expressive names.
    - Replaced several manual control flow segments with equivalent adapters (such as `Option::filter`).
    - Removed `read_seq_3`; replaced with simple sequences of `?`.
    - Parser now reslices its state when consuming, rather than carrying a separate state and index variable.
    - `read_digit` now uses `char::to_digit`.
    - Added comments throughout, especially in the complex IPv6 parsing logic.
    - Added comprehensive local unit tests for the parser to validate these changes.
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    33f8ce2 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of #72445 - anp:stabilize-track-caller, r=oli-obk

    Stabilize `#[track_caller]`.
    
    # Stabilization Report
    
    RFC: [2091]
    Tracking issue: #47809
    
    ## Summary
    
    From the [rustc-dev-guide chapter][dev-guide]:
    
    > Take this example program:
    
    ```rust
    fn main() {
        let foo: Option<()> = None;
        foo.unwrap(); // this should produce a useful panic message!
    }
    ```
    
    > Prior to Rust 1.42, panics like this `unwrap()` printed a location in libcore:
    
    ```
    $ rustc +1.41.0 example.rs; example.exe
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value',...core\macros\mod.rs:15:40
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    ```
    
    > As of 1.42, we get a much more helpful message:
    
    ```
    $ rustc +1.42.0 example.rs; example.exe
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', example.rs:3:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    ```
    
    > These error messages are achieved through a combination of changes to `panic!` internals to make use of `core::panic::Location::caller` and a number of `#[track_caller]` annotations in the standard library which propagate caller information.
    
    The attribute adds an implicit caller location argument to the ABI of annotated functions, but does not affect the type or MIR of the function. We implement the feature entirely in codegen and in the const evaluator.
    
    ## Bottom Line
    
    This PR stabilizes the use of `#[track_caller]` everywhere, including traits and extern blocks. It also stabilizes `core::panic::Location::caller`, although the use of that function in a const context remains gated by `#![feature(const_caller_location)]`.
    
    The implementation for the feature already changed the output of panic messages for a number of std functions, as described in the [1.42 release announcement]. The attribute's use in `Index` and `IndexMut` traits is visible to users since 1.44.
    
    ## Tests
    
    All of the tests for this feature live under [src/test/ui/rfc-2091-track-caller][tests] in the repo.
    
    Noteworthy cases:
    
    * [use of attr in std]
      * validates user-facing benefit of the feature
    * [trait attribute inheritance]
      * covers subtle behavior designed during implementation and not RFC'd
    * [const/codegen equivalence]
      * this was the result of a suspected edge case and investigation
    * [diverging function support]
      * covers an unresolved question from the RFC
    * [fn pointers and shims]
      * covers important potential sources of unsoundness
    
    ## Documentation
    
    The rustc-dev-guide now has a chapter on [Implicit Caller Location][dev-guide].
    
    I have an [open PR to the reference][attr-reference-pr] documenting the attribute.
    
    The intrinsic's [wrapper] includes some examples as well.
    
    ## Implementation History
    
    * 2019-10-02: [`#[track_caller]` feature gate (RFC 2091 1/N) #65037](#65037)
      * Picked up the patch that @ayosec had started on the feature gate.
    * 2019-10-13: [Add `Instance::resolve_for_fn_ptr` (RFC 2091 #2/N) #65182](#65182)
    * 2019-10-20: ~~[WIP Add MIR argument for #[track_caller] (RFC 2091 3/N) #65258](#65258
      * Abandoned approach to send location as a MIR argument.
    * 2019-10-28: [`std::panic::Location` is a lang_item, add `core::intrinsics::caller_location` (RFC 2091 3/N) #65664](#65664)
    * 2019-12-07: [Implement #[track_caller] attribute. (RFC 2091 4/N) #65881](#65881)
    * 2020-01-04: [libstd uses `core::panic::Location` where possible. #67137](#67137)
    * 2020-01-08: [`Option::{expect,unwrap}` and `Result::{expect, expect_err, unwrap, unwrap_err}` have `#[track_caller]` #67887](#67887)
    * 2020-01-20: [Fix #[track_caller] and function pointers #68302](#68302) (fixed #68178)
    * 2020-03-23: [#[track_caller] in traits #69251](#69251)
    * 2020-03-24: [#[track_caller] on core::ops::{Index, IndexMut}. #70234](#70234)
    * 2020-04-08 [Support `#[track_caller]` on functions in `extern "Rust" { ... }` #70916](#70916)
    
    ## Unresolveds
    
    ### From the RFC
    
    > Currently the RFC simply prohibit applying #[track_caller] to trait methods as a future-proofing
    > measure.
    
    **Resolved.** See the dev-guide documentation and the tests section above.
    
    > Diverging functions should be supported.
    
    **Resolved.** See the tests section above.
    
    > The closure foo::{{closure}} should inherit most attributes applied to the function foo, ...
    
    **Resolved.** This unknown was related to specifics of the implementation which were made irrelevant by the final implementation.
    
    ### Binary Size
    
    I [instrumented track_caller to use custom sections][measure-size] in a local build and discovered relatively minor binary size usage for the feature overall. I'm leaving the issue open to discuss whether we want to upstream custom section support.
    
    There's an [open issue to discuss mitigation strategies][mitigate-size]. Some decisions remain about the "right" strategies to reduce size without overly constraining the compiler implementation. I'd be excited to see someone carry that work forward but my opinion is that we shouldn't block stabilization on implementing compiler flags for redaction.
    
    ### Specialization
    
    There's an [open issue][specialization] on the semantics of the attribute in specialization chains. I'm inclined to move forward with stabilization without an exact resolution here given that specialization is itself unstable, but I also think it should be an easy question to resolve.
    
    ### Location only points to the start of a call span
    
    #69977 was resolved by #73182, and the next step should probably be to [extend `Location` with a notion of the end of a call](#73554).
    
    ### Regression of std's panic messages
    
    #70963 should be resolved by serializing span hygeine to crate metadata: #68686.
    
    [2091]: https://github.com/rust-lang/rfcs/blob/master/text/2091-inline-semantic.md
    [dev-guide]: https://rustc-dev-guide.rust-lang.org/codegen/implicit-caller-location.html
    [specialization]: #70293
    [measure-size]: #70579
    [mitigate-size]: #70580
    [attr-reference-pr]: rust-lang/reference#742
    [wrapper]: https://doc.rust-lang.org/nightly/core/panic/struct.Location.html#method.caller
    [tests]: https://github.com/rust-lang/rust/tree/master/src/test/ui/rfc-2091-track-caller
    [const/codegen equivalence]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/caller-location-fnptr-rt-ctfe-equiv.rs
    [diverging function support]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/diverging-caller-location.rs
    [use of attr in std]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/std-panic-locations.rs
    [fn pointers and shims]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/tracked-fn-ptr-with-arg.rs
    [trait attribute inheritance]: https://github.com/rust-lang/rust/blob/master/src/test/ui/rfc-2091-track-caller/tracked-trait-impls.rs
    [1.42 release announcement]: https://blog.rust-lang.org/2020/03/12/Rust-1.42.html#useful-line-numbers-in-option-and-result-panic-messages
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    ae79c30 View commit details
    Browse the repository at this point in the history
  15. Rollup merge of #73466 - matthiaskrgr:char_into_string, r=dtolnay

    impl From<char> for String
    
    This allows us to write
    
    ````rust
    fn char_to_string() -> String {
        'a'.into()
    }
    ````
    
    which was not possible before.
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    b7d13c0 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    39209ac View commit details
    Browse the repository at this point in the history
  17. Rollup merge of #73649 - Anirban166:patch-1, r=steveklabnik

    Fix sentence structure
    
    Fixed grammar and sentence structure on appropriate instances.
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    0eb9799 View commit details
    Browse the repository at this point in the history
  18. Rollup merge of #73678 - Keno:patch-1, r=LukasKalbertodt

    Update Box::from_raw example to generalize better
    
    I know very little about rust, so I saw the example here
    ```
    use std::alloc::{alloc, Layout};
    
    unsafe {
        let ptr = alloc(Layout::new::<i32>()) as *mut i32;
        *ptr = 5;
        let x = Box::from_raw(ptr);
    }
    ```
    and tried to generalize it by writing,
    ```
        let layout = Layout::new::<T>();
        let new_obj = unsafe {
            let ptr = alloc(layout) as *mut T;
            *ptr = obj;
            Box::from_raw(ptr)
        };
    ```
    for some more complicated `T`, which ended up crashing with SIGSEGV,
    because it tried to `drop_in_place` the previous object in `ptr` which is
    of course garbage. I think that changing this example to use `.write` instead
    would be a good idea to suggest the correct generalization. It is also more
    consistent with other documentation items in this file, which use `.write`.
    I also added a comment to explain it, but I'm not too attached to that,
    and can see it being too verbose in this place.
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    6556f26 View commit details
    Browse the repository at this point in the history
  19. Rollup merge of #73705 - lcnr:skip_binder, r=nikomatsakis

    stop taking references in Relate
    
    Adds a `Copy` bound to `Relate` and changes the type signatures to `T` from `&T`. While the `Copy` bound is not strictly necessary (i.e. the `Clone` bound of `TypeRelation` would be good enough), we don't need non `Copy` types and it simplifies the implementation.
    
    Removes the afaict unused impls for `Vec<ty::PolyExistentialProjection<'tcx>>`, `Rc<T>` and `Box<T>`. If they end up being relevant again the bound of `Relate` can be reduced to `T: Clone`.
    
    This also changes signature of `Binder::skip_binder` to `fn skip_binder(self) -> T`.
    
    `TypeError::ProjectionBoundsLength` was never used and is also removed in this PR.
    
    r? @nikomatsakis maybe 🤔 feel free to reassign
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    9c65486 View commit details
    Browse the repository at this point in the history
  20. Rollup merge of #73716 - poliorcetics:static-keyword, r=LukasKalbertodt

    Document the static keyword
    
    Partial fix of #34601.
    
    This documents the `static` keyword. It's basically a simplified version of the reference with more examples.
    
    @rustbot modify labels: T-doc,C-enhancement
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    8ac17d1 View commit details
    Browse the repository at this point in the history
  21. Rollup merge of #73752 - TyPR124:invalid-parameter-error, r=LukasKalb…

    …ertodt
    
    Remap Windows ERROR_INVALID_PARAMETER to ErrorKind::InvalidInput from Other
    
    I don't know if this is acceptable or how likely it is to break existing code, but it seem to me ERROR_INVALID_PARAMETER "The parameter is incorrect" should map to ErrorKind::InvalidInput "A parameter was incorrect". Previously this value fell through to ErrorKind::Other.
    
    I can't speak for anyone but myself, but I instinctively thought it would be InvalidInput.
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    3951a98 View commit details
    Browse the repository at this point in the history
  22. Rollup merge of #73776 - aszenz:refactor_mir_module, r=wesleywiser

    Move terminator to new module
    
    Moves terminator types from `librustc_middle/mir/mod.rs` into submodule
    Fixes #73723
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    d6bee55 View commit details
    Browse the repository at this point in the history
  23. Rollup merge of #73778 - nbdd0121:const_likely, r=oli-obk

    Make `likely` and `unlikely` const, gated by feature `const_unlikely`
    
    This PR also contains a fix to allow `#[allow_internal_unstable]` to work properly with `#[rustc_const_unstable]`.
    
    cc @RalfJung @nagisa
    
    r? @oli-obk
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    ec41d01 View commit details
    Browse the repository at this point in the history
  24. Rollup merge of #73805 - poliorcetics:type-keyword, r=kennytm

    Document the type keyword
    
    Partial fix of #34601.
    
    Two small examples, one clarifying that `type` only defines an alias, not a completely new type, the other explaining the use in traits.
    
    @rustbot modify labels: T-doc,C-enhancement
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    178b0c2 View commit details
    Browse the repository at this point in the history
  25. Rollup merge of #73806 - Aaron1011:feature/approx-universal-upper, r=…

    …estebank
    
    Use an 'approximate' universal upper bound when reporting region errors
    
    Fixes #67765
    
    When reporting errors during MIR region inference, we sometimes use
    `universal_upper_bound` to obtain a named universal region that we
    can display to the user. However, this is not always possible - in a
    case like `fn foo<'a, 'b>() { .. }`, the only upper bound for a region
    containing `'a` and `'b` is `'static`. When displaying diagnostics, it's
    usually better to display *some* named region (even if there are
    multiple involved) rather than fall back to a generic error involving
    `'static`.
    
    This commit adds a new `approx_universal_upper_bound` method, which
    uses the lowest-numbered universal region if the only alternative is to
    return `'static`.
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    f213957 View commit details
    Browse the repository at this point in the history
  26. Rollup merge of #73828 - nop:fix/parameter-name-help, r=estebank

    Fix wording for anonymous parameter name help
    
    ```
     --> exercises/functions/functions2.rs:8:15
      |
    8 | fn call_me(num) {
      |               ^ expected one of `:`, `@`, or `|`
      |
      = note: anonymous parameters are removed in the 2018 edition (see RFC 1685)
    help: if this is a `self` type, give it a parameter name
      |
    8 | fn call_me(self: num) {
      |            ^^^^^^^^^
    help: if this was a parameter name, give it a type
      |
    8 | fn call_me(num: TypeName) {
      |            ^^^^^^^^^^^^^
    help: if this is a type, explicitly ignore the parameter name
      |
    8 | fn call_me(_: num) {
      |
    ```
    This commit changes "if this was a parameter name" to "if this is a parameter name" to match the wording of similar errors.
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    db900d4 View commit details
    Browse the repository at this point in the history
  27. Rollup merge of #73846 - pierwill:pierwill-patch-2, r=joshtriplett

    Fix comma in debug_assert! docs
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    affd950 View commit details
    Browse the repository at this point in the history
  28. Rollup merge of #73847 - pierwill:pierwill-cursor-doc, r=matthewjasper

    Edit cursor.prev() method docs in lexer
    
    Fix missing punctuation
    Manishearth committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    c9b3e86 View commit details
    Browse the repository at this point in the history
  29. Auto merge of #73924 - Manishearth:rollup-8r51ld9, r=Manishearth

    Rollup of 17 pull requests
    
    Successful merges:
    
     - #72071 (Added detailed error code explanation for issue E0687 in Rust compiler.)
     - #72369 (Bring net/parser.rs up to modern up to date with modern rust patterns)
     - #72445 (Stabilize `#[track_caller]`.)
     - #73466 (impl From<char> for String)
     - #73548 (remove rustdoc warnings)
     - #73649 (Fix sentence structure)
     - #73678 (Update Box::from_raw example to generalize better)
     - #73705 (stop taking references in Relate)
     - #73716 (Document the static keyword)
     - #73752 (Remap Windows ERROR_INVALID_PARAMETER to ErrorKind::InvalidInput from Other)
     - #73776 (Move terminator to new module)
     - #73778 (Make `likely` and `unlikely` const, gated by feature `const_unlikely`)
     - #73805 (Document the type keyword)
     - #73806 (Use an 'approximate' universal upper bound when reporting region errors)
     - #73828 (Fix wording for anonymous parameter name help)
     - #73846 (Fix comma in debug_assert! docs)
     - #73847 (Edit cursor.prev() method docs in lexer)
    
    Failed merges:
    
    r? @ghost
    bors committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    f781bab View commit details
    Browse the repository at this point in the history
  30. Fix comment typo

    kraai committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    9ce1d19 View commit details
    Browse the repository at this point in the history
  31. Document the CMake defines.

    aspen committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    4fd1c77 View commit details
    Browse the repository at this point in the history
  32. Also document iphoneos-version-min.

    aspen committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    22e8ced View commit details
    Browse the repository at this point in the history
  33. Configuration menu
    Copy the full SHA
    5da0576 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    c844028 View commit details
    Browse the repository at this point in the history
  35. Handle None-delimited groups when parsing macro_rules! macro

    When a `macro_rules!` macro expands to another `macro_rules!` macro, we
    may see `None`-delimited groups in odd places when another crate
    deserializes the 'inner' macro. This commit 'unwraps' an outer
    `None`-delimited group to avoid breaking existing code.
    
    See #73569 (comment)
    for more details.
    
    The proper fix is to handle `None`-delimited groups systematically
    throughout the parser, but that will require significant work. In the
    meantime, this hack lets us fix important hygiene bugs in macros
    Aaron1011 committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    1ded7a5 View commit details
    Browse the repository at this point in the history
  36. Explicitly check for iOS/tvOS.

    aspen committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    67b162f View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    eb4ba55 View commit details
    Browse the repository at this point in the history
  38. Configuration menu
    Copy the full SHA
    86d8644 View commit details
    Browse the repository at this point in the history
  39. Auto merge of #72053 - Mark-Simulacrum:32bitcheck, r=pietroalbini

    Test UI tests for pass=check
    
    I'm going to just compare the builder times since I wasn't able to get this working nicely locally (hit some obscure linker error).
    
    Fixes part of #69823
    bors committed Jul 1, 2020
    Configuration menu
    Copy the full SHA
    9491f18 View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    0b9bc79 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2020

  1. Rollup merge of #72569 - ChrisDenton:remove-innosetup, r=nikomatsakis

    Remove legacy InnoSetup GUI installer
    
    On Windows the InnoSetup `.exe` installer was superseded by the MSI installer long ago. It's no longer needed.
    
    The `.exe` installer hasn't been linked from the [other installation methods](https://forge.rust-lang.org/infra/other-installation-methods.html#standalone) page in many years. As far as I can tell the intent was always to remove this installer once the MSI proved itself. Though admittedly both installers feel very "legacy" at this point.
    
    Removing this would mean we only maintain one Windows GUI installer and would speed up the distribution phase.
    
    As a result of removing InnoSetup, this closes #24397
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    fb976e6 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of #73306 - calebzulawski:target-feature-11-fn-trait-sou…

    …ndness, r=nikomatsakis
    
    Don't implement Fn* traits for #[target_feature] functions
    
    Closes #72012.
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    3d391d2 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of #73345 - petrochenkov:nointerp, r=Aaron1011

    expand: Stop using nonterminals for passing tokens to attribute and derive macros
    
    Make one more step towards fully token-based expansion and fix issues described in #72545 (comment).
    
    Now `struct S;` is passed to `foo!(struct S;)` and `#[foo] struct S;` in the same way - as a token stream `struct S ;`, rather than a single non-terminal token `NtItem` which is then broken into parts later.
    
    The cost is making pretty-printing of token streams less pretty.
    Some of the pretty-printing regressions will be recovered by keeping jointness with each token, which we will need to do anyway.
    
    Unfortunately, this is not exactly the same thing as #73102.
    One more observable effect is how `$crate` is printed in the attribute input.
    Inside `NtItem` was printed as `crate` or `that_crate`, now as a part of a token stream it's printed as `$crate` (there are good reasons for these differences, see #62393 and related PRs).
    This may break old proc macros (custom derives) written before the main portion of the proc macro API (macros 1.2) was stabilized, those macros did `input.to_string()` and reparsed the result, now that result can contain `$crate` which cannot be reparsed.
    
    So, I think we should do this regardless, but we need to run crater first.
    r? @Aaron1011
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    8ed5c0d View commit details
    Browse the repository at this point in the history
  4. Rollup merge of #73449 - ehuss:duplicate-lang-item, r=matthewjasper

    Provide more information on duplicate lang item error.
    
    This gives some notes on the location of the files where the lang items were loaded from. Some duplicate lang item errors can be a little confusing, and this might help in diagnosing what has happened.
    
    Here's an example when hitting a bug with Cargo's build-std:
    
    ```
    error: duplicate lang item in crate `core` (which `rustc_std_workspace_core` depends on): `try`.
      |
      = note: the lang item is first defined in crate `core` (which `z10` depends on)
      = note: first definition in `core` loaded from /Users/eric/Proj/rust/cargo/scratch/z10/target/target/debug/deps/libcore-a764da499c7385f4.rmeta
      = note: second definition in `core` loaded from /Users/eric/Proj/rust/cargo/scratch/z10/target/target/debug/deps/libcore-5b082675aea34986.rmeta
    ```
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    6b57050 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of #73569 - Aaron1011:fix/macro-rules-group, r=petrochenkov

    Handle `macro_rules!` tokens consistently across crates
    
    When we serialize a `macro_rules!` macro, we used a 'lowered' `TokenStream` for its body, which has all `Nonterminal`s expanded in-place via `nt_to_tokenstream`. This matters when an 'outer' `macro_rules!` macro expands to an 'inner' `macro_rules!` macro - the inner macro may use tokens captured from the 'outer' macro in its definition.
    
    This means that invoking a foreign `macro_rules!` macro may use a different body `TokenStream` than when the same `macro_rules!` macro is invoked in the same crate. This difference is observable by proc-macros invoked by a `macro_rules!` macro - a `None`-delimited group will be seen in the same-crate case (inserted when convering `Nonterminal`s to the `proc_macro` crate's structs), but no `None`-delimited group in the cross-crate case.
    
    To fix this inconsistency, we now insert `None`-delimited groups when 'lowering' a `Nonterminal` `macro_rules!` body, just as we do in `proc_macro_server`. Additionally, we no longer print extra spaces for `None`-delimited groups - as far as pretty-printing is concerned, they don't exist (only their contents do). This ensures that `Display` output of a `TokenStream` does not depend on which crate a `macro_rules!` macro was invoked from.
    
    This PR is necessary in order to patch the `solana-genesis-programs` for the upcoming hygiene serialization breakage (#72121 (comment)). The `solana-genesis-programs` crate will need to use a proc macro to re-span certain tokens in a nested `macro_rules!`, which requires us to consistently use a `None`-delimited group.
    
    See `src/test/ui/proc-macro/nested-macro-rules.rs` for an example of the kind of nested `macro_rules!` affected by this crate.
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    ce49944 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of #73803 - Aaron1011:feature/angle-field-recovery, r=ma…

    …tthewjasper
    
    Recover extra trailing angle brackets in struct definition
    
    This commit applies the existing 'extra angle bracket recovery' logic
    when parsing fields in struct definitions. This allows us to continue
    parsing the struct's fields, avoiding spurious 'missing field' errors in
    code that tries to use the struct.
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    5d429f3 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of #73839 - crlf0710:snapshot_the_reality, r=Manishearth

    Split and expand nonstandard-style lints unicode unit test.
    
    RFC 2457 requested that the `nonstandard_style` series of linted be adjusted to cover the non_ascii_identifier case. However when i read the code of those implementations, it seems they're already supporting non_ascii_identifiers. But the exact rules is a little different than what's proposed in RFC 2457.
    
    So I splitted and expanded the existing test case to try to exercise every branch in the code. I think it'll also be easier to examine the cases in these unit tests to see whether it's ok to just leave them as is, or some adjustments are needed.
    
    r? @Manishearth
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    244dd28 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of #73841 - tmiasko:print-region-graph, r=Mark-Simulacrum

    Remove defunct `-Z print-region-graph`
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    e04070a View commit details
    Browse the repository at this point in the history
  9. Rollup merge of #73848 - pierwill:pierwill-lexer-block-doc, r=jonas-s…

    …chievink
    
    Fix markdown rendering in librustc_lexer docs
    
    Use back-ticks instead of quotation marks in docs for the block comment variant of TokenKind.
    
    ## [Before](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_lexer/enum.TokenKind.html#variant.BlockComment) and after
    
    <img width="1103" alt="Screen Shot 2020-06-28 at 1 22 30 PM" src="https://user-images.githubusercontent.com/19642016/85957562-446a8380-b943-11ea-913a-442cf7744083.png">
    
    <img width="1015" alt="Screen Shot 2020-06-28 at 1 28 29 PM" src="https://user-images.githubusercontent.com/19642016/85957566-4af8fb00-b943-11ea-8fef-a09c1d586772.png">
    
    ## Question
    
    For visual consistency, should we use back-ticks throughout the docs for these enum variants?
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    8d638f4 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of #73865 - LeSeulArtichaut:patch-1, r=Dylan-DPC

    Fix Zulip topic format
    
    Yet another instance of me making a mistake after copy-pasting :D
    r? @Dylan-DPC
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    89429a8 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of #73892 - GuillaumeGomez:cleanup-e0712, r=Dylan-DPC

    Clean up E0712 explanation
    
    r? @Dylan-DPC
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    1b37bfa View commit details
    Browse the repository at this point in the history
  12. Rollup merge of #73898 - lcnr:issue61383, r=jonas-schievink

    remove duplicate test for #61935
    
    Apparently I somehow messed up the issue number in #67890
    which caused us to add this test twice, both as https://github.com/rust-lang/rust/blob/master/src/test/ui/const-generics/issues/issue-61935.rs and https://github.com/rust-lang/rust/blob/master/src/test/ui/const-generics/lazy-normalization/issue-71922.rs
    
    #61935 is the actually fixed issue while #71922 is still not working, as it depends on lazy norm of repeat expressions
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    37e812e View commit details
    Browse the repository at this point in the history
  13. Rollup merge of #73906 - JohnTitor:missing-bt, r=jonas-schievink

    Add missing backtick in `ty_error_with_message`
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    9046f23 View commit details
    Browse the repository at this point in the history
  14. Rollup merge of #73909 - eltonlaw:unsafe-libstd-fs-rs, r=sfackler

    `#[deny(unsafe_op_in_unsafe_fn)]` in libstd/fs.rs
    
    The `libstd/fs.rs` part of #73904 . Wraps the two calls to an unsafe fn `Initializer::nop()` in an `unsafe` block.
    
    Followed instructions in parent issue, ran `./x.py check src/libstd/` after adding the lint and two warnings were given. After adding these changes, those disappear.
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    441f04b View commit details
    Browse the repository at this point in the history
  15. Rollup merge of #73910 - cuviper:while-indexing, r=oli-obk

    Rewrite a few manual index loops with while-let
    
    There were a few instances of this pattern:
    
    ```rust
    while index < vec.len() {
        let item = &vec[index];
        // ...
    }
    ```
    
    These can be indexed at once:
    
    ```rust
    while let Some(item) = vec.get(index) {
        // ...
    }
    ```
    
    Particularly in `ObligationForest::process_obligations`, this mitigates
    a codegen regression found with LLVM 11 (#73526).
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    8fcb015 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    d7be1e4 View commit details
    Browse the repository at this point in the history
  17. Rollup merge of #73414 - lzutao:slice_strip, r=dtolnay

    Implement `slice_strip` feature
    
    Tracking issue: #73413
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    63d392e View commit details
    Browse the repository at this point in the history
  18. Rollup merge of #73564 - petrochenkov:ehdr, r=Amanieu

    linker: Create GNU_EH_FRAME header by default when producing ELFs
    
    Do it in a centralized way in `link.rs` instead of individual target specs.
    
    The opt-out is `-Clink-arg=(-Wl,)--no-eh-frame-hdr` if necessary.
    
    Fixes #73451
    cc #73483
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    1c68bb6 View commit details
    Browse the repository at this point in the history
  19. Rollup merge of #73622 - LeSeulArtichaut:unsafe-libcore, r=nikomatsakis

    Deny unsafe ops in unsafe fns in libcore
    
    After `liballoc`, It's time for `libcore` :D
    
    I planned to do this bit by bit to avoid having a big chunk of diffs, so to make reviews easier, and to make the unsafe blocks narrower and take the time to document them properly.
    
    r? @nikomatsakis cc @RalfJung
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    500634b View commit details
    Browse the repository at this point in the history
  20. Rollup merge of #73684 - richkadel:llvm-coverage-map-gen-2, r=wesleyw…

    …iser
    
    add spans to injected coverage counters, extract with CoverageData query
    
    This is the next iteration on the Rust Coverage implementation, and follows PR #73488
    
    @tmandry @wesleywiser
    
    I came up with an approach for coverage spans, pushing them through the Call terminator as additional args so they can be extracted by the CoverageData query.
    
    I'm using an IndexVec to store them in CoverageData such that there can be only one per index (even if parts of the MIR get duplicated during optimization).
    
    If this approach works for you, I can quickly expand on this to build a separate IndexVec for counter expressions, using a separate call that will be ignored during code generation, but from which I can extract the counter expression values.
    
    Let me know your thoughts. Thanks!
    
    r? @tmandry
    
    Rust compiler MCP rust-lang/compiler-team#278
    Relevant issue: #34701 - Implement support for LLVMs code coverage instrumentation
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    dc762ce View commit details
    Browse the repository at this point in the history
  21. Rollup merge of #73812 - petrochenkov:prettyref, r=varkor

    ast_pretty: Pass some token streams and trees by reference
    
    Salvaged from an intermediate version of #73345.
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    32f5e63 View commit details
    Browse the repository at this point in the history
  22. Rollup merge of #73853 - pierwill:pierwill-multispan-doc, r=jonas-sch…

    …ievink
    
    Add newline to rustc MultiSpan docs
    
    Also adds back-ticks when referring to the contents of this collection.
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    294b972 View commit details
    Browse the repository at this point in the history
  23. Rollup merge of #73883 - ehuss:rustdoc-stage-previous, r=Mark-Simulacrum

    Compile rustdoc less often.
    
    Previously rustdoc was built 3 times with `x.py test`:
    
    1. stage2 (using stage1 compiler) for compiletest tests (stage1-tools copied to stage2).
    2. stage1 (using stage0 compiler) for std crate tests (stage0-tools copied to stage1).
    3. stage2 test (using stage2 compiler) for rustdoc crate tests and error_index_generator (stage2-tools).
    
    This PR removes the majority of number 3, where it will instead use the stage1 compiler, which will share the artifacts from number 1.
    
    This matches the behavior of the libstd crate tests. I don't think it is entirely necessary to run the tests using stage2.
    
    At `-j2`, the last build step goes from about 300s to 70s on my machine. It's not a huge win, but shaving 4 minutes isn't bad.
    
    The other two builds would be pretty difficult (or undesired or impossible) to unify. It looks like std tests use stage1 very intentionally (see `force_use_stage1` and its history), and compiletests use the top stage very intentionally.
    
    Unfortunately the linkchecker builds all docs at stage2 (stage2-tools), which means a few build script artifacts are not shared. It's not really clear to me how to fix that (because it uses `default_doc`, there doesn't seem to be any control over the stages).
    
    ---
    
    For `x.py doc`, rustdoc was previously built three times (with compiler-docs):
    
    1. stage2 (using stage1 compiler) for normal documentation output (stage1-tools copied to stage2).
    2. stage1 (using stage0 compiler) for compiler-docs
    3. stage2 (using stage2 compiler) for error_index_generator (stage2-tools)
    
    This PR combines these so that they consistently use the "top stage" rustdoc. I don't know why the compiler-docs was written to use stage minus one, but it seems better to be consistent across the doc steps.
    
    ---
    
    I've tried to test this with a variety of commands (`x.py doc`, `x.py test`, different `--stage` flags, `full-bootstrap`, setting `--target`, etc.) to try to make sure there aren't significant regressions here. It's tricky since there are so many variables, and this stuff is difficult for me to fully understand.
    
    Closes #70799 (I think)
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    7b2f44a View commit details
    Browse the repository at this point in the history
  24. Rollup merge of #73885 - pietroalbini:ci-fix-wasm32, r=kennytm

    Fix wasm32 being broken due to a NodeJS version bump
    
    Emscripten's SDK [recently bumped the version of NodeJS they shipped](emscripten-core/emsdk#529), but our Dockerfile for the wasm32 builder hardcoded the version number. This will cause consistent CI failures once the currently cached image is rebuilt (either due to a change or due to the cache expiring).
    
    This PR fixes the problem by finding the latest version of NodeJS in the Emscripten SDK and symlinking it to a "latest" directory, which is then added to the `PATH`.
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    4593e9f View commit details
    Browse the repository at this point in the history
  25. Rollup merge of #73903 - luxxxxy:ios-rustc, r=nikomatsakis

    Changes required for rustc/cargo to build for iOS targets
    
    cargo, rustc, clippy, rust-src, and rust-analysis successfully build for `aarch64-apple-ios` with these changes.
    
    NOTE: cargo required arm64-ios openssl/libcurl to be linked.
    
    ![image](https://user-images.githubusercontent.com/65794972/86178510-75d78080-baf6-11ea-9c17-b74bd6c85272.png)
    ![image](https://user-images.githubusercontent.com/65794972/86178525-7bcd6180-baf6-11ea-9974-f99980cbdb24.png)
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    061f1c6 View commit details
    Browse the repository at this point in the history
  26. Rollup merge of #73938 - nbdd0121:checked_opt, r=nagisa

    Optimise fast path of checked_ops with `unlikely`
    
    This PR marks paths returning `None` in checked_ops as unlikely to improvde codegen.
    
    Fixes #73731
    Manishearth committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    4f536f2 View commit details
    Browse the repository at this point in the history
  27. Auto merge of #73950 - Manishearth:rollup-0dtxnit, r=Manishearth

    Rollup of 16 pull requests
    
    Successful merges:
    
     - #72569 (Remove legacy InnoSetup GUI installer)
     - #73306 (Don't implement Fn* traits for #[target_feature] functions)
     - #73345 (expand: Stop using nonterminals for passing tokens to attribute and derive macros)
     - #73449 (Provide more information on duplicate lang item error.)
     - #73569 (Handle `macro_rules!` tokens consistently across crates)
     - #73803 (Recover extra trailing angle brackets in struct definition)
     - #73839 (Split and expand nonstandard-style lints unicode unit test.)
     - #73841 (Remove defunct `-Z print-region-graph`)
     - #73848 (Fix markdown rendering in librustc_lexer docs)
     - #73865 (Fix Zulip topic format)
     - #73892 (Clean up E0712 explanation)
     - #73898 (remove duplicate test for #61935)
     - #73906 (Add missing backtick in `ty_error_with_message`)
     - #73909 (`#[deny(unsafe_op_in_unsafe_fn)]` in libstd/fs.rs)
     - #73910 (Rewrite a few manual index loops with while-let)
     - #73929 (Fix comment typo)
    
    Failed merges:
    
    r? @ghost
    bors committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    b7856f6 View commit details
    Browse the repository at this point in the history
  28. Auto merge of #73954 - Manishearth:rollup-8qvh170, r=Manishearth

    Rollup of 10 pull requests
    
    Successful merges:
    
     - #73414 (Implement `slice_strip` feature)
     - #73564 (linker: Create GNU_EH_FRAME header by default when producing ELFs)
     - #73622 (Deny unsafe ops in unsafe fns in libcore)
     - #73684 (add spans to injected coverage counters, extract with CoverageData query)
     - #73812 (ast_pretty: Pass some token streams and trees by reference)
     - #73853 (Add newline to rustc MultiSpan docs)
     - #73883 (Compile rustdoc less often.)
     - #73885 (Fix wasm32 being broken due to a NodeJS version bump)
     - #73903 (Changes required for rustc/cargo to build for iOS targets)
     - #73938 (Optimise fast path of checked_ops with `unlikely`)
    
    Failed merges:
    
    r? @ghost
    bors committed Jul 2, 2020
    Configuration menu
    Copy the full SHA
    8a6d434 View commit details
    Browse the repository at this point in the history