-
Notifications
You must be signed in to change notification settings - Fork 13.9k
std: Stabilize the io module
#23292
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
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 notifications@github.com 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::iomodule 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_iomodule 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)ReadRead::readRead::{read_to_end, read_to_string}after being modified to return ausizefor the number of bytes read.
ReadExtWriteWrite::writeWrite::{write_all, write_fmt}WriteExtBufReadBufRead::{fill_buf, consume}BufRead::{read_line, read_until}after being modified to return ausizefor the number of bytes read.
BufReadExtBufReaderBufReader::{new, with_capacity}BufReader::{get_ref, get_mut, into_inner}{Read,BufRead} for BufReaderBufWriterBufWriter::{new, with_capacity}BufWriter::{get_ref, get_mut, into_inner}Write for BufWriterIntoInnerErrorIntoInnerError::{error, into_inner}{Error,Display} for IntoInnerErrorLineWriterLineWriter::{new, with_capacity}-with_capacitywas addedLineWriter::{get_ref, get_mut, into_inner}-get_mutwas added)Write for LineWriterBufStreamBufStream::{new, with_capacities}BufStream::{get_ref, get_mut, into_inner}{BufRead,Read,Write} for BufStreamstdinStdinStdin::lockStdin::read_line- added methodStdinLockRead for Stdin{Read,BufRead} for StdinLockstdoutStdoutStdout::lockStdoutLockWrite for StdoutWrite for StdoutLockstderrStderrStderr::lockStderrLockWrite for StderrWrite for StderrLockio::Resultio::Errorio::Error::last_os_error{Display, Error} for ErrorUnstable APIs:
(reasons can be found in the commit itself)
Write::flushSeekErrorKindError::newError::from_os_errorError::kindDeprecated APIs
Error::description- available via theErrortraitError::detail- available via theDisplayimplementationthread::Builder::{stdout, stderr}Changes in functionality:
old_io::stdio::set_stderris now a noop as the infrastructure for printingbacktraces has migrated to
std::io.[breaking-change]