<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/io/util.rs, branch 1.0.0-beta</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.0.0-beta</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.0.0-beta'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2015-04-01T00:39:24+00:00</updated>
<entry>
<title>Test fixes and rebase conflicts, round 3</title>
<updated>2015-04-01T00:39:24+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-03-31T23:20:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=72f59732d7974767650abfc58f8287212e5a1fba'/>
<id>urn:sha1:72f59732d7974767650abfc58f8287212e5a1fba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Stabilize portions of the `io` module</title>
<updated>2015-03-05T01:04:22+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-03-03T22:49:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0dfa9978cc57efc8eb51485fc3a333eafd1aa392'/>
<id>urn:sha1:0dfa9978cc57efc8eb51485fc3a333eafd1aa392</id>
<content type='text'>
The new `io` module has had some time to bake and this commit stabilizes some of
the utilities associated with it. This commit also deprecates a number of
`std::old_io::util` functions and structures.

These items are now `#[stable]`

* `Cursor`
* `Cursor::{new, into_inner, get_ref, get_mut, position, set_position}`
* Implementations of I/O traits for `Cursor&lt;T&gt;`
* Delegating implementations of I/O traits for references and `Box` pointers
* Implementations of I/O traits for primitives like slices and `Vec&lt;T&gt;`
* `ReadExt::bytes`
* `Bytes` (and impls)
* `ReadExt::chain`
* `Chain` (and impls)
* `ReadExt::take` (and impls)
* `BufReadExt::lines`
* `Lines` (and impls)
* `io::copy`
* `io::{empty, Empty}` (and impls)
* `io::{sink, Sink}` (and impls)
* `io::{repeat, Repeat}` (and impls)

These items remain `#[unstable]`

* Core I/O traits. These may want a little bit more time to bake along with the
  commonly used methods like `read_to_end`.
* `BufReadExt::split` - this function may be renamed to not conflict with
  `SliceExt::split`.
* `Error` - there are a number of questions about its representation,
  `ErrorKind`, and usability.

These items are now `#[deprecated]` in `old_io`

* `LimitReader` - use `take` instead
* `NullWriter` - use `io::sink` instead
* `ZeroReader` - use `io::repeat` instead
* `NullReader` - use `io::empty` instead
* `MultiWriter` - use `broadcast` instead
* `ChainedReader` - use `chain` instead
* `TeeReader` - use `tee` instead
* `copy` - use `io::copy` instead

[breaking-change]
</content>
</entry>
<entry>
<title>std: Add `io` module again</title>
<updated>2015-02-03T20:51:12+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-02-01T04:24:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5cf9905e257ddeeadaf493a705a230081a6c7da3'/>
<id>urn:sha1:5cf9905e257ddeeadaf493a705a230081a6c7da3</id>
<content type='text'>
This commit is an implementation of [RFC 576][rfc] which adds back the `std::io`
module to the standard library. No functionality in `std::old_io` has been
deprecated just yet, and the new `std::io` module is behind the same `io`
feature gate.

[rfc]: https://github.com/rust-lang/rfcs/pull/576

A good bit of functionality was copied over from `std::old_io`, but many tweaks
were required for the new method signatures. Behavior such as precisely when
buffered objects call to the underlying object may have been tweaked slightly in
the transition. All implementations were audited to use composition wherever
possible. For example the custom `pos` and `cap` cursors in `BufReader` were
removed in favor of just using `Cursor&lt;Vec&lt;u8&gt;&gt;`.

A few liberties were taken during this implementation which were not explicitly
spelled out in the RFC:

* The old `LineBufferedWriter` is now named `LineWriter`
* The internal representation of `Error` now favors OS error codes (a
  0-allocation path) and contains a `Box` for extra semantic data.
* The io prelude currently reexports `Seek` as `NewSeek` to prevent conflicts
  with the real prelude reexport of `old_io::Seek`
* The `chars` method was moved from `BufReadExt` to `ReadExt`.
* The `chars` iterator returns a custom error with a variant that explains that
  the data was not valid UTF-8.
