1. 31 5月, 2014 17 次提交
  2. 30 5月, 2014 19 次提交
    • B
      auto merge of #14535 : sfackler/rust/bitv-show, r=alexcrichton · 36c2c562
      bors 提交于
      Closes #14531
      36c2c562
    • B
      874b56d3
    • B
      auto merge of #14522 : aturon/rust/make_unique, r=alexcrichton,alexcrichton,me · 32b6fc1e
      bors 提交于
      This patch makes `Arc::make_unique` examine the number of weak
      references as well as strong references, which is required for safety.
      
      It also adds a `make_unique` method to the `Rc` type for consistency.
      
      Closes #14521.
      32b6fc1e
    • B
      auto merge of #14517 : lucy/rust/issue-14499, r=alexcrichton · 3a105464
      bors 提交于
      Fixes #8537
      Fixes #14499 (duplicate of #8537)
      
      Old:
      ```rust
      test.rs:2 	pub extern "xxxxx" fn add(x: int, y: int) -> int {
                	                   ^~
      ```
      
      New:
      ```rust
      test.rs:2 	pub extern "xxxxx" fn add(x: int, y: int) -> int {
                	           ^~~~~~~
      ```
      3a105464
    • B
      auto merge of #14514 : Randati/rust/patch-1, r=huonw · 25951b22
      bors 提交于
      25951b22
    • B
      auto merge of #14511 : Sawyer47/rust/osrng-rename, r=alexcrichton · af7c0303
      bors 提交于
      According to Rust's style guide acronyms in type names should be
      CamelCase.
      
      [breaking-change]
      af7c0303
    • C
      Fix the handling of assignments to owning pointer paths in check_loans · 5aff0e7c
      Cameron Zwarich 提交于
      Make check_for_assignment_to_restricted_or_frozen_location treat
      mutation through an owning pointer the same way it treats mutation
      through an &mut pointer, where mutability must be inherited from the
      base path.
      
      I also included GC pointers in this check, as that is what the
      corresponding code in gather_loans/restrictions.rs does, but I don't
      think there is a way to test this with the current language.
      
      Fixes #14498.
      5aff0e7c
    • P
      Rename OSRng to OsRng · aa7b215f
      Piotr Jawniak 提交于
      According to Rust's style guide acronyms in type names should be
      CamelCase.
      
      [breaking-change]
      aa7b215f
    • S
      Implement Show for Bitv{,Set} · 8e8f6a03
      Steven Fackler 提交于
      Closes #14531
      8e8f6a03
    • B
      auto merge of #14512 : Heather/rust/patch-1, r=alexcrichton · d0b0f16c
      bors 提交于
      d0b0f16c
    • B
      auto merge of #14510 : kballard/rust/rename_strallocating_into_owned, r=alexcrichton · 6510527e
      bors 提交于
      We already have into_string(), but it was implemented in terms of
      into_owned(). Flip it around and deprecate into_owned().
      
      Remove a few spurious calls to .into_owned() that existed in libregex
      and librustdoc.
      6510527e
    • B
      auto merge of #14427 : alexcrichton/rust/librand, r=huonw · 81c02231
      bors 提交于
      This commit shuffles around some of the `rand` code, along with some
      reorganization. The new state of the world is as follows:
      
      * The librand crate now only depends on libcore. This interface is experimental.
      * The standard library has a new module, `std::rand`. This interface will
        eventually become stable.
      
      Unfortunately, this entailed more of a breaking change than just shuffling some
      names around. The following breaking changes were made to the rand library:
      
      * Rng::gen_vec() was removed. This has been replaced with Rng::gen_iter() which
        will return an infinite stream of random values. Previous behavior can be
        regained with `rng.gen_iter().take(n).collect()`
      
      * Rng::gen_ascii_str() was removed. This has been replaced with
        Rng::gen_ascii_chars() which will return an infinite stream of random ascii
        characters. Similarly to gen_iter(), previous behavior can be emulated with
        `rng.gen_ascii_chars().take(n).collect()`
      
      * {IsaacRng, Isaac64Rng, XorShiftRng}::new() have all been removed. These all
        relied on being able to use an OSRng for seeding, but this is no longer
        available in librand (where these types are defined). To retain the same
        functionality, these types now implement the `Rand` trait so they can be
        generated with a random seed from another random number generator. This allows
        the stdlib to use an OSRng to create seeded instances of these RNGs.
      
      * Rand implementations for `Box<T>` and `@T` were removed. These seemed to be
        pretty rare in the codebase, and it allows for libcore to not depend on
        liballoc.  Additionally, other pointer types like Rc<T> and Arc<T> were not
        supported.  If this is undesirable, librand can depend on liballoc and regain
        these implementations.
      
      * The WeightedChoice structure is no longer built with a `Vec<Weighted<T>>`,
         but rather a `&mut [Weighted<T>]`. This means that the WeightedChoice
         structure now has a lifetime associated with it.
      
      cc #13851
      
      [breaking-change]
      81c02231
    • A
      std: Recreate a `rand` module · 925ff651
      Alex Crichton 提交于
      This commit shuffles around some of the `rand` code, along with some
      reorganization. The new state of the world is as follows:
      
      * The librand crate now only depends on libcore. This interface is experimental.
      * The standard library has a new module, `std::rand`. This interface will
        eventually become stable.
      
      Unfortunately, this entailed more of a breaking change than just shuffling some
      names around. The following breaking changes were made to the rand library:
      
      * Rng::gen_vec() was removed. This has been replaced with Rng::gen_iter() which
        will return an infinite stream of random values. Previous behavior can be
        regained with `rng.gen_iter().take(n).collect()`
      
      * Rng::gen_ascii_str() was removed. This has been replaced with
        Rng::gen_ascii_chars() which will return an infinite stream of random ascii
        characters. Similarly to gen_iter(), previous behavior can be emulated with
        `rng.gen_ascii_chars().take(n).collect()`
      
      * {IsaacRng, Isaac64Rng, XorShiftRng}::new() have all been removed. These all
        relied on being able to use an OSRng for seeding, but this is no longer
        available in librand (where these types are defined). To retain the same
        functionality, these types now implement the `Rand` trait so they can be
        generated with a random seed from another random number generator. This allows
        the stdlib to use an OSRng to create seeded instances of these RNGs.
      
      * Rand implementations for `Box<T>` and `@T` were removed. These seemed to be
        pretty rare in the codebase, and it allows for librand to not depend on
        liballoc.  Additionally, other pointer types like Rc<T> and Arc<T> were not
        supported.  If this is undesirable, librand can depend on liballoc and regain
        these implementations.
      
      * The WeightedChoice structure is no longer built with a `Vec<Weighted<T>>`,
        but rather a `&mut [Weighted<T>]`. This means that the WeightedChoice
        structure now has a lifetime associated with it.
      
      * The `sample` method on `Rng` has been moved to a top-level function in the
        `rand` module due to its dependence on `Vec`.
      
      cc #13851
      
      [breaking-change]
      925ff651
    • B
      auto merge of #14486 : michaelwoerister/rust/unified_enum_rep, r=luqmana · 0935beba
      bors 提交于
      So far the DWARF information for enums was different for regular enums, univariant enums, Option-like enums, etc. Regular enums were encoded as unions of structs, while the other variants were encoded as bare structs. With the changes in this PR all enums are encoded as unions so that debuggers can reconstruct if something originally was a struct, a univariant enum, or an Option-like enum.  For the latter case, information about the *Null* variant is encoded into the union field name. This information can then be used by the debugger to print a `None` value actually as `None` instead of `Some(0x0)`.
      
      The changes in this PR should also fix the regression reported in #14385 and #14411, but I want to close these only after I have confirmation from the original reporters that the issues are actually fixed for them.
      0935beba
    • A
      Make Arc::make_unique check weak refs; add make_unique to Rc · 7889c951
      Aaron Turon 提交于
      This patch makes `Arc::make_unique` examine the number of weak
      references as well as strong references, which is required for safety.
      
      It also adds a `make_unique` method to the `Rc` type for consistency.
      
      Closes #14521.
      7889c951
    • A
      Change to_owned() to to_string(). · 2dfad3bf
      Ahmed Charles 提交于
      2dfad3bf
    • B
      729ee203
    • L
      syntax: Fix span on illegal ABI errors · 1b3a0300
      lucy 提交于
      Fixes #8537
      Fixes #14499
      1b3a0300
    • B
      auto merge of #14492 : alexcrichton/rust/totaleq, r=pnkfelix · 50b85289
      bors 提交于
      This is a transitionary step towards completing #12517. This change modifies the
      compiler to accept Partial{Ord,Eq} as deriving modes which will currently expand
      to implementations of PartialOrd and PartialEq (synonyms for Eq/Ord).
      
      After a snapshot, all of deriving(Eq, Ord) will be removed, and after a snapshot
      of that, TotalEq/TotalOrd will be renamed to Eq/Ord.
      50b85289
  3. 29 5月, 2014 4 次提交
    • B
      auto merge of #14488 : SimonSapin/rust/patch-11, r=alexcrichton · c631d3d8
      bors 提交于
      According to the corresponding section, accessing a mutable static variable requires `unsafe` too, and I believe it counts as as language level feature. Add it to the relevant list in the Unsafety section.
      c631d3d8
    • B
      auto merge of #14487 : arielb1/rust/fix-13933, r=alexcrichton · bee4e6ad
      bors 提交于
      Fix issue #13933 in a few files. A more complete fix would require core::raw::MutSlice.
      bee4e6ad
    • M
      debuginfo: Make DWARF representation of enums uniform. · eea329b0
      Michael Woerister 提交于
      So far the DWARF information for enums was different
      for regular enums, univariant enums, Option-like enums,
      etc. Regular enums were encoded as unions of structs,
      while the other variants were encoded as bare structs.
      
      With the changes in this PR all enums are encoded as
      unions so that debuggers can reconstruct if something
      originally was a struct, a univariant enum, or an
      Option-like enum. For the latter case, information
      about the Null variant is encoded into the union field
      name. This information can then be used by the
      debugger to print a None value actually as None
      instead of Some(0x0).
      eea329b0
    • M
      debuginfo: Add documentation comments to debuginfo.rs · 13808935
      Michael Woerister 提交于
      Conflicts:
      	src/librustc/middle/trans/debuginfo.rs
      13808935