1. 29 4月, 2013 18 次提交
  2. 28 4月, 2013 11 次提交
    • B
      auto merge of #6097 : Blei/rust/fix-rand, r=pnkfelix · cdd342bd
      bors 提交于
      `self` has type `&@Rand`, so `*self` will be of type `@Rand` which causes
      this same impl to be called again.
      
      Fixes #6061
      cdd342bd
    • P
      rand: Fix infinite recursion · 8627fc97
      Philipp Brüschweiler 提交于
      `self` has type `&@Rand`, so `*self` will be of type `@Rand` which causes
      this same impl to be called again.
      8627fc97
    • B
      auto merge of #6075 : thestinger/rust/no-no_core, r=brson · 5f7947aa
      bors 提交于
      core injection works fine now
      5f7947aa
    • D
      only use #[no_core] in libcore · f792baba
      Daniel Micay 提交于
      f792baba
    • B
      auto merge of #6082 : catamorphism/rust/mkdir_recursive, r=brson · dd5b1de1
      bors 提交于
      r? @brson mkdir_recursive creates a directory as well as any of its
      parent directories that don't exist already. Seems like a useful
      thing to have in core.
      
      (Or r? anyone who gets to it first.)
      dd5b1de1
    • B
      auto merge of #6081 : brson/rust/out-of-stack, r=thestinger · 88dd53a7
      bors 提交于
      People hit the recursion depth limit too often, it's not possible
      to unwind reliably from out-of-stack.
      
      Issues #3555, #3695
      88dd53a7
    • B
      9f118865
    • B
      auto merge of #6071 : bjz/rust/numeric-traits, r=graydon · aa38867e
      bors 提交于
      As part of the numeric trait reform (see issue #4819), I have added the following traits to `core::num` and implemented them for Rust's primitive numeric types:
      
      ~~~rust
      pub trait Bitwise: Not<Self>
                       + BitAnd<Self,Self>
                       + BitOr<Self,Self>
                       + BitXor<Self,Self>
                       + Shl<Self,Self>
                       + Shr<Self,Self> {}
      
      pub trait BitCount {
          fn population_count(&self) -> Self;
          fn leading_zeros(&self) -> Self;
          fn trailing_zeros(&self) -> Self;
      }
      
      pub trait Bounded {
          fn min_value() -> Self;
          fn max_value() -> Self;
      }
      
      pub trait Primitive: Num
                         + NumCast
                         + Bounded
                         + Neg<Self>
                         + Add<Self,Self>
                         + Sub<Self,Self>
                         + Mul<Self,Self>
                         + Quot<Self,Self>
                         + Rem<Self,Self> {
          fn bits() -> uint;
          fn bytes() -> uint;
      }
      
      pub trait Int: Integer
                   + Primitive
                   + Bitwise
                   + BitCount {}
      
      pub trait Float: Real
                     + Signed
                     + Primitive {
          fn NaN() -> Self;
          fn infinity() -> Self;
          fn neg_infinity() -> Self;
          fn neg_zero() -> Self;
      
          fn is_NaN(&self) -> bool;
          fn is_infinite(&self) -> bool;
          fn is_finite(&self) -> bool;
      
          fn mantissa_digits() -> uint;
          fn digits() -> uint;
          fn epsilon() -> Self;
          fn min_exp() -> int;
          fn max_exp() -> int;
          fn min_10_exp() -> int;
          fn max_10_exp() -> int;
      
          fn mul_add(&self, a: Self, b: Self) -> Self;
          fn next_after(&self, other: Self) -> Self;
      }
      ~~~
      Note: I'm not sure my implementation for `BitCount::trailing_zeros` and `BitCount::leading_zeros` is correct for uints. I also need some assistance creating appropriate unit tests for them.
      
      More work needs to be done in implementing specialized primitive floating-point and integer methods, but I'm beginning to reach the limits of my knowledge. Please leave your suggestions/critiques/ideas on #4819 if you have them – I'd very much appreciate hearing them.
      
      I have also added an `Orderable` trait:
      
      ~~~rust
      pub trait Orderable: Ord {
          fn min(&self, other: &Self) -> Self;
          fn max(&self, other: &Self) -> Self;
          fn clamp(&self, mn: &Self, mx: &Self) -> Self;
      }
      ~~~
      
      This is a temporary trait until we have default methods. We don't want to encumber all implementors of Ord by requiring them to implement these functions, but at the same time we want to be able to take advantage of the speed of the specific numeric functions (like the `fmin` and `fmax` intrinsics).
      aa38867e
    • B
      auto merge of #6070 : thestinger/rust/tutorial, r=pcwalton · 5de74f3e
      bors 提交于
      5de74f3e
    • B
      auto merge of #6066 : djui/rust/patch-1, r=graydon · 9ea32a38
      bors 提交于
      9ea32a38
    • B
      auto merge of #6064 : thestinger/rust/char, r=catamorphism · 47dbcdc4
      bors 提交于
      47dbcdc4
  3. 27 4月, 2013 11 次提交