- 26 3月, 2014 1 次提交
-
-
由 Marvin Löbel 提交于
-
- 25 3月, 2014 39 次提交
-
-
由 bors 提交于
Cleanup old issue references. One of these workarounds no longer need to be used anymore and the others are out of date.
-
由 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?
-
由 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
-
由 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
-
由 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
-
由 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.
-
由 Brian Anderson 提交于
-
由 Alex Crichton 提交于
-
由 Alex Crichton 提交于
This updates the exports and layout of the crate
-
由 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.
-
由 Steven Stewart-Gallus 提交于
-
由 Steven Stewart-Gallus 提交于
-
由 bors 提交于
The OSX bots have been deadlocking recently in the rustdoc tests. I have only been able to rarely reproduce the deadlock on my local setup. When reproduced, it looks like the child process is spinning on the malloc mutex, which I presume is locked with no other threads to unlock it. I'm not convinced that this is what's happening, because OSX should protect against this with pthread_atfork by default. Regardless, running as little code as possible in the child after fork() is normally a good idea anyway, so this commit moves all allocation to the parent process to run before the child executes. After running 6k iterations of rustdoc tests, this deadlocked twice before, and after 20k iterations afterwards, it never deadlocked. I draw the conclusion that this is either sweeping the bug under the rug, or it did indeed fix the underlying problem.
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
This reverts commit e93709a911637194835268420e67d768ee19b5df.
-
由 Brian Anderson 提交于
The way it was formulated you could only 'prepare' one directory per build.
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
This is not for temporaries now
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
I think there are likely to be scenarios where this script is run to move files to the correct place during cross-compiles.
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
Fix some misc bugs
-
由 Brian Anderson 提交于
Also, add more distcheck tests
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
For integrating doc upload into the dist-snap process
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
-
由 Brian Anderson 提交于
Just to be more logical, put big headers between different installers
-
由 Brian Anderson 提交于
This doesn't work quite right yet (we need to build packages for all hosts) and I'm not ready to turn on new dist artifacts yet, but I want to start doing dry runs for 0.10, so I'm turning this off for now.
-
由 bors 提交于
This method can be used to fill a byte slice of data entirely, and it's considered an error if any error happens before its entirely filled.
-
由 Flavio Percoco 提交于
Summary: 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 Test Plan: make check Differential Revision: http://phabricator.octayn.net/D2
-
由 bors 提交于
While double-checking my understanding of the meaning of `'static`, I made the following test program: ```rust fn foo<X:'static>(_x: X) { } #[cfg(not(acceptable))] fn bar() { let a = 3; let b = &a; foo(b); } #[cfg(acceptable)] fn bar() { static c : int = 4;; let d : &'static int = &c; foo(d); } fn main() { bar(); } ``` Transcript of compiling above program, illustrating that the `--cfg acceptable` variant of `bar` compiles successfully, showing that the`'static` kind bound only disallows non-`static` references, not *all* references: ``` % rustc --version /Users/fklock/opt/rust-dbg/bin/rustc 0.10-pre (caf17fea 2014-03-21 02:21:50 -0700) host: x86_64-apple-darwin % rustc /tmp/s.rs /tmp/s.rs:7:5: 7:8 error: instantiating a type parameter with an incompatible type `&int`, which does not fulfill `'static` /tmp/s.rs:7 foo(b); ^~~ error: aborting due to previous error % rustc --cfg acceptable /tmp/s.rs % ./s % ``` (Note that the explicit type annotation on `let d : &'static int` is necessary; it did not suffice for me to just write `let d = &'static c;`. That might be a latent bug, I am not sure yet.) Anyway, a fix to the documentation seemed prudent.
-