Permalink
Commits on Nov 1, 2016
  1. Auto merge of #37491 - Mark-Simulacrum:closure-ice, r=eddyb

    Fix ICE when printing closures, and other similar types
    
    Follow-up of rust-lang#37459, further fixes those problems.
    
    Potentially actually fixes #36622, though @eddyb may want to not let that close if the rename of RUST_LOG is deemed part of that issue.
    
    Potentially should be beta-nominated as well?
    
    r? @eddyb
    bors committed on GitHub Nov 1, 2016
  2. Auto merge of #37332 - nikomatsakis:incr-comp-benchmark-2, r=michaelw…

    …oerister
    
    add more incremental reuse test cases
    
    r? @michaelwoerister
    
    This is basically a port of the "private method in impl". It works better when it's a top-level fn. =)
    bors committed on GitHub Nov 1, 2016
  3. Auto merge of #37299 - devonhollowood:result-unwrap-or-default, r=ale…

    …xcrichton
    
    Add `unwrap_or_default` method to `Result`
    
    Fixes #37025
    bors committed on GitHub Nov 1, 2016
  4. Auto merge of #37178 - apasel422:issue-37136, r=alexcrichton

    Implement `RefUnwindSafe` for atomic types
    
    Closes #37136
    bors committed on GitHub Nov 1, 2016
  5. Auto merge of #36595 - bluss:hashmap-usize-for-hash, r=alexcrichton

    hashmap: Store hashes as usize internally
    
    We can't use more than usize's bits of a hash to select a bucket anyway,
    so we only need to store that part in the table. This should be an
    improvement for the size of the data structure on 32-bit platforms.
    Smaller data means better cache utilization and hopefully better
    performance.
    
    Fixes #36567
    bors committed on GitHub Nov 1, 2016
