<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/io/extensions.rs, branch 0.11.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=0.11.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=0.11.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2014-06-25T00:18:48+00:00</updated>
<entry>
<title>librustc: Remove the fallback to `int` from typechecking.</title>
<updated>2014-06-25T00:18:48+00:00</updated>
<author>
<name>Niko Matsakis</name>
<email>niko@alum.mit.edu</email>
</author>
<published>2014-04-21T21:58:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9e3d0b002a5c2e81d43351c9b8550a3f4ccfb8f9'/>
<id>urn:sha1:9e3d0b002a5c2e81d43351c9b8550a3f4ccfb8f9</id>
<content type='text'>
This breaks a fair amount of code. The typical patterns are:

* `for _ in range(0, 10)`: change to `for _ in range(0u, 10)`;

* `println!("{}", 3)`: change to `println!("{}", 3i)`;

* `[1, 2, 3].len()`: change to `[1i, 2, 3].len()`.

RFC #30. Closes #6023.

[breaking-change]
</content>
</entry>
<entry>
<title>rustc: Remove ~[T] from the language</title>
<updated>2014-06-11T22:02:17+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-06-06T17:27:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3316b1eb7c3eb520896af489dd45c4d17190d0a8'/>
<id>urn:sha1:3316b1eb7c3eb520896af489dd45c4d17190d0a8</id>
<content type='text'>
The following features have been removed

* box [a, b, c]
* ~[a, b, c]
* box [a, ..N]
* ~[a, ..N]
* ~[T] (as a type)
* deprecated_owned_vector lint

All users of ~[T] should move to using Vec&lt;T&gt; instead.
</content>
</entry>
<entry>
<title>core: Rename `container` mod to `collections`. Closes #12543</title>
<updated>2014-06-09T04:29:57+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2014-05-19T18:32:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=50942c7695783875bd2161596036a52755ffb09c'/>
<id>urn:sha1:50942c7695783875bd2161596036a52755ffb09c</id>
<content type='text'>
Also renames the `Container` trait to `Collection`.

[breaking-change]
</content>
</entry>
<entry>
<title>io: Add .read_at_least() to Reader</title>
<updated>2014-05-14T01:45:20+00:00</updated>
<author>
<name>Kevin Ballard</name>
<email>kevin@sb.org</email>
</author>
<published>2014-03-25T06:22:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=972f2e585528515eaab4bee7270acda7f7375398'/>
<id>urn:sha1:972f2e585528515eaab4bee7270acda7f7375398</id>
<content type='text'>
Reader.read_at_least() ensures that at least a given number of bytes
have been read. The most common use-case for this is ensuring at least 1
byte has been read. If the reader returns 0 enough times in a row, a new
error kind NoProgress will be returned instead of looping infinitely.

This change is necessary in order to properly support Readers that
repeatedly return 0, either because they're broken, or because they're
attempting to do a non-blocking read on some resource that never becomes
available.

Also add .push() and .push_at_least() methods. push() is like read() but
the results are appended to the passed Vec.

Remove Reader.fill() and Reader.push_exact() as they end up being thin
wrappers around read_at_least() and push_at_least().

[breaking-change]
</content>
</entry>
<entry>
<title>core: Remove the cast module</title>
<updated>2014-05-11T08:13:02+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-05-09T17:34:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f94d671bfae5d8e9a4a4add310b1c40af0ab62a6'/>
<id>urn:sha1:f94d671bfae5d8e9a4a4add310b1c40af0ab62a6</id>
<content type='text'>
This commit revisits the `cast` module in libcore and libstd, and scrutinizes
all functions inside of it. The result was to remove the `cast` module entirely,
folding all functionality into the `mem` module. Specifically, this is the fate
of each function in the `cast` module.

