<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/library/std/src/lib.rs, branch 1.56.1</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.56.1</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.56.1'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2021-09-02T16:16:13+00:00</updated>
<entry>
<title>Auto merge of #87580 - ChrisDenton:win-arg-parse-2008, r=m-ou-se</title>
<updated>2021-09-02T16:16:13+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2021-09-02T16:16:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1cf8fdd4f0be26bcfa9e3b1e10d4bf80107ba492'/>
<id>urn:sha1:1cf8fdd4f0be26bcfa9e3b1e10d4bf80107ba492</id>
<content type='text'>
Update Windows Argument Parsing

Fixes #44650

The Windows command line is passed to applications [as a single string](https://docs.microsoft.com/en-us/archive/blogs/larryosterman/the-windows-command-line-is-just-a-string) which the application then parses to get a list of arguments. The standard rules (as used by C/C++) for parsing the command line have slightly changed over the years, most recently in 2008 which added new escaping rules.

This PR implements the new rules as [described on MSDN](https://docs.microsoft.com/en-us/cpp/cpp/main-function-command-line-args?view=msvc-160#parsing-c-command-line-arguments) and [further detailed here](https://daviddeley.com/autohotkey/parameters/parameters.htm#WIN). It has been tested against the behaviour of C++ by calling a C++ program that outputs its raw command line and the contents of `argv`. See [my repo](https://github.com/ChrisDenton/winarg/tree/std) if anyone wants to reproduce my work.

For an overview of how this PR changes argument parsing behavior and why we feel it is warranted see https://github.com/rust-lang/rust/pull/87580#issuecomment-893833893.

For some examples see: https://github.com/rust-lang/rust/pull/87580#issuecomment-894299249
</content>
</entry>
<entry>
<title>Stabilize `UnsafeCell::raw_get()`</title>
<updated>2021-08-31T21:44:13+00:00</updated>
<author>
<name>inquisitivecrystal</name>
<email>22333129+inquisitivecrystal@users.noreply.github.com</email>
</author>
<published>2021-08-31T21:44:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=753dac16abd16411e1833b35ba82cabac6997cec'/>
<id>urn:sha1:753dac16abd16411e1833b35ba82cabac6997cec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #87921 - kellerkindt:master, r=kennytm</title>
<updated>2021-08-28T23:39:02+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2021-08-28T23:39:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=677b517e66fe9df0b2ce72f5ec57d52cc0da506e'/>
<id>urn:sha1:677b517e66fe9df0b2ce72f5ec57d52cc0da506e</id>
<content type='text'>
Add Saturating type (based on Wrapping type)

Tracking #87920

### Unresolved Questions
&lt;!--
Include any open questions that need to be answered before the feature can be
stabilised.
--&gt;

 - [x] ~`impl Div for Saturating&lt;T&gt;` falls back on inner integer division - which seems alright?~
    - [x] add `saturating_div`? (to respect division by `-1`)
 - [x] There is no `::saturating_shl` and `::saturating_shr`. (How to) implement `Shl`, `ShlAssign`, `Shr` and `ShrAssign`?
   - [naively](3f7d2ce28f8cf4dec56bf65fa2e6da0cf329ec55)
 - [x] ~`saturating_neg` is only implemented on [signed integer types](https://doc.rust-lang.org/std/?search=saturating_n)~
 - [x] Is the implementation copied over from the `Wrapping`-type correct for `Saturating`?
   - [x] `Saturating::rotate_left`
   - [x] `Saturating::rotate_right`
   - [x] `Not`
   - [x] `BitXorOr` and `BitXorOrAssign`
   - [x] `BitOr` and `BitOrAssign`
   - [x] `BitAnd` and `BitAndAssign`
   - [x] `Saturating::swap_bytes`
   - [x] `Saturating::reverse_bits`
</content>
</entry>
<entry>
<title>Add doctests to and fix saturating_div for signed integer types</title>
<updated>2021-08-19T09:07:29+00:00</updated>
<author>
<name>Michael Watzko</name>
<email>michael@watzko.de</email>
</author>
<published>2021-08-19T09:06:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6bb3acab74f9cf4bf3d3b81f0805416cd7b3ee20'/>
<id>urn:sha1:6bb3acab74f9cf4bf3d3b81f0805416cd7b3ee20</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Constified `Default` implementations</title>
<updated>2021-08-17T07:15:54+00:00</updated>
<author>
<name>Deadbeef</name>
<email>ent3rm4n@gmail.com</email>
</author>
<published>2021-08-14T16:35:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b5afa6807b868bc8bb2e6f972629769b150ffd41'/>
<id>urn:sha1:b5afa6807b868bc8bb2e6f972629769b150ffd41</id>
<content type='text'>
The libs-api team agrees to allow const_trait_impl to appear in the
standard library as long as stable code cannot be broken (they are
properly gated) this means if the compiler teams thinks it's okay, then
it's okay.

My priority on constifying would be:

	1. Non-generic impls (e.g. Default) or generic impls with no
	   bounds
	2. Generic functions with bounds (that use const impls)
	3. Generic impls with bounds
	4. Impls for traits with associated types

For people opening constification PRs: please cc me and/or oli-obk.
</content>
</entry>
<entry>
<title>feature gate doc(primitive)</title>
<updated>2021-08-16T05:41:16+00:00</updated>
<author>
<name>Joshua Nelson</name>
<email>jyn514@gmail.com</email>
</author>
<published>2021-07-11T02:06:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=03df65497e51c8a69e16ab8d4bc7a7d1b3d471dc'/>
<id>urn:sha1:03df65497e51c8a69e16ab8d4bc7a7d1b3d471dc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add Saturating type (based on Wrapping type)</title>
<updated>2021-08-10T17:27:01+00:00</updated>
<author>
<name>Michael Watzko</name>
<email>michael@watzko.de</email>
</author>
<published>2021-08-10T17:22:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=709a6c913eb44f361b264fb98cdd419dc8ae6912'/>
<id>urn:sha1:709a6c913eb44f361b264fb98cdd419dc8ae6912</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement modern Windows arg parsing</title>
<updated>2021-08-08T21:11:30+00:00</updated>
<author>
<name>Chris Denton</name>
<email>christophersdenton@gmail.com</email>
</author>
<published>2021-08-05T23:15:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e26dda564219341e25589ff745b16258ad424b78'/>
<id>urn:sha1:e26dda564219341e25589ff745b16258ad424b78</id>
<content type='text'>
As derived from extensive testing of `argv` in a C/C++ application.

Co-Authored-By: Jane Lusby &lt;jlusby42@gmail.com&gt;
</content>
</entry>
<entry>
<title>Auto merge of #86879 - YohDeadfall:stabilize-vec-shrink-to, r=dtolnay</title>
<updated>2021-08-08T19:37:02+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2021-08-08T19:37:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ad981d58e1ca16bcf4072577934630deb11c5e14'/>
<id>urn:sha1:ad981d58e1ca16bcf4072577934630deb11c5e14</id>
<content type='text'>
Stabilize Vec&lt;T&gt;::shrink_to

This PR stabilizes `shrink_to` feature and closes the corresponding issue. The second point was addressed already, and no `panic!` should occur.

Closes #56431.
</content>
</entry>
<entry>
<title>Auto merge of #87408 - kornelski:try_reserve_error, r=yaahc</title>
<updated>2021-08-07T01:26:15+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2021-08-07T01:26:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=996ff2e0a0f911f52bb1de6bdd0cfd5704de1fc9'/>
<id>urn:sha1:996ff2e0a0f911f52bb1de6bdd0cfd5704de1fc9</id>
<content type='text'>
Hide allocator details from TryReserveError

I think there's [no need for TryReserveError to carry detailed information](https://github.com/rust-lang/rust/issues/48043#issuecomment-825139280), but I wouldn't want that issue to delay stabilization of the `try_reserve` feature.

So I'm proposing to stabilize `try_reserve` with a `TryReserveError` as an opaque structure, and if needed, expose error details later.

This PR moves the `enum` to an unstable inner `TryReserveErrorKind` that lives under a separate feature flag. `TryReserveErrorKind` could possibly be left as an implementation detail forever, and the `TryReserveError` get methods such as `allocation_size() -&gt; Option&lt;usize&gt;` or `layout() -&gt; Option&lt;Layout&gt;` instead, or the details could be dropped completely to make try-reserve errors just a unit struct, and thus smaller and cheaper.
</content>
</entry>
</feed>
