Commit Graph

26157 Commits

Author SHA1 Message Date
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
Alex Crichton
209642c651 std: Fix tests with io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
29e7247fd8 rpass: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
6132f7f666 rustdoc: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
e0f0a2f67f rustuv: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
5878b1b76b native: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
2053b69595 green: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
c0e77dc2ee glob: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
27a9bf773c compiletest: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
5e8ba7252a rustc: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
b211b00d21 syntax: Remove io_error usage 2014-02-03 09:32:34 -08:00
Alex Crichton
ef00c6a278 extra: Remove io_error usage 2014-02-03 09:32:33 -08:00
Alex Crichton
ece8a8f520 std: Remove io::io_error
* All I/O now returns IoResult<T> = Result<T, IoError>
* All formatting traits now return fmt::Result = IoResult<()>
* The if_ok!() macro was added to libstd
2014-02-03 09:32:33 -08:00
bors
be4fc63809 auto merge of #12013 : Hywan/rust/doc, r=sanxiyn 2014-02-03 02:46:32 -08:00
Ivan Enderlin
3cb3f0983b Remove unnecessary trailing commas. 2014-02-03 10:12:31 +01:00
OGINO Masanori
fdb820a1be Move semver out of libextra.
Done as a part of #8784.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-02-03 17:18:27 +09:00
bors
62caad2c1a auto merge of #12003 : bnoordhuis/rust/sizeof-epoll-event-fixup, r=brson
Make the definition of epoll_event use natural alignment on all
architectures except x86_64.

Before this commit, the struct was always 12 bytes big, which works okay
on x86 and x86_64 but not on ARM and MIPS, where it should be 16 bytes
big with the `data` field aligned on an 8 byte boundary.
2014-02-02 19:11:27 -08:00
bors
7db6bca7aa auto merge of #12005 : omasanori/rust/update-trans, r=brson
Also, I've corrected src/doc/README.md in line with this change.
2014-02-02 17:51:27 -08:00
bors
449a99e58f auto merge of #11945 : xales/rust/libextra, r=huonw
cc #8784
2014-02-02 15:56:27 -08:00
xales
51260f69cd Move term, terminfo out of extra.
cc #8784
2014-02-02 18:35:35 -05:00
OGINO Masanori
f72a2c7c10 Update po4a.conf and regenerate .po files.
Also, I've corrected src/doc/README.md in line with this change.

Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2014-02-03 08:23:34 +09:00
Yuri Kunde Schlesner
65a6c7c12c Add extra::getopts::short_usage
This complements `usage` by auto-generating a short one-liner summary
of the options.
2014-02-02 18:58:47 -02:00
bors
8d7bd499d2 auto merge of #11891 : alexcrichton/rust/docs, r=brson
I moved all documentation sources (guides, manuals, etc) to `src/doc` to free up `doc` as a build directory for all generated files.

At the same time, I also removed our usage of `VPATH` from the makefiles because it was wreaking havoc with doc deps and it's not very necessary now that we're primarily a rust project rather than having a good portion of C++/C inside of it.
2014-02-02 11:01:29 -08:00
Alex Crichton
22a421fa02 Rewrite the doc makefile for doc => src/doc
This continues to generate all documentation into doc, but it now looks for
source files in src/doc

Closes #11860
Closes #11970
2014-02-02 10:59:27 -08:00
Alex Crichton
91882a4c56 Remove VPATH usage in Makefiles
This is just messing up all the doc dependencies because of such similar
directory names and file names.

Closes #11422
2014-02-02 10:59:14 -08:00
Alex Crichton
864b434bfa Move doc/ to src/doc/
We generate documentation into the doc/ directory, so we shouldn't be
intermingling source files with generated files
2014-02-02 10:59:14 -08:00