Commit Graph

26132 Commits

Author SHA1 Message Date
JeremyLetang
dd21a51d29 move concurrent stuff from libextra to libsync 2014-02-05 11:56:04 -05:00
bors
faf60551ec auto merge of #12045 : thestinger/rust/glue, r=pcwalton
A solid step towards fixing #11998. Eventually, the size may always be
passed to `exchange_free` but this will not be required to fix the bug.
2014-02-05 08:06:37 -08:00
bors
ed885e35fe auto merge of #12035 : chromatic/rust/tutorial_improvements, r=alexcrichton
This cleans up a warning about an unused variable and explains the code
further.
2014-02-05 03:16:35 -08:00
bors
53864ce512 auto merge of #12025 : lilac/rust/feature-gate-quote, r=brson
Closes #11630.
2014-02-05 01:06:32 -08:00
Daniel Micay
1778b63616 stop calling exchange_free on 0-size types
A solid step towards fixing #11998. Eventually, the size may always be
passed to `exchange_free` but this will not be required to fix the bug.
2014-02-05 03:05:36 -05:00
bors
1bcc73fe9d auto merge of #12023 : nick29581/rust/err_res, r=alexcrichton
closes #3512
2014-02-04 23:46:37 -08:00
bors
4509b49451 auto merge of #12018 : alexcrichton/rust/triage, r=sfackler
Mostly just test suite modifications.
2014-02-04 21:46:35 -08:00
bors
28f277b909 auto merge of #12014 : eddyb/rust/less-copies, r=cmr 2014-02-04 18:41:38 -08:00
Alex Crichton
50bdeb9a34 Run all target crate tests on the windows/try bots
Previously, the check-fast and check-lite test suites weren't picking up all
target crates, rather just std/extra. In order to ensure that all of our crates
work on windows, I've modified these rules to build the test suites for all
TARGET_CRATES members. Note that this still excludes rustc/syntax/rustdoc.
2014-02-04 18:05:13 -08:00
Alex Crichton
03c28b4ac5 Make cfail test error messages more precise
Closes #3192
2014-02-04 18:05:13 -08:00
Alex Crichton
8a1dda92ba Adding tests for closed issues
Closes #5521
Closes #9396
Closes #10714
2014-02-04 18:05:13 -08:00
chromatic
87d026b76e Improved pattern-match code and explanation.
This cleans up a warning about an unused variable and explains the code
further.
2014-02-04 16:11:32 -08:00
bors
acb1ec0b67 auto merge of #11230 : csherratt/rust/cow, r=alexcrichton
This allows patch adds a new arc type that allows for creation of copy-on-write data structures. The idea is that it is safe to mutate any data structure as long as it has only one reference to it. If there are multiple, it requires cloning of the data structure before mutation is possible.
2014-02-04 14:41:36 -08:00
Nick Cameron
8d8c7835f7 Check for trait impl conflicts across crates 2014-02-05 08:50:05 +13:00
Eduard Burtescu
01815b3920 Don't copy arguments passed by value with indirection to allocas. 2014-02-04 20:53:58 +02:00
bors
ef53b7a97c auto merge of #12026 : alexcrichton/rust/snapshots, r=cmr 2014-02-04 06:31:34 -08:00
bors
cdc678945f auto merge of #11951 : dmanescu/rust/reserve-rename, r=huonw
Changes in std::{str,vec,hashmap} and extra::{priority_queue,ringbuf}.
Fixes #11949
2014-02-04 04:31:34 -08:00
James Deng
124938bcf5 Replaced with a single "quote" feature gate. 2014-02-04 22:03:00 +11:00
bors
10de762f6c auto merge of #11717 : DiamondLovesYou/rust/master, r=alexcrichton
Note that it still doesn't allow generic types to be marked with #[simd].
2014-02-04 01:11:34 -08:00
Richard Diamond
7becc0f34c Added missing xfail-fast. 2014-02-04 02:26:02 -06:00
Alex Crichton
6c41192c41 Register new snapshots 2014-02-04 00:06:08 -08:00
Richard Diamond
63ba2e1219 Simd feature gating + Win32/64 fixes. 2014-02-04 01:04:19 -06:00
James Deng
38f2526beb Feature gate all quasi-quoting macros. 2014-02-04 16:35:57 +11:00
bors
e99fe7e4b9 auto merge of #11912 : poiru/rust/8784-libuuid, r=alexcrichton
cc #8784
2014-02-03 21:21:32 -08:00
Birunthan Mohanathas
f8afc9a5c1 extra: Move uuid to libuuid
cc #8784
2014-02-04 06:44:02 +02:00
bors
346d378ad5 auto merge of #12022 : alexcrichton/rust/unblock-snapshot, r=thestinger
cc #12021
2014-02-03 19:41:31 -08:00
bors
c1395ea588 auto merge of #11999 : joaoxsouls/rust/master, r=cmr 2014-02-03 17:46:37 -08:00
David Manescu
65f3578148 Rename reserve to reserve_exact and reserve_at_least to reserve
Changes in std::{str,vec,hashmap} and extra::{priority_queue,ringbuf}.
Fixes #11949
2014-02-04 12:33:41 +11:00
Alex Crichton
882b4829ce xfail a test to unblock the snapshot
cc #12021
2014-02-03 17:12:52 -08:00
bors
2877928b22 auto merge of #12016 : FlaPer87/rust/remove-non-copyable, r=alexcrichton
cc #10834
2014-02-03 16:31:33 -08:00
joaoxsouls
b69c81c9e0 doc: update boxes section on Manual, remove managed pointers references 2014-02-04 00:07:16 +00:00
Flavio Percoco
c6b1bce96f Replace NonCopyable usage with NoPod
cc #10834
2014-02-04 00:15:27 +01:00
bors
fde11e7ae5 auto merge of #12012 : omasanori/rust/semver, r=alexcrichton
Done as a part of #8784.
2014-02-03 15:11:44 -08:00
bors
d42521aa92 auto merge of #11866 : alexcrichton/rust/atomic-u64, r=brson
Let's try this again.