Commits on Oct 31, 2016
  1. Auto merge of #37497 - iirelu:proper-vec-brackets-2, r=steveklabnik

    Make all vec! macros use square brackets: Attempt 2
    
    [The last PR](rust-lang#37476) ended with tears after a valiant struggle with git. I managed to clean up the completely broken history of that into a brand spanking new PR! Yay!
    
    Original:
    
    > Everyone hates the old syntax. I hope. Otherwise this PR has some controversy I wasn't expecting.
    
    > This would be the perfect time to write a lint recommending vec![..] when you use another style.
    
    > Disclaimer: I may have broken something. If I have, I'll fix them when the tests come in. Luckily the chance for a non-syntactical error is pretty low in all this.
    bors committed on GitHub Oct 31, 2016
  2. Changed most vec! invocations to use square braces

    Most of the Rust community agrees that the vec! macro is clearer when
    called using square brackets [] instead of regular brackets (). Most of
    these ocurrences are from before macros allowed using different types of
    brackets.
    
    There is one left unchanged in a pretty-print test, as the pretty
    printer still wants it to have regular brackets.
    iirelu committed Oct 29, 2016
  3. Auto merge of #37191 - zackmdavis:we_heard_you_the_first_time_really,…

    … r=nikomatsakis
    
    introing one-time diagnostics: only emit "lint level defined here" once
    
    This is a revised resubmission of PR #34084 (which was closed due to inactivity on account of time constraints on the author's part).
    ---
    
    We introduce a new `one_time_diagnostics` field on
    `rustc::session::Session` to hold a hashset of diagnostic messages we've
    set once but don't want to see again (as uniquified by span and message
    text), "lint level defined here" being the motivating example dealt with
    here.
    
    This is in the matter of #24690.
    ---
    
    r? @nikomatsakis
    bors committed on GitHub Oct 31, 2016
  4. Auto merge of #37494 - GuillaumeGomez:rollup, r=GuillaumeGomez

    Rollup of 5 pull requests
    
    - Successful merges: #37438, #37458, #37462, #37475, #37486
    - Failed merges:
    bors committed on GitHub Oct 31, 2016
  5. Rollup merge of #37486 - msiglreith:pr_doc_bitandassign, r=apasel422

    Fix typo in the BitAndAssign operator documentation
    
    The name of the operator should be `&=` instead of `&`.
    GuillaumeGomez committed on GitHub Oct 31, 2016
  6. Rollup merge of #37475 - AndiDog:feature/error-explanation-E0532, r=G…

    …uillaumeGomez
    
    Add E0532 error explanation
    
    This resolves one of the error list in rust-lang#35347 - just because I stumbled over it today.
    
    I assumed the error code should be removed from `register_diagnostics!` because it's now defined above.
    
    Since that is my first code contribution, please check that all is in order. It would be helpful to know how to run the test for the `compile_fail,E0532` part. I did `make check-stage1-cfail NO_REBUILD=1` but that doesn't test the inlined example.
    
    r? @GuillaumeGomez
    GuillaumeGomez committed on GitHub Oct 31, 2016
  7. Rollup merge of #37462 - Mark-Simulacrum:remove-obsolete-fixme, r=pet…

    …rochenkov
    
    Remove outdated fixme comment.
    
    Linked issue has been closed, but the comment was not removed.
    
    If this is still an issue, then the comment should probably be updated.
    
    r? @petrochenkov
    GuillaumeGomez committed on GitHub Oct 31, 2016
  8. Rollup merge of #37458 - nrc:save-span-errs2, r=petrochenkov

    Fix more spans in deriving::generic
    
    r? @petrochenkov
    GuillaumeGomez committed on GitHub Oct 31, 2016
  9. Rollup merge of #37438 - Cobrand:index_doc, r=GuillaumeGomez

    improve docs for Index and IndexMut
    
    This mainly changes the boring example of Foo/Bar of `IndexMut` into a better one.
    
    Also added explanations about syntactic sugar for `v[index]`.
    
    Closes #36329
    GuillaumeGomez committed on GitHub Oct 31, 2016
  10. Auto merge of #37465 - pftbest:rust-llvm-2016-10-29, r=alexcrichton

    LLVM: Update submodule to rust-llvm-2016-10-29 branch.
    
    Fixes #37227
    bors committed on GitHub Oct 31, 2016
  11. Auto merge of #37439 - michaelwoerister:remove-sha256, r=alexcrichton

    Replace all uses of SHA-256 with BLAKE2b.
    
    Removes the SHA-256 implementation and replaces all uses of it with BLAKE2b, which we already use for debuginfo type guids and incremental compilation hashes. It doesn't make much sense to have two different cryptographic hash implementations in the compiler and Blake has a few advantages over SHA-2 (computationally less expensive, hashes of up to 512 bits).
    bors committed on GitHub Oct 31, 2016
  12. Auto merge of #37489 - nagisa:unnecessary-clone, r=eddyb

    Do not clone Mir unnecessarily
    
    r? @eddyb
    bors committed on GitHub Oct 31, 2016
  13. Add E0532 error explanation

    AndiDog committed Oct 29, 2016
  14. Do not clone Mir unnecessarily

    nagisa committed Oct 31, 2016
  15. Auto merge of #37460 - nrc:save-imports, r=eddyb

    save-analysis: change imports to carry a ref id rather than their own…
    
    … node id
    
    To make jump to def for imports work
    
    r? @eddyb
    bors committed on GitHub Oct 31, 2016
