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 12 pull requests #58415

Merged
merged 34 commits into from
Feb 13, 2019
Merged

Rollup of 12 pull requests #58415

merged 34 commits into from
Feb 13, 2019

Commits on Jan 21, 2019

  1. Speed up the fast path for assert_eq! and assert_ne!

    Currently, the panic!() calls directly borrow the value bindings. This
    causes those bindings to always be initialized, i.e. they're initialized
    even before the values are even compared. This causes noticeable
    overhead in what should be a really cheap operation.
    
    By performing a reborrow of the value in the call to panic!(), we allow
    LLVM to optimize that code, so that the extra borrow only happens in the
    error case.
    
    We could achieve the same result by dereferencing the values passed to
    panic!(), as the format machinery borrows them anyway, but this causes
    assertions to fail to compile if one of the values is unsized, i.e. it
    would be a breaking change.
    dotdash committed Jan 21, 2019
    Configuration menu
    Copy the full SHA
    5a7cd84 View commit details
    Browse the repository at this point in the history

Commits on Jan 31, 2019

  1. Configuration menu
    Copy the full SHA
    f841ff4 View commit details
    Browse the repository at this point in the history
  2. Simplify lambdas

    faern committed Jan 31, 2019
    Configuration menu
    Copy the full SHA
    2f2d495 View commit details
    Browse the repository at this point in the history

Commits on Feb 5, 2019

  1. Configuration menu
    Copy the full SHA
    346dc37 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    113b7f7 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2019

  1. Configuration menu
    Copy the full SHA
    13bbba2 View commit details
    Browse the repository at this point in the history
  2. add tracking issue

    RalfJung committed Feb 6, 2019
    Configuration menu
    Copy the full SHA
    a996f2c View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2019

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

Commits on Feb 9, 2019

  1. impl iter_sources() and iter_chain() for dyn Error

    Examples:
    
    ```rust
    let next_error_type_a = err
        .iter_chain()
        .filter_map(Error::downcast_ref::<ErrorTypeA>)
        .next();
    ```
    
    ```rust
    let source_root_error = err.iter_chain().last();
    ```
    
    Credit for the ErrorIter goes to Tim Diekmann
    https://www.reddit.com/r/rust/comments/aj3lpg/is_an_iterator_impl_over_errorsource_possible/
    haraldh committed Feb 9, 2019
    Configuration menu
    Copy the full SHA
    f06af1f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3a1a704 View commit details
    Browse the repository at this point in the history
  3. cleanup: remove hir_path_str

    ljedrz committed Feb 9, 2019
    Configuration menu
    Copy the full SHA
    eb669b3 View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2019

  1. Configuration menu
    Copy the full SHA
    aafbf74 View commit details
    Browse the repository at this point in the history
  2. Doc rewording

    king6cong committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    b284c8d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    04f425d View commit details
    Browse the repository at this point in the history
  4. Added tests.

    alexreg committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    370f1f2 View commit details
    Browse the repository at this point in the history
  5. use Ubuntu keyserver for CloudABI ports

    The Ubuntu keyserver is more reliable than the MIT PGP server, which is
    prone to going down. This commit also explicitly uses port 80 on the
    keyserver for reasons outlined in rust-lang#57844.
    euclio committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    8b21a55 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3733b32 View commit details
    Browse the repository at this point in the history
  7. Remove some dead code from libcore

    These macros are not required to glue the `core_arch` crate anymore.
    gnzlbg committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    1431c21 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    3216c76 View commit details
    Browse the repository at this point in the history
  9. Cleanup imports

    taiki-e committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    c360ba2 View commit details
    Browse the repository at this point in the history
  10. Fix rebase fail

    taiki-e committed Feb 12, 2019
    Configuration menu
    Copy the full SHA
    c08b5ca View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    3a9d171 View commit details
    Browse the repository at this point in the history