This is an implementation of mutexes which I believe is free from undefined behavior of OS mutexes (the pitfall of the previous implementation).

This implementation is not ideal. There's a yield-loop spot, and it's not particularly fair with respect to lockers who steal without going through the normal code paths. That being said, I believe that this is a correct implementation which is a stepping stone to move from.

I haven't done rigorous benchmarking of this mutex, but preliminary results show that it's about 25% slower in the uncontended case on linux (same runtime on OSX), and it's actually faster than a pthreads mutex on high contention (again, not rigorous benchmarking, I just saw these numbers come up).
2014-02-03 13:11:35 -08:00
Alex Crichton
acacfb20fd Various bug fixes and rebase conflicts 2014-02-03 12:05:16 -08:00
Alex Crichton
984727ff87 extra: Introduce a mutex type for native/green threads 2014-02-03 12:05:16 -08:00
Alex Crichton
b49771e392 std: Remove try_send_deferred plus all fallout
Now that extra::sync primitives are built on a proper mutex instead of a
pthreads one, there's no longer any use for this function.
2014-02-03 12:05:16 -08:00
Alex Crichton
21e8466eca extra: Re-add the Once primitve to extra::sync
This originally lived in std::unstable::mutex, but now it has a new home (and a
more proper one).
2014-02-03 12:04:30 -08:00
Alex Crichton
99582f8884 std: Hardcode pthread constants and structures
This allows for easier static initialization of a pthread mutex, although the
windows mutexes still sadly suffer.

Note that this commit removes the clone() method from a mutex because it no
longer makes sense for pthreads mutexes. This also removes the Once type for
now, but it'll get added back shortly.
2014-02-03 12:04:30 -08:00
Alex Crichton
24631c8bcd extra: Add an intrusive MPSC to be used soon 2014-02-03 12:04:30 -08:00
Alex Crichton
a417de94a9 extra: Make room for more sync primitives 2014-02-03 12:04:30 -08:00
Alex Crichton
b5f19795ad Enable the +v7 feature on Android by default
With the recently added double word CAS functionality on 32-bit ARM (enabled via
a 64-bit atomic instruction in LLVM IR), without some extra features enabled
LLVM lowers code to function calls which emulate atomic instructions. With the
v7 feature enabled, proper 64-bit CAS instructions are used on 32-bit arm.

I've been told that v7 for arm is what we should have been doing anyway. This is
overridable by providing some other non-empty feature string.
2014-02-03 12:04:30 -08:00
Alex Crichton
b00147a99b Add an AtomicU64 type to std::sync::atomics
This also generalizes all atomic intrinsics over T so we'll be able to add u8
atomics if we really feel the need to (do we really want to?)
2014-02-03 12:04:30 -08:00
bors
cb40eba4b1 auto merge of #11946 : alexcrichton/rust/no-io-error, r=brson
Turns out this was a little more far-reaching than I thought it was.

The first commit is the crux of this stack of commits. The `io::io_error` condition is completely removed and the `read` and `write` methods are altered to return `IoResult<T>`. This turned out to be an incredibly far-reaching change!

Overall, I'm very happy with how this turned out (in addition with the `unused_must_use` lint). I had to almost rewrite the pretty printer in `libsyntax` as well as the the formatting in `librustdoc` (as one would expect). These two modules do *tons* of I/O, and I believe that it's definitely improved.

This pull request also introduces the `if_ok!()` macro for returning-early from something that returns a result. I made quite liberal use of this in mostly the pretty printer and html renderer, and I found its usage generally quite pleasant and convenient to have. I didn't really feel like adding any other macro while I was using it, and I figured that pretty printing could be nicer, but it's nowhere near horrid today.

This may be a controversial issue closing, but I'm going to say it.

Closes #6163
2014-02-03 10:41:34 -08:00
Alex Crichton
c765a8e7ad Fixing remaining warnings and errors throughout 2014-02-03 10:39:23 -08:00
Alex Crichton
f9a32cdabc std: Fixing all documentation
* Stop referencing io_error
* Start changing "Failure" sections to "Error" sections
* Update all doc examples to work.
2014-02-03 09:32:35 -08:00
Alex Crichton
2a7c5e0b72 syntax: Remove usage of io_error in tests 2014-02-03 09:32:35 -08:00
Alex Crichton
94f2dfa8f6 rustuv: Require all results are used and fix fallout 2014-02-03 09:32:35 -08:00
Alex Crichton
ae581a0103 native: Require all results are used and fix fallout 2014-02-03 09:32:35 -08:00
Alex Crichton
41cde566bb extra: Fix tests with io_error usage 2014-02-03 09:32:34 -08:00