1. 02 8月, 2016 4 次提交
  2. 01 8月, 2016 11 次提交
    • B
      Auto merge of #34743 - badboy:llvm-upgrade, r=eddyb · 2c1612c6
      bors 提交于
      LLVM upgrade
      
      As discussed in https://internals.rust-lang.org/t/need-help-with-emscripten-port/3154/46 I'm trying to update the used LLVM checkout in Rust.
      
      I basically took @shepmaster's code and applied it on top (though I did the commits manually, the [original commits have better descriptions](https://github.com/rust-lang/rust/compare/master...avr-rust:avr-support).
      
      With these changes I was able to build rustc. `make check` throws one last error on `run-pass/issue-28950.rs`. Output: https://gist.github.com/badboy/bcdd3bbde260860b6159aa49070a9052
      
      I took the metadata changes as is and they seem to work, though it now uses the module in another step. I'm not sure if this is the best and correct way.
      
      Things to do:
      
      * [x] ~~Make `run-pass/issue-28950.rs` pass~~ unrelated
      * [x] Find out how the `PositionIndependentExecutable` setting is now used
      * [x] Is the `llvm::legacy` still the right way to do these things?
      
      cc @brson @alexcrichton
      2c1612c6
    • B
      Auto merge of #34830 - michaelwoerister:internal-closures, r=nikomatsakis · 5ef1e7e0
      bors 提交于
      trans: Avoid weak linkage for closures when linking with MinGW.
      
      This PR proposes one possible solution to #34793, the problem that prevents https://github.com/servo/servo/pull/12393 from landing. It applies the same strategy, that we already use for monomorphizations, to closures, that is, instead of emitting symbols with `weak_odr` linkage in order to avoid symbol conflicts, we emit them with `internal` linkage, with the side effect that we have to copy code instead of just linking to it, if more than one codegen unit is involved.
      With this PR, the compiler will only apply this strategy for targets where we would actually run into a problem when using `weak_odr` linkage, in other words nothing will change for platforms except for MinGW.
      
      The solution implemented here has one restriction that could be lifted with some more effort, but it does not seem to be worth the trouble since it will go away once we use only MIR-trans: If someone compiles code
      
      1. on MinGW,
      2. with more than one codegen unit,
      3. *not* using MIR-trans,
      4. and runs into a closure inlined from another crate
      
      then the compiler will abort and suggest to compile either with just one codegen unit or `-Zorbit`.
      
      What's nice about this is that I lays a foundation for also doing the same for generics: using weak linkage where possible and thus enabling some more space optimizations that the linker can do.
      
      ~~This PR also contains a test case for compiling a program that contains more than 2^15 closures. It's a huge, generated file with almost 100K LOCs. I did not commit the script for generating the file but could do so. Alternatively, maybe someone wants to come up with a way of doing this with macros.~~
      The test file is implemented via macros now (thanks @alexcrichton!)
      
      Opinions?
      
      Fixes #34793.
      
      cc @rust-lang/compiler
      5ef1e7e0
    • M
    • M
    • J
      Upgrade LLVM once more to get a bugfix · 5d1d2475
      Jan-Erik Rediger 提交于
      @tmiasko did some digging and discovered that
      https://reviews.llvm.org/D22858 may be relevant.
      5d1d2475
    • B
      Auto merge of #35130 - sanxiyn:unused-type-parameter-error, r=nrc · d648a16c
      bors 提交于
      Suppress unused type parameter error when type has error field
      
      Fix #35075.
      d648a16c
    • B
      Auto merge of #35151 - bcully:bcully/pr-35149, r=alexcrichton · 535cea0e
      bors 提交于
      Add libarena from local rust to stage0
      
      This was needed at least when local rust was 1.9.0 on darwin.
      
      Fixes #35149
      535cea0e
    • B
      Add libarena from local rust to stage0 · e9d2c965
      Brendan Cully 提交于
      This was needed at least when local rust was 1.9.0 on darwin.
      
      Fixes #35149
      e9d2c965
    • B
      Auto merge of #35143 - arielb1:rfc447-regions, r=eddyb · 7333c4ac
      bors 提交于
      typeck: use a TypeVisitor in ctp
      
      Use a TypeVisitor in ctp instead of `ty::walk`
      
      This fixes a few cases where a region could be projected out of a trait while not being constrained by the type parameters, violating rust-lang/rfcs#447 and breaking soundness. As such, this is a [breaking-change].
      
      Fixes #35139
      
      r? @EddyB
      7333c4ac
    • A
      typeck: use a TypeVisitor in ctp · 0a128f32
      Ariel Ben-Yehuda 提交于
      Fixes #35139
      0a128f32
    • B
      Auto merge of #34986 - nikomatsakis:issue-34349, r=arielb1 · 2b87f031
      bors 提交于
      Avoid writing a temporary closure kind
      
      We used to write a temporary closure kind into the inference table, but
      this could lead to obligations being incorrectled resolved before
      inference had completed. This result could then be cached, leading to
      further trouble. This patch avoids writing any closure kind until the
      computation is complete.
      
      Fixes #34349.
      
      r? @arielb1 -- what do you think?
      2b87f031
  3. 31 7月, 2016 18 次提交
  4. 30 7月, 2016 7 次提交