<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/liballoc/sync.rs, branch 1.45.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.45.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.45.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2020-05-29T06:06:55+00:00</updated>
<entry>
<title>Rollup merge of #72288 - vorner:stabilize-weak-into-raw, r=dtolnay</title>
<updated>2020-05-29T06:06:55+00:00</updated>
<author>
<name>Yuki Okushi</name>
<email>huyuumi.dev@gmail.com</email>
</author>
<published>2020-05-29T06:06:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d472f8e4624277163f33f9070bf0474669d3844e'/>
<id>urn:sha1:d472f8e4624277163f33f9070bf0474669d3844e</id>
<content type='text'>
Stabilization of weak-into-raw

Closes #60728.

There are also two removals of `#![feature(weak_into_raw)]` in the `src/tools/miri` submodule. How should I synchronize the changes with there?

* I can ignore it for now and once this gets merged, update the tool, send a pull request to that one and then reference the changes to rustc.
* I could try submitting the changes to miri first, but then the build would fail there, because the attribute would still be needed.

I think the first one is the correct one, extrapolating from the contributing guidelines (even though they speak about breaking the tools and this should not break it, as extra feature should not hurt).
</content>
</entry>
<entry>
<title>Rollup merge of #72533 - Diggsey:db-fix-arc-ub2, r=dtolnay</title>
<updated>2020-05-27T01:09:12+00:00</updated>
<author>
<name>Dylan DPC</name>
<email>dylan.dpc@gmail.com</email>
</author>
<published>2020-05-27T01:09:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8f95dc8d4e31f24185db831fc92b7d5752ba9d7f'/>
<id>urn:sha1:8f95dc8d4e31f24185db831fc92b7d5752ba9d7f</id>
<content type='text'>
Resolve UB in Arc/Weak interaction (2)

Use raw pointers to avoid making any assertions about the data field.

Follow up from #72479, see that PR for more detail on the motivation.

@RalfJung I was able to avoid a lot of the changes to `Weak`, by making a helper type (`WeakInner`) - because of auto-deref and because the fields have the same name, the rest of the code continues to compile.
</content>
</entry>
<entry>
<title>Fix UB in Arc</title>
<updated>2020-05-25T10:47:48+00:00</updated>
<author>
<name>Diggory Blake</name>
<email>diggsey@googlemail.com</email>
</author>
<published>2020-05-24T12:11:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ee6e705d91a7b19aa2d029b21396c70e2129f741'/>
<id>urn:sha1:ee6e705d91a7b19aa2d029b21396c70e2129f741</id>
<content type='text'>
Use raw pointers to avoid making any assertions about the data field.
</content>
</entry>
<entry>
<title>Auto merge of #71447 - cuviper:unsized_cow, r=dtolnay</title>
<updated>2020-05-19T08:08:48+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2020-05-19T08:08:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=914adf04af1c1a984707f778da3d04590c03d144'/>
<id>urn:sha1:914adf04af1c1a984707f778da3d04590c03d144</id>
<content type='text'>
impl From&lt;Cow&gt; for Box, Rc, and Arc

These forward `Borrowed`/`Owned` values to existing `From` impls.

- `Box&lt;T&gt;` is a fundamental type, so it would be a breaking change to add a blanket impl. Therefore, `From&lt;Cow&gt;` is only implemented for `[T]`, `str`, `CStr`, `OsStr`, and `Path`.
- For `Rc&lt;T&gt;` and `Arc&lt;T&gt;`, `From&lt;Cow&gt;` is implemented for everything that implements `From` the borrowed and owned types separately.
</content>
</entry>
<entry>
<title>Auto merge of #72204 - RalfJung:abort, r=Mark-Simulacrum</title>
<updated>2020-05-17T12:49:01+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2020-05-17T12:49:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=34cce58d81f006a5406fcae918db4492e6cf2784'/>
<id>urn:sha1:34cce58d81f006a5406fcae918db4492e6cf2784</id>
<content type='text'>
make abort intrinsic safe, and correct its documentation

