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 13 pull requests #58413

Closed
wants to merge 38 commits into from
Closed

Rollup of 13 pull requests #58413

wants to merge 38 commits into from

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
  3. Configuration menu
    Copy the full SHA
    703540d View commit details
    Browse the repository at this point in the history
  4. Update const fn tests

    varkor committed Feb 5, 2019
    Configuration menu
    Copy the full SHA
    5a16a25 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2019

  1. Fix documentation typo

    varkor committed Feb 6, 2019
    Configuration menu
    Copy the full SHA
    8a7df4f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    13bbba2 View commit details
    Browse the repository at this point in the history
  3. 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
    3f30ed9 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
    fa29099 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
    48ba561 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
    76b6bda 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
    f6da289 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
    4e68da2 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#58196 - varkor:const-fn-feature-gate-error,…

    … r=oli-obk
    
    Add specific feature gate error for const-unstable features
    
    Before:
    ```
    error: `impl Trait` in const fn is unstable
     --> src/lib.rs:7:19
      |
    7 | const fn foo() -> impl T {
      |                   ^^^^^^
    
    error: aborting due to previous error
    ```
    
    After:
    ```
    error[E0723]: `impl Trait` in const fn is unstable (see issue rust-lang#57563)
     --> src/lib.rs:7:19
      |
    7 | const fn foo() -> impl T {
      |                   ^^^^^^
      = help: add #![feature(const_fn)] to the crate attributes to enable
    
    error: aborting due to previous error
    ```
    
    This improves the situation with rust-lang#57563. Fixes rust-lang#57544. Fixes rust-lang#54469.
    
    r? @oli-obk
    Centril authored Feb 13, 2019
    Configuration menu
    Copy the full SHA
    937838f View commit details
    Browse the repository at this point in the history
  8. 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
    414f7ec View commit details
    Browse the repository at this point in the history
  9. 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
    55bc4f6 View commit details
    Browse the repository at this point in the history
  10. 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
    41488c8 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    858258a View commit details
    Browse the repository at this point in the history
  12. 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
    6f50834 View commit details
    Browse the repository at this point in the history
  13. 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
    3883319 View commit details
    Browse the repository at this point in the history