1. 24 7月, 2014 5 次提交
  2. 23 7月, 2014 18 次提交
  3. 22 7月, 2014 17 次提交
    • J
      94500b84
    • B
      auto merge of #15888 : mprobinson/rust/rustdoc-fixes, r=cmr · 5d3aaa87
      bors 提交于
      Allow "rustdoc --passes list" to work without specifying input files,
      as shown in the examples section of the man page.
      5d3aaa87
    • B
      auto merge of #15884 : steveklabnik/rust/guide_fix_headings, r=huonw · 915fb2b3
      bors 提交于
      I screwed this up a while back, and now that I have no outstanding PRs, it's a good time to fix this.
      915fb2b3
    • J
      doc: Normalize example style · 8d54ec8f
      Jonas Hietala 提交于
      Remove unnecessary `use std::vec::Vec`. Use ``` code blocks
      with rust as default instead of spelling it out.
      8d54ec8f
    • J
      doc: Vec::from_raw_parts. · eafcf6ba
      Jonas Hietala 提交于
      Also more explicit raw pointer handling in unsafe examples.
      eafcf6ba
    • B
      auto merge of #15876 : brson/rust/failfat, r=pcwalton · bfcde309
      bors 提交于
      Adds a new runtime unwinding function that encapsulates the printing of the words "explicit failure" when `fail!()` is called w/o arguments.
      
      The before/after optimized assembly:
      
      
      
      ```
              leaq    "str\"str\"(1412)"(%rip), %rax
              movq    %rax, 24(%rsp)
              movq    $16, 32(%rsp)
              leaq    "str\"str\"(1413)"(%rip), %rax
              movq    %rax, 8(%rsp)
              movq    $19, 16(%rsp)
              leaq    24(%rsp), %rdi
              leaq    8(%rsp), %rsi
              movl    $11, %edx
              callq   _ZN6unwind12begin_unwind21h15836560661922107792E
      ```
      
      ```
              leaq    "str\"str\"(1369)"(%rip), %rax
              movq    %rax, 8(%rsp)
              movq    $19, 16(%rsp)
              leaq    8(%rsp), %rdi
              movl    $11, %esi
              callq   _ZN6unwind31begin_unwind_no_time_to_explain20hd1c720cdde6a116480dE@PLT
      ```
      
      Before/after filesizes:
      
      rwxrwxr-x 1 brian brian 21479503 Jul 20 22:09 stage2-old/lib/librustc-4e7c5e5c.so
      rwxrwxr-x 1 brian brian 21475415 Jul 20 22:30 x86_64-unknown-linux-gnu/stage2/lib/librustc-4e7c5e5c.so
      
      This is the lowest-hanging fruit in the fail-bloat wars. Further fixes are going to require harder tradeoffs.
      
      r? @pcwalton
      bfcde309
    • J
      doc: Fill vec documentation with examples. · 4357da35
      Jonas Hietala 提交于
      Add more useful functions to main example.
      4357da35
    • B
      62f1bb04
    • J
      doc: Use vec![] instead of vec!() in Vec. · c004bebc
      Jonas Hietala 提交于
      c004bebc
    • B
      Emit LLVM lifetime intrinsics to improve stack usage and codegen in general · 92d1f155
      Björn Steinbrink 提交于
      Lifetime intrinsics help to reduce stack usage, because LLVM can apply
      stack coloring to reuse the stack slots of dead allocas for new ones.
      
      For example these functions now both use the same amount of stack, while
      previous `bar()` used five times as much as `foo()`:
      
      ````rust
      fn foo() {
        println("{}", 5);
      }
      
      fn bar() {
        println("{}", 5);
        println("{}", 5);
        println("{}", 5);
        println("{}", 5);
        println("{}", 5);
      }
      ````
      
      On top of that, LLVM can also optimize out certain operations when it
      knows that memory is dead after a certain point. For example, it can
      sometimes remove the zeroing used to cancel the drop glue. This is
      possible when the glue drop itself was already removed because the
      zeroing dominated the drop glue call. For example in:
      
      ````rust
      pub fn bar(x: (Box<int>, int)) -> (Box<int>, int) {
          x
      }
      ````
      
      With optimizations, this currently results in:
      
      ````llvm
      define void @_ZN3bar20h330fa42547df8179niaE({ i64*, i64 }* noalias nocapture nonnull sret, { i64*, i64 }* noalias nocapture nonnull) unnamed_addr #0 {
      "_ZN29_$LP$Box$LT$int$GT$$C$int$RP$39glue_drop.$x22glue_drop$x22$LP$1347$RP$17h88cf42702e5a322aE.exit":
        %2 = bitcast { i64*, i64 }* %1 to i8*
        %3 = bitcast { i64*, i64 }* %0 to i8*
        tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 16, i32 8, i1 false)
        tail call void @llvm.memset.p0i8.i64(i8* %2, i8 0, i64 16, i32 8, i1 false)
        ret void
      }
      ````
      
      But with lifetime intrinsics we get:
      
      ````llvm
      define void @_ZN3bar20h330fa42547df8179niaE({ i64*, i64 }* noalias nocapture nonnull sret, { i64*, i64 }* noalias nocapture nonnull) unnamed_addr #0 {
      "_ZN29_$LP$Box$LT$int$GT$$C$int$RP$39glue_drop.$x22glue_drop$x22$LP$1347$RP$17h88cf42702e5a322aE.exit":
        %2 = bitcast { i64*, i64 }* %1 to i8*
        %3 = bitcast { i64*, i64 }* %0 to i8*
        tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 16, i32 8, i1 false)
        tail call void @llvm.lifetime.end(i64 16, i8* %2)
        ret void
      }
      ````
      
      Fixes #15665
      92d1f155
    • B
      8d43e447
    • C
      Fix pretty test · 95a1ce6f
      Corey Richardson 提交于
      95a1ce6f
    • B
      auto merge of #15870 : jakub-/rust/issue-15793, r=alexcrichton · 32f4d996
      bors 提交于
      Fixes #15793.
      32f4d996
    • C
      Don't run lexer tests by default · 857bb60f
      Corey Richardson 提交于
      857bb60f
    • B
      auto merge of #15834 : Kimundi/rust/moved_syntax_env, r=cmr · 6e3e0a83
      bors 提交于
      - Made custom syntax extensions capable of expanding custom macros by moving `SyntaxEnv` into `ExtCtx`
      - Added convenience method on `ExtCtx` for getting a macro expander.
      - Made a few things private to force only a single way to use them (through `ExtCtx`)
      - Removed some ancient commented-out code
      
      Closes #14946
      6e3e0a83
    • C
      Add a ton of ignore-lexer-test · 35c0bf32
      Corey Richardson 提交于
      35c0bf32
    • C
      Shuffle around check-lexer conditions · c41a7dfc
      Corey Richardson 提交于
      c41a7dfc