1. 21 9月, 2016 20 次提交
  2. 20 9月, 2016 3 次提交
    • B
      Auto merge of #36445 - infinity0:master, r=brson · 2c2552b7
      bors 提交于
      mk: add a all-no-docs target to build everything except docs
      
      This makes things slightly more efficient for Debian's auto-builders where the
      docs can be built on just one architecture, and distributed to users of all
      other architectures as well.
      2c2552b7
    • B
      Auto merge of #34942 - porglezomp:master, r=sfackler · cbd84aeb
      bors 提交于
      Fix overflow checking in unsigned pow()
      
      The pow() method for unsigned integers produced 0 instead of trapping overflow for certain inputs. Calls such as 2u32.pow(1024) produced 0 when they should trap an overflow. This also adds tests for the correctly handling overflow in unsigned pow().
      
      This was previously fixed for signed integers in #28248, but it seems unsigned integers got missed that time.
      
      For issue number #34913
      cbd84aeb
    • B
      Auto merge of #36102 - GuillaumeGomez:rustc_metadata_diagnostics, r=jonathandturner · e0547019
      bors 提交于
      Rustc metadata diagnostics
      
      r? @jonathandturner
      e0547019
  3. 19 9月, 2016 6 次提交
  4. 18 9月, 2016 8 次提交
  5. 17 9月, 2016 3 次提交
    • S
      Up the LLVM · d104e5bf
      Simonas Kazlauskas 提交于
      Fixes #36474
      d104e5bf
    • B
      Auto merge of #36490 - bluss:zip-slightly-despecialized-edition, r=alexcrichton · fb62f4d5
      bors 提交于
      Remove data structure specialization for .zip() iterator
      
      Go back on half the specialization, the part that changed the Zip
      struct's fields themselves depending on the types of the iterators.
      
      Previous PR: #33090
      
      This means that the Zip iterator will always carry two usize fields,
      which are sometimes unused. If a whole for loop using a .zip() iterator is
      inlined, these are simply removed and have no effect.
      
      The same improvement for Zip of for example slice iterators remain, and
      they still optimize well. However, like when the specialization of zip
      was merged, the compiler is still very sensistive to the exact context.
      
      For example this code only autovectorizes if the function is used, not
      if the code in zip_sum_i32 is inserted inline where it was called:
      
      ```rust
      fn zip_sum_i32(xs: &[i32], ys: &[i32]) -> i32 {
          let mut s = 0;
          for (&x, &y) in xs.iter().zip(ys) {
              s += x * y;
          }
          s
      }
      
      fn zipdot_i32_default_zip(b: &mut test::Bencher)
      {
          let xs = vec![1; 1024];
          let ys = vec![1; 1024];
      
          b.iter(|| {
              zip_sum_i32(&xs, &ys)
          })
      }
      ```
      
      Include a test that checks that `Zip<T, U>` is covariant w.r.t. T and U.
      
      Fixes #35727
      fb62f4d5
    • B
      Auto merge of #36485 - nnethercote:char_lit-2, r=nagisa · cde61ba7
      bors 提交于
      Overhaul char_lit()
      
      This commit does the following.
      
      - Removes parsing support for '\X12', '\u123456' and '\U12345678' char
        literals. These are no longer valid Rust and rejected by the lexer.
        (This strange-sounding situation occurs because the parser rescans
        char literals to compute their value.)
      
      - Rearranges the function so that all the escaped values are handled in
        a single `match`. The error-handling strategy is based on the one used
        by byte_lit().
      cde61ba7