auto merge of #10457 : alexcrichton/rust/native-io, r=brson
This commit re-organizes the io::native module slightly in order to have a working implementation of rtio::IoFactory which uses native implementations. The goal is to seamlessly multiplex among libuv/native implementations wherever necessary. Right now most of the native I/O is unimplemented, but we have existing bindings for file descriptors and processes which have been hooked up. What this means is that you can now invoke println!() from libstd with no local task, no local scheduler, and even without libuv. There's still plenty of work to do on the native I/O factory, but this is the first steps into making it an official portion of the standard library. I don't expect anyone to reach into io::native directly, but rather only std::io primitives will be used. Each std::io interface seamlessly falls back onto the native I/O implementation if the local scheduler doesn't have a libuv one (hurray trait ojects!)
This commit is contained in:
commit
58b5c618cf
13 changed files with 479 additions and 359 deletions
|
|
@ -154,7 +154,7 @@ fn make_sequence_processor(sz: uint,
|
|||
// given a FASTA file on stdin, process sequence THREE
|
||||
fn main() {
|
||||
use std::io::Reader;
|
||||
use std::io::native::stdio;
|
||||
use std::io::stdio;
|
||||
use std::io::mem::MemReader;
|
||||
use std::io::buffered::BufferedReader;
|
||||
|
||||
|
|
|
|||
19
src/test/run-pass/native-print-no-runtime.rs
Normal file
19
src/test/run-pass/native-print-no-runtime.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// xfail-fast
|
||||
|
||||
#[no_uv];
|
||||
|
||||
#[start]
|
||||
fn main(_: int, _: **u8) -> int {
|
||||
println!("hello");
|
||||
0
|
||||
}
|
||||
17
src/test/run-pass/native-print-no-uv.rs
Normal file
17
src/test/run-pass/native-print-no-uv.rs
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// xfail-fast
|
||||
|
||||
#[no_uv];
|
||||
|
||||
fn main() {
|
||||
println!("hello");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue