rust/src/libcore
bors 3ee479f3e9 auto merge of #6577 : brson/rust/io-upstream, r=pcwalton
r?

This is all of my scheduler work on #4419 from the last 3 weeks or so. I've had a few failed pull requests so far but I think the problems are ironed out.

* TCP
* The beginnings of runtime embedding APIs
* Porting various corners of core to be compatible with both schedulers
* libuv timer bindings
* Further refinement of I/O error handling, including a new, incomplete, `read_error` condition
* Incomplete refactoring to make tasks work without coroutines and user-space scheduling
* Implementations of Reader/Writer extension methods
* Implementations of the most important part of core::comm

I'm particularly happy with how easy the [comm types on top of the scheduler](https://github.com/brson/rust/blob/io-upstream/src/libcore/rt/comm.rs). Note that these implementations do not use pipes. If anything here needs careful review though it's this code.

This branch passes 95% of the run-pass tests (with `TESTARGS=--newrt`)

In the next week I'll probably spend some time adding preliminary multithreading and seeing how close we are to removing the old runtime.
2013-05-18 18:37:25 -07:00
..
num auto merge of #6586 : bjz/rust/formatting-and-conditionals, r=thestinger 2013-05-18 00:34:24 -07:00
rand libcore: Remove mutable fields from rand. 2013-05-08 17:03:58 -07:00
rt Whitespace 2013-05-17 18:11:47 -07:00
str Remove re-exports from libcore/core.rc 2013-05-13 18:51:40 -04:00
task core::rt: Rename Task to Coroutine 2013-05-15 12:19:16 -07:00
unstable Merge remote-tracking branch 'brson/io' into incoming 2013-05-17 17:53:50 -07:00
at_vec.rs rename at_vec::from_owned and at_vec::from_slice to at_vec::to_managed_consume and at_vec::to_managed 2013-05-16 00:33:54 +09:00
bool.rs Use pattern-matching instead of conditionals where appropriate to improve code clarity 2013-05-18 17:29:12 +10:00
cast.rs Make staged versions of the functions that use uninit 2013-05-09 23:05:17 +12:00
cell.rs rc: fix tests 2013-05-15 04:34:31 -04:00
char.rs Use /// style doc-comments and add missing headings 2013-05-19 06:45:54 +10:00
cleanup.rs core: Use the new for protocol 2013-05-10 02:46:18 -04:00
clone.rs auto merge of #6509 : thestinger/rust/clone, r=nikomatsakis 2013-05-16 01:07:45 -07:00
cmp.rs Convert various inner doc-comments to outer doc-comments 2013-05-18 17:29:14 +10:00
comm.rs core: Wire up stream to newsched 2013-05-17 17:54:32 -07:00
condition.rs clean up the last bit of warnings 2013-05-11 20:36:47 -07:00
container.rs core: Use the new for protocol 2013-05-10 02:46:18 -04:00
core.rc Merge remote-tracking branch 'brson/io-upstream' into incoming 2013-05-14 15:30:01 -07:00
either.rs Use four-space indentation, add trailing commas, and remove unnecessary uses of the return keyword 2013-05-18 17:29:19 +10:00
from_str.rs libcore: Remove pure from libcore. rs=depure 2013-03-22 10:29:17 -07:00
gc.rs core: Use the new for protocol 2013-05-10 02:46:18 -04:00
hash.rs Remove re-exports from libcore/core.rc 2013-05-13 18:51:40 -04:00
hashmap.rs Re-implement lint with less emphasis on item ids 2013-05-17 00:49:16 -04:00
io.rs Rename vec::len(var) to var.len() 2013-05-15 11:05:28 +09:00
iter.rs iter: add fold, sum and product 2013-05-16 21:51:31 -04:00
iterator.rs libcore: Add IteratorUtil::all, any method 2013-05-18 00:24:43 +09:00
kinds.rs Remove Durable from the language 2013-05-07 17:50:42 -07:00
libc.rs improve MIPS backend and implement segmented stacks 2013-05-09 16:51:42 +08:00
local_data.rs Fix cosmetics for fail!() calls 2013-05-14 16:36:24 +02:00
logging.rs Merge remote-tracking branch 'brson/io-upstream' into incoming 2013-05-14 15:30:01 -07:00
macros.rs core::rt: Fix scheduling logic for enqueued tasks 2013-05-15 12:19:15 -07:00
managed.rs Convert various inner doc-comments to outer doc-comments 2013-05-18 17:29:14 +10:00
nil.rs Remove #[cfg(notest)] and use #[cfg(not(test))] to cooincide with #[cfg(debug)] 2013-05-08 21:11:23 +10:00
old_iter.rs Use static string with fail!() and remove fail!(fmt!()) 2013-05-14 16:36:23 +02:00
ops.rs Register snapshots 2013-05-04 15:43:51 -07:00
option.rs Use four-space indentation, add trailing commas, and remove unnecessary uses of the return keyword 2013-05-18 17:29:19 +10:00
os.rs Merge remote-tracking branch 'brson/io' into incoming 2013-05-17 17:53:50 -07:00
owned.rs Remove #[cfg(notest)] and use #[cfg(not(test))] to cooincide with #[cfg(debug)] 2013-05-08 21:11:23 +10:00
path.rs Use four-space indentation, add trailing commas, and remove unnecessary uses of the return keyword 2013-05-18 17:29:19 +10:00
pipes.rs Use static string with fail!() and remove fail!(fmt!()) 2013-05-14 16:36:23 +02:00
prelude.rs Create Char trait 2013-05-19 05:50:02 +10:00
ptr.rs Rename vec::len(var) to var.len() 2013-05-15 11:05:28 +09:00
rand.rs clean up the last bit of warnings 2013-05-11 20:36:47 -07:00
reflect.rs Warning police 2013-05-11 20:36:44 -07:00
repr.rs Use static string with fail!() and remove fail!(fmt!()) 2013-05-14 16:36:23 +02:00
result.rs Use static string with fail!() and remove fail!(fmt!()) 2013-05-14 16:36:23 +02:00
run.rs Fix cosmetics for fail!() calls 2013-05-14 16:36:24 +02:00
stackwalk.rs core: Use the new for protocol 2013-05-10 02:46:18 -04:00
str.rs Use pattern-matching instead of conditionals where appropriate to improve code clarity 2013-05-18 17:29:12 +10:00
sys.rs core::rt: Add a simple channel type for passing buffered messages between Scheduler and Task 2013-05-14 14:52:06 -07:00
to_bytes.rs Add inlining for iter_bytes for types used as hashmap keys 2013-05-14 20:32:49 +02:00
to_str.rs Remove re-exports from libcore/core.rc 2013-05-13 18:51:40 -04:00
trie.rs core: Use the new for protocol 2013-05-10 02:46:18 -04:00
tuple.rs Return a reference to the tuple elements instead of copying 2013-05-18 20:05:40 +10:00
unicode.rs Use cond! macro where appropriate 2013-05-18 17:29:07 +10:00
util.rs auto merge of #6442 : sstewartgallus/rust/incoming, r=pcwalton 2013-05-17 06:46:32 -07:00
vec.rs Update to new for-loop protocol 2013-05-16 22:57:49 -04:00