1. 27 3月, 2014 9 次提交
  2. 26 3月, 2014 19 次提交
  3. 25 3月, 2014 12 次提交
    • B
      auto merge of #13122 : sstewartgallus/rust/cleanup-10734-workarounds, r=alexcrichton · 1f5571ab
      bors 提交于
      Cleanup old issue references. One of these workarounds no longer need to be used anymore and the others are out of date.
      1f5571ab
    • H
      std: expand the `Share` docs to make them more precise. · e9475b57
      Huon Wilson 提交于
      And give some examples about exactly what's `Share` and what's not.
      e9475b57
    • B
      auto merge of #13083 : FlaPer87/rust/issue-13005-borrow-unsafe-static, r=nikomatsakis · 5d5634ac
      bors 提交于
      It was possible to borrow unsafe static items in static initializers.
      This patch implements a small `Visitor` that walks static initializer's
      expressions and checks borrows aliasability.
      
      Fixes #13005
      
      cc @nikomatsakis r?
      5d5634ac
    • B
      auto merge of #13063 : brson/rust/dist, r=alexcrichton · b1091c31
      bors 提交于
      Several things here:
      
      * Cleanup
      * Fix build targets for building .pkg so that it works and works for all hosts
      * Adds support for nightly artifacts
      * Put docs in a location suitable for upload to s3 during 'make dist'
      * Add coverage of unix binary installers to 'distcheck'
      * Fix 'distcheck'
      * Change 'dist' to build source tarballs, binary tarballs and OS X packages
      b1091c31
    • B
      auto merge of #12991 : alexcrichton/rust/sync-chan, r=brson · 1e6e98c0
      bors 提交于
      This commit contains an implementation of synchronous, bounded channels for
      Rust. This is an implementation of the proposal made last January [1]. These
      channels are built on mutexes, and currently focus on a working implementation
      rather than speed. Receivers for sync channels have select() implemented for
      them, but there is currently no implementation of select() for sync senders.
      
      Rust will continue to provide both synchronous and asynchronous channels as part
      of the standard distribution, there is no intent to remove asynchronous
      channels. This flavor of channels is meant to provide an alternative to
      asynchronous channels because like green tasks, asynchronous channels are not
      appropriate for all situations.
      
      [1] - https://mail.mozilla.org/pipermail/rust-dev/2014-January/007924.html
      1e6e98c0
    • A
      comm: Implement synchronous channels · 56cae9b3
      Alex Crichton 提交于
      This commit contains an implementation of synchronous, bounded channels for
      Rust. This is an implementation of the proposal made last January [1]. These
      channels are built on mutexes, and currently focus on a working implementation
      rather than speed. Receivers for sync channels have select() implemented for
      them, but there is currently no implementation of select() for sync senders.
      
      Rust will continue to provide both synchronous and asynchronous channels as part
      of the standard distribution, there is no intent to remove asynchronous
      channels. This flavor of channels is meant to provide an alternative to
      asynchronous channels because like green tasks, asynchronous channels are not
      appropriate for all situations.
      
      [1] - https://mail.mozilla.org/pipermail/rust-dev/2014-January/007924.html
      56cae9b3
    • B
      auto merge of #12900 : alexcrichton/rust/rewrite-sync, r=brson · 6bf3fca8
      bors 提交于
      * Remove clone-ability from all primitives. All shared state will now come
        from the usage of the primitives being shared, not the primitives being
        inherently shareable. This allows for fewer allocations for stack-allocated
        primitives.
      * Add `Mutex<T>` and `RWLock<T>` which are stack-allocated primitives for purely
        wrapping a piece of data
      * Remove `RWArc<T>` in favor of `Arc<RWLock<T>>`
      * Remove `MutexArc<T>` in favor of `Arc<Mutex<T>>`
      * Shuffle around where things are located
        * The `arc` module now only contains `Arc`
        * A new `lock` module contains `Mutex`, `RWLock`, and `Barrier`
        * A new `raw` module contains the primitive implementations of `Semaphore`,
          `Mutex`, and `RWLock`
      * The Deref/DerefMut trait was implemented where appropriate
      * `CowArc` was removed, the functionality is now part of `Arc` and is tagged
        with `#[experimental]`.
      * The crate now has #[deny(missing_doc)]
      * `Arc` now supports weak pointers
      
      This is not a large-scale rewrite of the functionality contained within the
      `sync` crate, but rather a shuffling of who does what an a thinner hierarchy of
      ownership to allow for better composability.
      6bf3fca8
    • B
      std: Unignore atomic tests · 218461d0
      Brian Anderson 提交于
      218461d0
    • A
      test: Update all tests with the sync changes · 5163a26d
      Alex Crichton 提交于
      5163a26d
    • A
      sync: Wire up all of the previous commits · eff02579
      Alex Crichton 提交于
      This updates the exports and layout of the crate
      eff02579
    • A
      sync: Update the arc module · 64a52de8
      Alex Crichton 提交于
      This removes the now-outdated MutexArc and RWArc types. These are superseded by
      Arc<Mutex<T>> and Arc<RWLock<T>>. The only remaining arc is the one true Arc.
      Additionally, the arc now has weak pointers implemented for it to assist in
      breaking cycles.
      
      This commit brings the arc api up to parity with the sibling Rc api, making them
      nearly interchangeable for inter and intra task communication.
      64a52de8
    • S
      Correct issue workaround references · ff2f2e83
      Steven Stewart-Gallus 提交于
      ff2f2e83