Commit Graph

26051 Commits

Author SHA1 Message Date
James Deng 38f2526beb Feature gate all quasi-quoting macros. 2014-02-04 16:35:57 +11:00
bors c1395ea588 auto merge of #11999 : joaoxsouls/rust/master, r=cmr 2014-02-03 17:46:37 -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
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
Ben Noordhuis 6121acf97d libnative: fix epoll_event struct layout
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:55:41 +01:00
bors 2ff16b1849 auto merge of #11996 : lecram/rust/master, r=pcwalton
This Pull Request aims to add backticks to all instances of code inside comments in snippets present in tutorial.md. It also includes backticks for filenames in the same conditions. See #11796 for motivation.
2014-02-02 08:41:27 -08:00
Marcel Rodrigues 6ad383ef40 doc: use backticks for code-in-comments. 2014-02-02 13:28:47 -02:00