Commits on Oct 30, 2016
  1. Auto merge of #37459 - Mark-Simulacrum:closure-ice, r=eddyb

    Fix ICE when attempting to print closure generics
    
    Fixes #36622.
    
    r? @eddyb or @arielb1
    bors committed on GitHub Oct 30, 2016
  2. Auto merge of #37445 - nnethercote:shrink-Expr_, r=eddyb

    Shrink Expr_::ExprInlineAsm.
    
    On 64-bit this reduces the size of `Expr_` from 144 to 64 bytes, and
    reduces the size of `Expr` from 176 to 96 bytes.
    
    For the workload in #36799 this reduces the RSS for the "lowering ast -> hir" phase and all subsequent phases by 50 MiB, which reduces the peak RSS for that workload by about 1%. Not huge, but it's a very easy improvement.
    
    r? @eddyb
    bors committed on GitHub Oct 30, 2016
  3. Auto merge of #37431 - jseyfried:refactor_crate_config, r=eddyb

    Move `CrateConfig` from `Crate` to `ParseSess`
    
    This is a syntax-[breaking-change]. Most breakage can be fixed by removing a `CrateConfig` argument.
    r? @eddyb
    bors committed on GitHub Oct 30, 2016
  4. Auto merge of #37392 - alexcrichton:more-disable-jemalloc, r=brson

    Disable jemalloc on aarch64/powerpc
    
    Sounds like jemalloc is broken on systems which differ in page size than the
    host it was compiled on (unless an option was passed). This unfortunately
    reduces the portability of binaries created and can often make Rust segfault by
    default. For now let's patch over this by disabling jemalloc until we can figure
    out a better solution.
    
    Closes #36994
    Closes #37320
    cc jemalloc/jemalloc#467
    bors committed on GitHub Oct 30, 2016
  5. Auto merge of #37401 - eddyb:lazy-2, r=nikomatsakis

    [2/n] rustc_metadata: move is_extern_item to trans.
    
    *This is part of a series ([prev](rust-lang#37400) | [next](rust-lang#37402)) of patches designed to rework rustc into an out-of-order on-demand pipeline model for both better feature support (e.g. [MIR-based](https://github.com/solson/miri) early constant evaluation) and incremental execution of compiler passes (e.g. type-checking), with beneficial consequences to IDE support as well.
    If any motivation is unclear, please ask for additional PR description clarifications or code comments.*
    <hr>
    
    Minor cleanup missed by #36551: `is_extern_item` is one of, if not the only `CrateStore` method who takes a `TyCtxt` but doesn't produce something cached in it, and such methods are going away.
    bors committed on GitHub Oct 30, 2016
  6. Auto merge of #37400 - eddyb:lazy-1, r=nikomatsakis

    [1/n] Move the MIR map into the type context.
    
    *This is part of a series ([prev]() | [next](rust-lang#37401)) of patches designed to rework rustc into an out-of-order on-demand pipeline model for both better feature support (e.g. [MIR-based](https://github.com/solson/miri) early constant evaluation) and incremental execution of compiler passes (e.g. type-checking), with beneficial consequences to IDE support as well.
    If any motivation is unclear, please ask for additional PR description clarifications or code comments.*
    <hr>
    
    The first commit reorganizes the `rustc::mir` module to contain the MIR types directly without an extraneous `repr` module which serves no practical purpose but is rather an eyesore.
    
    The second commit performs the actual move of the MIR map into the type context, for the purposes of future integration with requesting analysis/lowering by-products through `TyCtxt`.
    
    Local `Mir` bodies need to be mutated by passes (hence `RefCell`), and at least one pass (`qualify_consts`) needs simultaneous access to multiple `Mir` bodies (hence arena-allocation).
    `Mir` bodies loaded from other crates appear as if immutably borrowed (by `.borrow()`-ing one `Ref` and subsequently "leaking" it) to avoid, at least dynamically, *any* possibility of their local mutation.
    
    One caveat is that lint passes can now snoop at the MIR (helpful) or even mutate it (dangerous).
    However, lints are unstable anyway and we can find a way to deal with this in due time.
    Future work will result in a tighter API, potentially hiding mutation *completely* outside of MIR passes.
    bors committed on GitHub Oct 30, 2016
  7. Auto merge of #37399 - retep998:heap-of-trouble, r=alexcrichton

    Print out the error when HeapFree failures do occur
    
    cc rust-lang#37395
    
    I'd prefer to use `assert!` instead of `debug_assert!` if the cost is acceptable.
    
    r? @alexcrichton
    bors committed on GitHub Oct 30, 2016
Commits on Oct 29, 2016
  1. Auto merge of #37389 - cramertj:cramertj/fn-item-to-unsafe-ptr, r=eddyb

    rustc_typeck: Allow reification from fn item to unsafe ptr
    
    See rust-lang/rfcs#1762.
    
    I've never contributed to the compiler internals before-- apologies if I'm not going about this the right way.
    bors committed on GitHub Oct 29, 2016