<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/liballoc/string.rs, branch 1.27.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.27.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.27.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2018-04-17T01:23:06+00:00</updated>
<entry>
<title>Remove no longer necessary comparison to Vec::splice.</title>
<updated>2018-04-17T01:23:06+00:00</updated>
<author>
<name>Corey Farwell</name>
<email>coreyf@rwell.org</email>
</author>
<published>2018-04-17T01:23:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=01e8bebaf1964331a5704b5ee65adc216a923f0e'/>
<id>urn:sha1:01e8bebaf1964331a5704b5ee65adc216a923f0e</id>
<content type='text'>
`String::replace_range` was previously called `String::splice`, so this
note was necessary to differentiate it from the `Vec` method. Now that
it's renamed, this note no longer seems necessary.
</content>
</entry>
<entry>
<title>Rollup merge of #49555 - nox:inline-into-boxed, r=alexcrichton</title>
<updated>2018-04-16T17:50:56+00:00</updated>
<author>
<name>kennytm</name>
<email>kennytm@gmail.com</email>
</author>
<published>2018-04-16T17:50:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bf602952116262f261eec20a2dc085d915de7bc7'/>
<id>urn:sha1:bf602952116262f261eec20a2dc085d915de7bc7</id>
<content type='text'>
Inline most of the code paths for conversions with boxed slices

This helps with the specific problem described in #49541, obviously without making any large change to how inlining works in the general case.

Everything involved in the conversions is made `#[inline]`, except for the `&lt;Vec&lt;T&gt;&gt;::into_boxed_slice` entry point which is made `#[inline(always)]` after checking that duplicating the function mentioned in the issue prevented its inlining if I only annotate it with
`#[inline]`.

For the record, that function was:

```rust
pub fn foo() -&gt; Box&lt;[u8]&gt; {
    vec![0].into_boxed_slice()
}
```

To help the inliner's job, we also hoist a `self.capacity() != self.len` check in `&lt;Vec&lt;T&gt;&gt;::shrink_to_fit` and mark it as `#[inline]` too.
</content>
</entry>
<entry>
<title>Cleanup liballoc use statements</title>
<updated>2018-04-13T23:43:13+00:00</updated>
<author>
<name>Mike Hommey</name>
<email>mh@glandium.org</email>
</author>
<published>2018-04-13T23:13:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bd9ff8476d5e8ca5dbb99c70ff2a9dc3be1d59d7'/>
<id>urn:sha1:bd9ff8476d5e8ca5dbb99c70ff2a9dc3be1d59d7</id>
<content type='text'>
Some modules were still using the deprecated `allocator` module, use the
`alloc` module instead.

Some modules were using `super` while it's not needed.

Some modules were more or less ordering them, and other not, so the
latter have been modified to match the others.
</content>
</entry>
<entry>
<title>Reexport from core::unicode::char in core::char rather than vice versa</title>
<updated>2018-04-11T22:13:52+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-04-05T15:56:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=939692409da499ff3d498eae782620435f16a981'/>
<id>urn:sha1:939692409da499ff3d498eae782620435f16a981</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Deprecate the std_unicode crate</title>
<updated>2018-04-11T22:13:51+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-04-05T15:20:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b2027ef17c03e47a4d716d8ea8148ed785934b04'/>
<id>urn:sha1:b2027ef17c03e47a4d716d8ea8148ed785934b04</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move Utf8Lossy decoder to libcore</title>
<updated>2018-04-11T22:13:43+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-04-05T13:55:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f87d4a15a82a76e7510629173c366d084f2c02ca'/>
<id>urn:sha1:f87d4a15a82a76e7510629173c366d084f2c02ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stabilize String::replace_range</title>
<updated>2018-04-02T04:50:22+00:00</updated>
<author>
<name>Thayne McCombs</name>
<email>astrothayne@gmail.com</email>
</author>
<published>2018-04-02T04:50:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=196b1426bec62b590df790c5f715d46075e01840'/>
<id>urn:sha1:196b1426bec62b590df790c5f715d46075e01840</id>
<content type='text'>
Fixes #44643
</content>
</entry>
<entry>
<title>Inline most of the code paths for conversions with boxed slices</title>
<updated>2018-04-01T09:56:23+00:00</updated>
<author>
<name>Anthony Ramine</name>
<email>n.oxyde@gmail.com</email>
</author>
<published>2018-03-31T21:19:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=360f2f036d14889f4de37a8b4b6aad0d09772aad'/>
<id>urn:sha1:360f2f036d14889f4de37a8b4b6aad0d09772aad</id>
<content type='text'>
This helps with the specific problem described in #49541, obviously without
making any large change to how inlining works in the general case.

Everything involved in the conversions is made `#[inline]`, except for the
`&lt;Vec&lt;T&gt;&gt;::into_boxed_slice` entry point which is made `#[inline(always)]`
after checking that duplicating the function mentioned in the issue prevented
its inlining if I only annotate it with `#[inline]`.

For the record, that function was:

```rust
pub fn foo() -&gt; Box&lt;[u8]&gt; {
    vec![0].into_boxed_slice()
}
```

To help the inliner's job, we also hoist a `self.capacity() != self.len` check
in `&lt;Vec&lt;T&gt;&gt;::shrink_to_fit` and mark it as `#[inline]` too.
</content>
</entry>
<entry>
<title>Move RangeArguments to {core::std}::ops and rename to RangeBounds</title>
<updated>2018-03-29T11:12:49+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-03-19T08:26:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=16d3ba1b23195da2d53e058c58c2a41def914dec'/>
<id>urn:sha1:16d3ba1b23195da2d53e058c58c2a41def914dec</id>
<content type='text'>
These unstable items are deprecated:

* The `std::collections::range::RangeArgument` reexport
* The `std::collections::range` module.
</content>
</entry>
<entry>
<title>Move alloc::Bound to {core,std}::ops</title>
<updated>2018-03-29T11:12:49+00:00</updated>
<author>
<name>Simon Sapin</name>
<email>simon.sapin@exyr.org</email>
</author>
<published>2018-03-19T08:01:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c3a63970dee2422e2fcc79d8b99303b4b046f444'/>
<id>urn:sha1:c3a63970dee2422e2fcc79d8b99303b4b046f444</id>
<content type='text'>
The stable reexport `std::collections::Bound` is now deprecated.

Another deprecated reexport could be added in `alloc`,
but that crate is unstable.
</content>
</entry>
</feed>
