1. 07 8月, 2013 17 次提交
    • E
      core: option.map_consume -> option.map_move · 1e490813
      Erick Tryzelaar 提交于
      1e490813
    • E
      std: add result.map_move, result.map_err_move · 9218aaa0
      Erick Tryzelaar 提交于
      9218aaa0
    • E
      option.get -> option.unwrap · 5c082374
      Erick Tryzelaar 提交于
      5c082374
    • B
      auto merge of #8323 : kballard/rust/saturating, r=thestinger · 54c8c23d
      bors 提交于
      Implement saturating math in `std::num::Saturating` and use it for `Iterator` impls
      54c8c23d
    • B
      auto merge of #8285 : huonw/rust/deriving+++, r=alexcrichton · 4da1cfe9
      bors 提交于
      Some general clean-up relating to deriving:
      - `TotalOrd` was too eager, and evaluated the `.cmp` call for every field, even if it could short-circuit earlier.
      - the pointer types didn't have impls for `TotalOrd` or `TotalEq`.
      - the Makefiles didn't reach deep enough into libsyntax for dependencies.
      
      (Split out from https://github.com/mozilla/rust/pull/8258.)
      4da1cfe9
    • H
      4f3944a3
    • B
      auto merge of #8287 : sfackler/rust/hex, r=alexcrichton · 62dbdc4e
      bors 提交于
      FromHex ignores whitespace and parses either upper or lower case hex
      digits. ToHex outputs lower case hex digits with no whitespace. Unlike
      ToBase64, ToHex doesn't allow you to configure the output format. I
      don't feel that it's super useful in this case.
      62dbdc4e
    • B
      auto merge of #8231 : SimonSapin/rust/ascii-upper-lower-case, r=cmr · 5b4244d9
      bors 提交于
      Original pull request: Add str.to_ascii_lower() and str.to_ascii_upper() methods in std::str.
      5b4244d9
    • S
    • B
      auto merge of #8321 : alexcrichton/rust/enable-rusti, r=cmr · 6972eb4c
      bors 提交于
      Now that LLVM has been upgraded, I think that we can try again to re-enable the rusti tests.
      6972eb4c
    • S
      Result::get -> Result::unwrap · 3b441c48
      Steven Fackler 提交于
      3b441c48
    • B
      auto merge of #8317 : bblum/rust/fast-spawn-unlinked, r=brson · 72080954
      bors 提交于
      This lazily initializes the taskgroup structs for ```spawn_unlinked``` tasks. If such a task never spawns another task linked to it (or a descendant of it), its taskgroup is simply never initialized at all. Also if an unlinked task spawns another unlinked task, neither of them will need to initialize their taskgroups. This works for the main task too.
      
      I benchmarked this with the following test case and observed a ~~21% speedup (average over 4 runs: 7.85 sec -> 6.20 sec, 2.5 GHz)~~ 11% speedup, see comment below.
      ```
      use std::task;
      use std::cell::Cell;
      use std::rt::comm;
      
      static NUM: uint = 1024*256;
      
      fn run(f: ~fn()) {
          let mut t = task::task();
          t.unlinked();
          t.spawn(f);
      }
      
      fn main() {
          do NUM.times {
              let (p,c) = comm::oneshot();
              let c = Cell::new(c);
              do run { c.take().send(()); }
              p.recv();
          }
      }
      ```
      72080954
    • S
      Removed convenience encoding trait impls · e6176513
      Steven Fackler 提交于
      Encoding should really only be done from [u8]<->str. The extra
      convenience implementations don't really have a place, especially since
      they're so trivial.
      
      Also improved error messages in FromBase64.
      e6176513
    • S
      Removing space for NULL terminator · 858e1661
      Steven Fackler 提交于
      String NULL terminators are going away soon, so we may as well get rid
      of this now so it doesn't rot.
      858e1661
    • S
      ToBase64 and ToHex perf improvements · ff5fdffc
      Steven Fackler 提交于
      The overhead of str::push_char is high enough to cripple the performance
      of these two functions. I've switched them to build the output in a
      ~[u8] and then convert to a string later. Since we know exactly the
      bytes going into the vector, we can use the unsafe version to avoid the
      is_utf8 check.
      
      I could have riced it further with vec::raw::get, but it only added
      ~10MB/s so I didn't think it was worth it. ToHex is still ~30% slower
      than FromHex, which is puzzling.
      
      Before:
      
      ```
      test base64::test::from_base64 ... bench: 1000 ns/iter (+/- 349) = 204 MB/s
      test base64::test::to_base64 ... bench: 2390 ns/iter (+/- 1130) = 63 MB/s
      ...
      test hex::tests::bench_from_hex ... bench: 884 ns/iter (+/- 220) = 341 MB/s
      test hex::tests::bench_to_hex ... bench: 2453 ns/iter (+/- 919) = 61 MB/s
      ```
      
      After:
      
      ```
      test base64::test::from_base64 ... bench: 1271 ns/iter (+/- 600) = 160 MB/s
      test base64::test::to_base64 ... bench: 759 ns/iter (+/- 286) = 198 MB/s
      ...
      test hex::tests::bench_from_hex ... bench: 875 ns/iter (+/- 377) = 345 MB/s
      test hex::tests::bench_to_hex ... bench: 593 ns/iter (+/- 240) = 254 MB/s
      ```
      ff5fdffc
    • S
      Some minor hex changes · 463e2416
      Steven Fackler 提交于
      463e2416
    • S
      Added hexadecimal encoding module · 2266df51
      Steven Fackler 提交于
      FromHex ignores whitespace and parses either upper or lower case hex
      digits. ToHex outputs lower case hex digits with no whitespace. Unlike
      ToBase64, ToHex doesn't allow you to configure the output format. I
      don't feel that it's super useful in this case.
      2266df51
  2. 06 8月, 2013 23 次提交