</content>
</entry>
<entry>
<title>std: Rename io to old_io</title>
<updated>2015-01-27T00:01:16+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-01-23T00:27:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f72b1645103e12b581f7022b893c37b5fe41aef7'/>
<id>urn:sha1:f72b1645103e12b581f7022b893c37b5fe41aef7</id>
<content type='text'>
In preparation for the I/O rejuvination of the standard library, this commit
renames the current `io` module to `old_io` in order to make room for the new
I/O modules. It is expected that the I/O RFCs will land incrementally over time
instead of all at once, and this provides a fresh clean path for new modules to
enter into as well as guaranteeing that all old infrastructure will remain in
place for some time.

As each `old_io` module is replaced it will be deprecated in-place for new
structures in `std::{io, fs, net}` (as appropriate).

This commit does *not* leave a reexport of `old_io as io` as the deprecation
lint does not currently warn on this form of use. This is quite a large breaking
change for all imports in existing code, but all functionality is retained
precisely as-is and path statements simply need to be renamed from `io` to
`old_io`.

[breaking-change]
</content>
</entry>
<entry>
<title>Fallout from stabilization.</title>
<updated>2015-01-21T16:11:07+00:00</updated>
<author>
<name>Aaron Turon</name>
<email>aturon@mozilla.com</email>
</author>
<published>2015-01-18T00:15:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a506d4cbfe8f20a2725c7efd9d43359a0bbd0e9e'/>
<id>urn:sha1:a506d4cbfe8f20a2725c7efd9d43359a0bbd0e9e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cleanup: `&amp;foo[0..a]` -&gt; `&amp;foo[..a]`</title>
<updated>2015-01-12T22:59:37+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2015-01-12T21:59:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c1d48a85082cfe3683ad9eda5223d3259d4fa718'/>
<id>urn:sha1:c1d48a85082cfe3683ad9eda5223d3259d4fa718</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement Show for types in std::io::{buffered,util}</title>
<updated>2015-01-11T01:32:54+00:00</updated>
<author>
<name>Steven Fackler</name>
<email>sfackler@gmail.com</email>
</author>
<published>2015-01-11T01:32:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b4fae2fba99e713a6d6a8a59caaf1cfba847b50e'/>
<id>urn:sha1:b4fae2fba99e713a6d6a8a59caaf1cfba847b50e</id>
<content type='text'>
A derived implementation would not be appropriate for the Buffered types
since the buffer is both huge (64k by default) and full of uninitialized
memory. Instead of printing the whole thing, we display how full it is.

I also altered MultiWriter to make it generic over Writers instead of
taking Box&lt;Writer&gt; trait objects. Box&lt;Writer&gt; implements Writer so
existing use cases should continue to work, and this enables a more
useful Show implementation in applicable cases.

The change to MultiWriter may break code that uses it, but any fixes
should be easy.

[breaking-change]
</content>
</entry>
<entry>
<title>use slicing sugar</title>
<updated>2015-01-07T22:35:56+00:00</updated>
<author>
<name>Jorge Aparicio</name>
<email>japaricious@gmail.com</email>
</author>
<published>2015-01-07T16:58:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=517f1cc63c1a5df148fdeef56791f66771d3d8e8'/>
<id>urn:sha1:517f1cc63c1a5df148fdeef56791f66771d3d8e8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Replace full slice notation with index calls</title>
<updated>2015-01-06T21:46:33+00:00</updated>
<author>
<name>Nick Cameron</name>
<email>ncameron@mozilla.com</email>
</author>
<published>2015-01-02T00:56:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f7ff37e4c52a1d6562635fcd5bab6309cf75ea08'/>
<id>urn:sha1:f7ff37e4c52a1d6562635fcd5bab6309cf75ea08</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove deprecated functionality</title>
<updated>2015-01-04T07:43:57+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-01-02T07:53:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7d8d06f86b48520814596bd5363d2b82bc619774'/>
<id>urn:sha1:7d8d06f86b48520814596bd5363d2b82bc619774</id>
<content type='text'>
This removes a large array of deprecated functionality, regardless of how
recently it was deprecated. The purpose of this commit is to clean out the
standard libraries and compiler for the upcoming alpha release.

Some notable compiler changes were to enable warnings for all now-deprecated
command line arguments (previously the deprecated versions were silently
accepted) as well as removing deriving(Zero) entirely (the trait was removed).

The distribution no longer contains the libtime or libregex_macros crates. Both
of these have been deprecated for some time and are available externally.
</content>
</entry>
</feed>
