1. 22 7月, 2014 7 次提交
    • B
      rustc: Make `monitor` public. · 9631bf2e
      Brian Anderson 提交于
      It's harder to run rustc correctly without it.
      9631bf2e
    • I
      rlibc: add unit tests · d32fe7e5
      Ilya Dmitrichenko 提交于
      d32fe7e5
    • I
      rlibc: fix bug in `memcmp()` · fcaee85c
      Ilya Dmitrichenko 提交于
      fcaee85c
    • A
      rustc: Print a smaller hash on -v · a4915515
      Alex Crichton 提交于
      The long hash just takes up space and you can discover the main hash through the
      `rustc --version verbose` command.
      a4915515
    • J
      repair macro docs · 1607064c
      John Clements 提交于
      In f1ad4251, I changed the handling
      of macros, to prevent macro invocations from occurring in fully expanded
      source. Instead, I added a side table. It contained only the
      spans of the macros, because this was the only information required
      in order to make macro export work.
      
      However, librustdoc was also affected by this change, since it
      extracts macro information in a similar way. As a result of the earlier
      change, exported macros were no longer documented.
      
      In order to repair this, I've adjusted the side table to contain whole
      items, rather than just the spans.
      1607064c
    • S
      Guessing game explanation · e8c9d211
      Steve Klabnik 提交于
      We now build the game at the end of the first section.
      
      I wanted to do it as we went along, but it's too hard with these fundamentals
      not in place. The rest will do the 'as we go' approach, but I think this is
      better.
      e8c9d211
    • S
      Guide: improve error handling · fca79e47
      Steve Klabnik 提交于
      fca79e47
  2. 21 7月, 2014 5 次提交
  3. 20 7月, 2014 18 次提交
    • B
      auto merge of #15803 : omp/rust/master, r=alexcrichton · 8859df7f
      bors 提交于
      Fix small typo in guide.
      8859df7f
    • B
      auto merge of #15797 : brson/rust/taskstab, r=alexcrichton · e6b28f9a
      bors 提交于
      Summary:
      
      * alloc::rc module stable
      * Rc type stable
      * Functions relating to weak references experimental
      * core::cmp module stable
      * PartialEq/Eq/PartialOrd/Ord unstable because trait reform will make them change again
      * Equiv experimental because there may be better sol'ns
      * lexical_ordering deprecated because it can be done trivially with the Ord trait
      * min/max stable
      * std::task module stable
      * TaskBuilder::stdout/stderr experimental because we aren't certain we want to configure the environment this way
      * try_future experimental because Future is experimental
      * try unstable because the error type might change
      * deschedule/failing unstable
      
      The major thing I did differently than previously-discussed is that I made `try` experimental: there's been discussion that the error type `Box<Any + Send>` is not sufficient.
      
      
      Per https://github.com/rust-lang/meeting-minutes/blob/master/Meeting-API-review-2014-07-16.md.
      e6b28f9a
    • S
      small typo · 343a52f6
      Steve Klabnik 提交于
      343a52f6
    • J
      Implement new mod import sugar · 4b9bc2e8
      Jakub Wieczorek 提交于
      Implements RFC #168.
      4b9bc2e8
    • B
      auto merge of #15785 : treeman/rust/fix-15780, r=alexcrichton · 4f55b52b
      bors 提交于
      Fix for #15780.
      4f55b52b
    • B
      auto merge of #15784 : dotdash/rust/unreach, r=luqmana · 50481f55
      bors 提交于
      `call_visit_glue` is only ever called from trans_intrinsic, and the
      block won't be unreachable there. Also, the comment doesn't make sense
      anymore. When the code was introduced in 38fee952 the function was
      also responsible for the cleanup glue, which is no longer the case.
      
      While we're at it, also fixed the debug message to output the right
      function name.
      50481f55
    • P
      Correctly stringify! types and paths inside macros · 20df4cca
      Piotr Jawniak 提交于
      Closes #8709
      20df4cca
    • B
      auto merge of #15745 : treeman/rust/tutorial-fixup, r=steveklabnik · 320dbc18
      bors 提交于
      Simplify example in 5.2 to remove hidden `#[deriving(Show)]`. Traits haven't been introduced yet and now it's easier to just type in the code and expect it to work. Add in some examples for constructing the enum types. Explicitly expose `#![feature(struct_variant)]` in the code to make it more transparent, this bit me when I worked through the tutorial.
      
      Add references in chapter 8 to later chapters describing `Rc`, `Gc` and `Send`. This is a simple fix for #15293.
      
      Simplify vector indexing example in chapter 13 and removed hidden, unnecessary, code. Gave an example usage of the derived `Rand` trait in chapter 17.
      
      Removed references to removed 'extra' crate.
      320dbc18
    • B
      auto merge of #15776 : alexcrichton/rust/snapshots, r=huonw · 7d0a613d
      bors 提交于
      7d0a613d
    • A
      Register new snapshots · 707cf47a
      Alex Crichton 提交于
      707cf47a
    • B
      auto merge of #15767 : pcwalton/rust/lifetime-elision, r=nick29581 · 56fafe28
      bors 提交于
      This implements RFC 39. Omitted lifetimes in return values will now be
      inferred to more useful defaults, and an error is reported if a lifetime
      in a return type is omitted and one of the two lifetime elision rules
      does not specify what it should be.
      
      This primarily breaks two uncommon code patterns. The first is this:
      
          unsafe fn get_foo_out_of_thin_air() -> &Foo {
              ...
          }
      
      This should be changed to:
      
          unsafe fn get_foo_out_of_thin_air() -> &'static Foo {
              ...
          }
      
      The second pattern that needs to be changed is this:
      
          enum MaybeBorrowed<'a> {
              Borrowed(&'a str),
              Owned(String),
          }
      
          fn foo() -> MaybeBorrowed {
              Owned(format!("hello world"))
          }
      
      Change code like this to:
      
          enum MaybeBorrowed<'a> {
              Borrowed(&'a str),
              Owned(String),
          }
      
          fn foo() -> MaybeBorrowed<'static> {
              Owned(format!("hello world"))
          }
      
      Closes #15552.
      
      [breaking-change]
      
      r? @nick29581
      56fafe28
    • B
      auto merge of #15764 : alexcrichton/rust/issue-15761, r=kballard · 5e0a597a
      bors 提交于
      This branch of try_send() just forgot to wake up any receiver waiting for data.
      
      Closes #15761
      5e0a597a
    • B
      auto merge of #15746 : steveklabnik/rust/docs_random, r=alexcrichton · d8652de9
      bors 提交于
      This is now linked to in the guide, so I want to make sure it's good. This
      adds a bit more explanation, and brings usage in line with current good style.
      d8652de9
    • B
      auto merge of #15650 : jakub-/rust/patterns-statics, r=pcwalton · 8672a235
      bors 提交于
      This is accomplished by rewriting static expressions into equivalent patterns.
      This way, patterns referencing static variables can both participate
      in exhaustiveness analysis as well as be compiled down into the appropriate
      branch of the decision trees that match expressions are codegened to.
      
      Fixes #6533.
      Fixes #13626.
      Fixes #13731.
      Fixes #14576.
      Fixes #15393.
      8672a235
    • D
      a2467b94
    • P
      librustc: Implement lifetime elision. · 6f99a278
      Patrick Walton 提交于
      This implements RFC 39. Omitted lifetimes in return values will now be
      inferred to more useful defaults, and an error is reported if a lifetime
      in a return type is omitted and one of the two lifetime elision rules
      does not specify what it should be.
      
      This primarily breaks two uncommon code patterns. The first is this:
      
          unsafe fn get_foo_out_of_thin_air() -> &Foo {
              ...
          }
      
      This should be changed to:
      
          unsafe fn get_foo_out_of_thin_air() -> &'static Foo {
              ...
          }
      
      The second pattern that needs to be changed is this:
      
          enum MaybeBorrowed<'a> {
              Borrowed(&'a str),
              Owned(String),
          }
      
          fn foo() -> MaybeBorrowed {
              Owned(format!("hello world"))
          }
      
      Change code like this to:
      
          enum MaybeBorrowed<'a> {
              Borrowed(&'a str),
              Owned(String),
          }
      
          fn foo() -> MaybeBorrowed<'static> {
              Owned(format!("hello world"))
          }
      
      Closes #15552.
      
      [breaking-change]
      6f99a278
    • B
      auto merge of #15782 : steveklabnik/rust/string_guide_link, r=cmr · ab610226
      bors 提交于
      Three small changes:
      
      1. Re-organize headers in the Strings guide so they show up correctly.
      2. build the strings guide with the other docs
      3. include the strings guide in the list of guides
      ab610226
    • B
      auto merge of #15772 : treeman/rust/hashset-doc, r=alexcrichton · 793b1424
      bors 提交于
      Example how to use the set with a custom type. Fill in examples for the missing methods. Also group implemented traits below `HashSet` method impl.
      793b1424
  4. 19 7月, 2014 10 次提交
    • S
      Implement FromBase64 for &[u8]. · 56218f5d
      Simon Sapin 提交于
      The algorithm was already based on bytes internally.
      
      Also use byte literals instead of casting u8 to char for matching.
      56218f5d
    • B
      auto merge of #15638 : blake2-ppc/rust/ptr-arithmetic-chars, r=huonw · ca384348
      bors 提交于
      Reimplement the string slice's `Iterator<char>` by wrapping the already efficient
      slice iterator.
      
      The iterator uses our guarantee that the string contains valid UTF-8, but its only unsafe
      code is transmuting the decoded `u32` into `char`.
      
      Benchmarks suggest that the runtime of `Chars` benchmarks are reduced by up to 30%,
      runtime of `Chars` reversed reduced by up to 60%.
      
      ```
      BEFORE
      test str::bench::char_indicesator                          ... bench:       124 ns/iter (+/- 1)
      test str::bench::char_indicesator_rev                      ... bench:       188 ns/iter (+/- 9)
      test str::bench::char_iterator                             ... bench:       122 ns/iter (+/- 2)
      test str::bench::char_iterator_ascii                       ... bench:       302 ns/iter (+/- 41)
      test str::bench::char_iterator_for                         ... bench:       123 ns/iter (+/- 4)
      test str::bench::char_iterator_rev                         ... bench:       189 ns/iter (+/- 14)
      test str::bench::char_iterator_rev_for                     ... bench:       177 ns/iter (+/- 4)
      
      AFTER
      test str::bench::char_indicesator                          ... bench:        85 ns/iter (+/- 3)
      test str::bench::char_indicesator_rev                      ... bench:        82 ns/iter (+/- 2)
      test str::bench::char_iterator                             ... bench:       100 ns/iter (+/- 3)
      test str::bench::char_iterator_ascii                       ... bench:       317 ns/iter (+/- 3)
      test str::bench::char_iterator_for                         ... bench:        86 ns/iter (+/- 2)
      test str::bench::char_iterator_rev                         ... bench:        80 ns/iter (+/- 6)
      test str::bench::char_iterator_rev_for                     ... bench:        68 ns/iter (+/- 0)
      ```
      
      Note: Branch name is no longer indicative of the implementation.
      ca384348
    • R
      Simplify str CharOffsets iterator · c5e0736c
      root 提交于
      Only one uint is needed to keep track of the offset from the original
      full string.
      c5e0736c
    • B
      auto merge of #15765 : luqmana/rust/iec, r=pcwalton · e0a6e2b4
      bors 提交于
      Fixes #15400.
      e0a6e2b4
    • J
      Document some trait methods. · 41729b83
      Jonas Hietala 提交于
      41729b83
    • B
      f05a2c97
    • B
      auto merge of #15752 : nham/rust/dlist_docs, r=alexcrichton · fb4c3f0a
      bors 提交于
      Someone rightfully complained in IRC that DList was lacking examples. Here are some.
      fb4c3f0a
    • D
      Fix typo. · 69127f2f
      David Vazgenovich Shakaryan 提交于
      69127f2f
    • B
      auto merge of #15686 : alexcrichton/rust/same-crate-name, r=kballard · 44a71dee
      bors 提交于
      The first is to require that `#[crate_name]` and `--crate-name` always match (if both are specified). The second is to fix parallel compilation in cargo by mixing in `-C extra-filename` into the temporary outputs of the compiler.
      44a71dee
    • B
      std: Stabilize task module. · 0b946f0a
      Brian Anderson 提交于
      Most stable. deschedule/failing experimental because of concerns about
      naming and desirability.
      
      Adds task::name() to replace deprecated task::with_name().
      0b946f0a