]> git.lizzy.rs Git - rust.git/commit
auto merge of #6577 : brson/rust/io-upstream, r=pcwalton
authorbors <bors@rust-lang.org>
Sun, 19 May 2013 01:37:25 +0000 (18:37 -0700)
committerbors <bors@rust-lang.org>
Sun, 19 May 2013 01:37:25 +0000 (18:37 -0700)
commit3ee479f3e98474cd8125432f7a0c5c18bc2bd342
treeb105fbefbc8b0fce8abc62152a9bd6b9af1a6abe
parent24c2be3323f088dc0e8024fc503198b2a535a09e
parent8daa5ec9eac7148674cd63e5281c56925a3bc7b7
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.
src/libstd/future.rs