-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
std: Stabilize the io
module
#23292
std: Stabilize the io
module
#23292
Conversation
r? @aturon |
r? @brson (rust_highfive has picked a reviewer for you, use r? to override) |
b50eafc
to
c79ce2c
Compare
Note that in the fallout commit I have duplicated "TTY detection" between libtest and libsyntax as well as a structure to replace |
de59d81
to
0473a27
Compare
☔ The latest upstream changes (presumably #23298) made this pull request unmergeable. Please resolve the merge conflicts. |
f5eebbd
to
b1f2158
Compare
I've modified the first commit to remove the |
Really, really exciting. What a long haul! @bors: r+ b1f2158 |
(I left some very minor nits, feel free to fix when it bounces ;-) |
b1f2158
to
8bf14f7
Compare
@bors: r=aturon 8bf14f7 |
☔ The latest upstream changes (presumably #23245) made this pull request unmergeable. Please resolve the merge conflicts. |
@bors: r=aturon |
|
⌛ Testing commit 2442589 with merge b3554cb... |
💔 Test failed - auto-mac-64-nopt-t |
2442589
to
2597c05
Compare
@bors: r=aturon On Thu, Mar 12, 2015 at 10:53 PM, bors [email protected] wrote:
|
|
⌛ Testing commit 2597c05 with merge a7be711... |
💔 Test failed - auto-mac-32-opt |
2597c05
to
981bf5f
Compare
⌛ Testing commit 981bf5f with merge 5f2f914... |
⛄ The build was interrupted to prioritize another pull request. |
The new `std::io` module has had some time to bake now, and this commit stabilizes its functionality. There are still portions of the module which remain unstable, and below contains a summart of the actions taken. This commit also deprecates the entire contents of the `old_io` module in a blanket fashion. All APIs should now have a reasonable replacement in the new I/O modules. Stable APIs: * `std::io` (the name) * `std::io::prelude` (the name) * `Read` * `Read::read` * `Read::{read_to_end, read_to_string}` after being modified to return a `usize` for the number of bytes read. * `ReadExt` * `Write` * `Write::write` * `Write::{write_all, write_fmt}` * `WriteExt` * `BufRead` * `BufRead::{fill_buf, consume}` * `BufRead::{read_line, read_until}` after being modified to return a `usize` for the number of bytes read. * `BufReadExt` * `BufReader` * `BufReader::{new, with_capacity}` * `BufReader::{get_ref, get_mut, into_inner}` * `{Read,BufRead} for BufReader` * `BufWriter` * `BufWriter::{new, with_capacity}` * `BufWriter::{get_ref, get_mut, into_inner}` * `Write for BufWriter` * `IntoInnerError` * `IntoInnerError::{error, into_inner}` * `{Error,Display} for IntoInnerError` * `LineWriter` * `LineWriter::{new, with_capacity}` - `with_capacity` was added * `LineWriter::{get_ref, get_mut, into_inner}` - `get_mut` was added) * `Write for LineWriter` * `BufStream` * `BufStream::{new, with_capacities}` * `BufStream::{get_ref, get_mut, into_inner}` * `{BufRead,Read,Write} for BufStream` * `stdin` * `Stdin` * `Stdin::lock` * `Stdin::read_line` - added method * `StdinLock` * `Read for Stdin` * `{Read,BufRead} for StdinLock` * `stdout` * `Stdout` * `Stdout::lock` * `StdoutLock` * `Write for Stdout` * `Write for StdoutLock` * `stderr` * `Stderr` * `Stderr::lock` * `StderrLock` * `Write for Stderr` * `Write for StderrLock` * `io::Result` * `io::Error` * `io::Error::last_os_error` * `{Display, Error} for Error` Unstable APIs: (reasons can be found in the commit itself) * `Write::flush` * `Seek` * `ErrorKind` * `Error::new` * `Error::from_os_error` * `Error::kind` Deprecated APIs * `Error::description` - available via the `Error` trait * `Error::detail` - available via the `Display` implementation * `thread::Builder::{stdout, stderr}` Changes in functionality: * `old_io::stdio::set_stderr` is now a noop as the infrastructure for printing backtraces has migrated to `std::io`. [breaking-change]
The new
std::io
module has had some time to bake now, and this commitstabilizes its functionality. There are still portions of the module which
remain unstable, and below contains a summart of the actions taken.
This commit also deprecates the entire contents of the
old_io
module in ablanket fashion. All APIs should now have a reasonable replacement in the
new I/O modules.
Stable APIs:
std::io
(the name)std::io::prelude
(the name)Read
Read::read
Read::{read_to_end, read_to_string}
after being modified to return ausize
for the number of bytes read.
ReadExt
Write
Write::write
Write::{write_all, write_fmt}
WriteExt
BufRead
BufRead::{fill_buf, consume}
BufRead::{read_line, read_until}
after being modified to return ausize
for the number of bytes read.
BufReadExt
BufReader
BufReader::{new, with_capacity}
BufReader::{get_ref, get_mut, into_inner}
{Read,BufRead} for BufReader
BufWriter
BufWriter::{new, with_capacity}
BufWriter::{get_ref, get_mut, into_inner}
Write for BufWriter
IntoInnerError
IntoInnerError::{error, into_inner}
{Error,Display} for IntoInnerError
LineWriter
LineWriter::{new, with_capacity}
-with_capacity
was addedLineWriter::{get_ref, get_mut, into_inner}
-get_mut
was added)Write for LineWriter
BufStream
BufStream::{new, with_capacities}
BufStream::{get_ref, get_mut, into_inner}
{BufRead,Read,Write} for BufStream
stdin
Stdin
Stdin::lock
Stdin::read_line
- added methodStdinLock
Read for Stdin
{Read,BufRead} for StdinLock
stdout
Stdout
Stdout::lock
StdoutLock
Write for Stdout
Write for StdoutLock
stderr
Stderr
Stderr::lock
StderrLock
Write for Stderr
Write for StderrLock
io::Result
io::Error
io::Error::last_os_error
{Display, Error} for Error
Unstable APIs:
(reasons can be found in the commit itself)
Write::flush
Seek
ErrorKind
Error::new
Error::from_os_error
Error::kind
Deprecated APIs
Error::description
- available via theError
traitError::detail
- available via theDisplay
implementationthread::Builder::{stdout, stderr}
Changes in functionality:
old_io::stdio::set_stderr
is now a noop as the infrastructure for printingbacktraces has migrated to
std::io
.[breaking-change]