* transmute - This function was moved to `mem`, but it is now marked as
              #[unstable]. This is due to planned changes to the `transmute`
              function and how it can be invoked (see the #[unstable] comment).
              For more information, see RFC 5 and #12898

* transmute_copy - This function was moved to `mem`, with clarification that is
                   is not an error to invoke it with T/U that are different
                   sizes, but rather that it is strongly discouraged. This
                   function is now #[stable]

* forget - This function was moved to `mem` and marked #[stable]

* bump_box_refcount - This function was removed due to the deprecation of
                      managed boxes as well as its questionable utility.

* transmute_mut - This function was previously deprecated, and removed as part
                  of this commit.

* transmute_mut_unsafe - This function doesn't serve much of a purpose when it
                         can be achieved with an `as` in safe code, so it was
                         removed.

* transmute_lifetime - This function was removed because it is likely a strong
                       indication that code is incorrect in the first place.

* transmute_mut_lifetime - This function was removed for the same reasons as
                           `transmute_lifetime`

* copy_lifetime - This function was moved to `mem`, but it is marked
                  `#[unstable]` now due to the likelihood of being removed in
                  the future if it is found to not be very useful.

* copy_mut_lifetime - This function was also moved to `mem`, but had the same
                      treatment as `copy_lifetime`.

* copy_lifetime_vec - This function was removed because it is not used today,
                      and its existence is not necessary with DST
                      (copy_lifetime will suffice).

In summary, the cast module was stripped down to these functions, and then the
functions were moved to the `mem` module.

    transmute - #[unstable]
    transmute_copy - #[stable]
    forget - #[stable]
    copy_lifetime - #[unstable]
    copy_mut_lifetime - #[unstable]

[breaking-change]
</content>
</entry>
<entry>
<title>Replace most ~exprs with 'box'. #11779</title>
<updated>2014-05-03T06:00:58+00:00</updated>
<author>
<name>Brian Anderson</name>
<email>banderson@mozilla.com</email>
</author>
<published>2014-04-25T08:08:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a5be12ce7e88c1d28de1c98215991127d1e765f0'/>
<id>urn:sha1:a5be12ce7e88c1d28de1c98215991127d1e765f0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Make ~[T] no longer a growable vector</title>
<updated>2014-04-18T17:06:24+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2014-04-17T22:28:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7d3b0bf3912fabf52fdd6926900e578e55af1b49'/>
<id>urn:sha1:7d3b0bf3912fabf52fdd6926900e578e55af1b49</id>
<content type='text'>
This removes all resizability support for ~[T] vectors in preparation of DST.
The only growable vector remaining is Vec&lt;T&gt;. In summary, the following methods
from ~[T] and various functions were removed. Each method/function has an
equivalent on the Vec type in std::vec unless otherwise stated.

* slice::OwnedCloneableVector
* slice::OwnedEqVector
* slice::append
* slice::append_one
* slice::build (no replacement)
* slice::bytes::push_bytes
* slice::from_elem
* slice::from_fn
* slice::with_capacity
* ~[T].capacity()
* ~[T].clear()
* ~[T].dedup()
* ~[T].extend()
* ~[T].grow()
* ~[T].grow_fn()
* ~[T].grow_set()
* ~[T].insert()
* ~[T].pop()
* ~[T].push()
* ~[T].push_all()
* ~[T].push_all_move()
* ~[T].remove()
* ~[T].reserve()
* ~[T].reserve_additional()
* ~[T].reserve_exect()
* ~[T].retain()
* ~[T].set_len()
* ~[T].shift()
* ~[T].shrink_to_fit()
* ~[T].swap_remove()
* ~[T].truncate()
* ~[T].unshift()
* ~str.clear()
* ~str.set_len()
* ~str.truncate()

Note that no other API changes were made. Existing apis that took or returned
~[T] continue to do so.

[breaking-change]
</content>
</entry>
<entry>
<title>Use the unsigned integer types for bitwise intrinsics.</title>
<updated>2014-04-16T02:45:00+00:00</updated>
<author>
<name>Huon Wilson</name>
<email>dbau.pp+github@gmail.com</email>
</author>
<published>2014-04-14T10:04:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=54ec04f1c12c7fb4dbe5f01fdeb73d1079fef53d'/>
<id>urn:sha1:54ec04f1c12c7fb4dbe5f01fdeb73d1079fef53d</id>
<content type='text'>
Exposing ctpop, ctlz, cttz and bswap as taking signed i8/i16/... is just
exposing the internal LLVM names pointlessly (LLVM doesn't have "signed
integers" or "unsigned integers", it just has sized integer types
with (un)signed *operations*).

These operations are semantically working with raw bytes, which the
unsigned types model better.
</content>
</entry>
<entry>
<title>libtest: rename `BenchHarness` to `Bencher`</title>
<updated>2014-04-11T09:31:13+00:00</updated>
<author>
<name>Liigo Zhuang</name>
<email>com.liigo@gmail.com</email>
</author>
<published>2014-04-01T01:16:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=408f484b660d507617d5293c03942b5b5dd7bc0a'/>
<id>urn:sha1:408f484b660d507617d5293c03942b5b5dd7bc0a</id>
<content type='text'>
Closes #12640
</content>
</entry>
<entry>
<title>std,serialize: remove some internal uses of ~[].</title>
<updated>2014-04-10T22:21:58+00:00</updated>
<author>
<name>Huon Wilson</name>
<email>dbau.pp+github@gmail.com</email>
</author>
<published>2014-04-09T01:43:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a65411e4f7b5df78e34dcaf8061d4641f4b56412'/>
<id>urn:sha1:a65411e4f7b5df78e34dcaf8061d4641f4b56412</id>
<content type='text'>
These are all private uses of ~[], so can easily &amp; non-controversially
be replaced with Vec.
</content>
</entry>
</feed>