Turns out `std::process::abort` is not the same as the intrinsic, the comment was just wrong. Quoting from the unix implementation:
```
// On Unix-like platforms, libc::abort will unregister signal handlers
// including the SIGABRT handler, preventing the abort from being blocked, and
// fclose streams, with the side effect of flushing them so libc buffered
// output will be printed.  Additionally the shell will generally print a more
// understandable error message like "Abort trap" rather than "Illegal
// instruction" that intrinsics::abort would cause, as intrinsics::abort is
// implemented as an illegal instruction.
```
</content>
</entry>
<entry>
<title>make abort intrinsic safe, and correct its documentation</title>
<updated>2020-05-17T09:23:42+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2020-05-17T09:06:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5980d972d1911225e38e98fe81974973349793a0'/>
<id>urn:sha1:5980d972d1911225e38e98fe81974973349793a0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Stabilization of weak-into-raw</title>
<updated>2020-05-17T06:21:24+00:00</updated>
<author>
<name>Michal 'vorner' Vaner</name>
<email>vorner@vorner.cz</email>
</author>
<published>2020-05-17T06:21:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ba0d0c27df15b7a4d15d01eef3043ffb6cf65a8e'/>
<id>urn:sha1:ba0d0c27df15b7a4d15d01eef3043ffb6cf65a8e</id>
<content type='text'>
Stabilizes #60728.
</content>
</entry>
<entry>
<title>Auto merge of #71321 - matthewjasper:alloc-min-spec, r=sfackler</title>
<updated>2020-05-14T23:22:47+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2020-05-14T23:22:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=85f0da67ff31923955f7fb107fb097835bb3b6ff'/>
<id>urn:sha1:85f0da67ff31923955f7fb107fb097835bb3b6ff</id>
<content type='text'>
Use min_specialization in liballoc

- Remove a type parameter from `[A]RcFromIter`.
- Remove an implementation of `[A]RcFromIter` that didn't actually
  specialize anything.
- Remove unused implementation of `IsZero` for `Option&lt;&amp;mut T&gt;`.
- Change specializations of `[A]RcEqIdent` to use a marker trait version
of `Eq`.
- Remove `BTreeClone`. I couldn't find a way to make this work with
  `min_specialization`.
- Add `rustc_unsafe_specialization_marker` to `Copy` and `TrustedLen`.

After this only libcore is the only standard library crate using `feature(specialization)`.
cc #31844
</content>
</entry>
<entry>
<title>Fix Arc::decr_strong_count doc test</title>
<updated>2020-05-13T22:56:49+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2020-05-14T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dab3a5813e2590b2161d84a410e4d5bdc072152d'/>
<id>urn:sha1:dab3a5813e2590b2161d84a410e4d5bdc072152d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #70733 - yoshuawuyts:arc-increment-refcount, r=Mark-Simulacrum</title>
<updated>2020-05-07T19:46:06+00:00</updated>
<author>
<name>Dylan DPC</name>
<email>dylan.dpc@gmail.com</email>
</author>
<published>2020-05-07T19:46:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5e9b3720e5c49656b78a047922bbc34fe74a67b3'/>
<id>urn:sha1:5e9b3720e5c49656b78a047922bbc34fe74a67b3</id>
<content type='text'>
Add Arc::{incr,decr}_strong_count

This adds two `unsafe` methods to `Arc`: `incr_strong_count` and `decr_strong_count`. A suggestion to add methods to change the strong count in `Arc` came up in during review in https://github.com/rust-lang/rust/pull/68700#discussion_r396169064, and from asking a few people this seemed like generally useful to have.

References:
- [Motivation from #68700](https://github.com/rust-lang/rust/pull/68700#discussion_r396169064)
- [Real world example in an executor](https://docs.rs/extreme/666.666.666666/src/extreme/lib.rs.html#13)
</content>
</entry>
</feed>