Commits on Feb 13, 2019

  1. Rollup merge of rust-lang#57693 - king6cong:word, r=Centril

    Doc rewording
    
    None
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    734cc3e View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#57815 - dotdash:asserts, r=sfackler

    Speed up the fast path for assert_eq! and assert_ne!
    
    Currently, the panic!() calls directly borrow the value bindings. This
    causes those bindings to always be initialized, i.e. they're initialized
    even before the values are even compared. This causes noticeable
    overhead in what should be a really cheap operation.
    
    By performing a reborrow of the value in the call to panic!(), we allow
    LLVM to optimize that code, so that the extra borrow only happens in the
    error case.
    
    We could achieve the same result by dereferencing the values passed to
    panic!(), as the format machinery borrows them anyway, but this causes
    assertions to fail to compile if one of the values is unsized, i.e. it
    would be a breaking change.
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    0ed894a View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#58034 - faern:stabilize-time-checked-add, r…

    …=alexcrichton
    
    Stabilize the time_checked_add feature
    
    Closes rust-lang#55940
    
    Stabilizes `checked_add` and `checked_sub` on `Instant` and `SystemTime`.
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    0ab1057 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#58057 - michaelwoerister:stabilize-xlto, r=…

    …alexcrichton
    
    Stabilize linker-plugin based LTO (aka cross-language LTO)
    
    This PR stabilizes [linker plugin based LTO](rust-lang#49879), also known as "cross-language LTO" because it allows for doing inlining and other optimizations across language boundaries in mixed Rust/C/C++ projects.
    
    As described in the tracking issue, it works by making `rustc` emit LLVM bitcode instead of machine code, the same as `clang` does. A linker with the proper plugin (like LLD) can then run (Thin)LTO across all modules.
    
    The feature has been implemented over a number of pull requests and there are various [codegen](https://github.com/rust-lang/rust/blob/master/src/test/codegen/no-dllimport-w-cross-lang-lto.rs) and [run](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/cross-lang-lto-clang)-[make](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/cross-lang-lto-upstream-rlibs) [tests](https://github.com/rust-lang/rust/tree/master/src/test/run-make-fulldeps/cross-lang-lto) that make sure that it keeps working.
    
    It also works for building big projects like [Firefox](https://treeherder.mozilla.org/#/jobs?repo=try&revision=2ce2d5ddcea6fbff790503eac406954e469b2f5d).
    
    The PR makes the feature available under the `-C linker-plugin-lto` flag. As discussed in the tracking issue it is not cross-language specific and also not LLD specific. `-C linker-plugin-lto` is descriptive of what it does. If someone has a better name, let me know `:)`
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    1c1d2e4 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#58137 - ljedrz:cleanup_node_id_to_type, r=e…

    …stebank
    
    Cleanup: rename node_id_to_type(_opt)
    
    Renames `node_id_to_type(_opt)` to `hir_id_to_type(_opt)`; this makes it clear we are dealing with HIR nodes and their IDs here.
    
    In addition, a drive-by commit removing `ty::item_path::hir_path_str` (as requested by @eddyb).
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    81434cb View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#58166 - euclio:deprecation-shorthand, r=pet…

    …rochenkov
    
    allow shorthand syntax for deprecation reason
    
    Fixes rust-lang#48271.
    
    Created based on discussion in rust-lang#56896.
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    856e411 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#58200 - RalfJung:str-as-mut-ptr, r=SimonSapin

    fix str mutating through a ptr derived from &self
    
    Found by Miri: In `get_unchecked_mut` (also used by the checked variants internally) uses `str::as_ptr` to create a mutable reference, but `as_ptr` takes `&self`.  This means the mutable references we return here got created from a shared reference, which violates the shared-references-are-read-only discipline!
    
    For this by using a newly introduced `as_mut_ptr` instead.
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    ecb6503 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#58273 - taiki-e:rename-dependency, r=matthe…

    …wjasper
    
    Rename rustc_errors dependency in rust 2018 crates
    
    I think this is a better solution than `use rustc_errors as errors` in `lib.rs` and `use crate::errors` in modules.
    
    Related: rust-lang/cargo#5653
    
    cc rust-lang#58099
    
    r? @Centril
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    0bc8f6f View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#58289 - haraldh:master, r=sfackler

    impl iter() for dyn Error
    
    Examples:
    
    ```rust
    let next_error_type_a = err
        .iter()
        .filter_map(Error::downcast_ref::<ErrorTypeA>)
        .next();
    ```
    
    ```rust
    let source_root_error = err.iter().last();
    ```
    
    Credit for the ErrorIter goes to reddit user /u/tdiekmann (Tim Diekmann)
    https://www.reddit.com/r/rust/comments/aj3lpg/is_an_iterator_impl_over_errorsource_possible/
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    5aa260a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a5e869e View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#58404 - euclio:cloudabi-keyserver, r=alexcr…

    …ichton
    
    use Ubuntu keyserver for CloudABI ports
    
    The Ubuntu keyserver is more reliable than the MIT PGP server, which is
    prone to going down. This commit also explicitly uses port 80 on the
    keyserver for reasons outlined in rust-lang#57844.
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    f3c4652 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#58405 - gnzlbg:remove_unused_macros, r=alex…

    …crichton
    
    Remove some dead code from libcore
    
    These macros are not required to glue the `core_arch` crate anymore.
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    6562c28 View commit details
    Browse the repository at this point in the history