<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/libstd/sync, branch 1.6.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.6.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.6.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2015-12-05T23:09:44+00:00</updated>
<entry>
<title>std: Stabilize APIs for the 1.6 release</title>
<updated>2015-12-05T23:09:44+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-12-03T01:31:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=464cdff102993ff1900eebbf65209e0a3c0be0d5'/>
<id>urn:sha1:464cdff102993ff1900eebbf65209e0a3c0be0d5</id>
<content type='text'>
This commit is the standard API stabilization commit for the 1.6 release cycle.
The list of issues and APIs below have all been through their cycle-long FCP and
the libs team decisions are listed below

Stabilized APIs

* `Read::read_exact`
* `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`)
* libcore -- this was a bit of a nuanced stabilization, the crate itself is now
  marked as `#[stable]` and the methods appearing via traits for primitives like
  `char` and `str` are now also marked as stable. Note that the extension traits
  themeselves are marked as unstable as they're imported via the prelude. The
  `try!` macro was also moved from the standard library into libcore to have the
  same interface. Otherwise the functions all have copied stability from the
  standard library now.
* The `#![no_std]` attribute
* `fs::DirBuilder`
* `fs::DirBuilder::new`
* `fs::DirBuilder::recursive`
* `fs::DirBuilder::create`
* `os::unix::fs::DirBuilderExt`
* `os::unix::fs::DirBuilderExt::mode`
* `vec::Drain`
* `vec::Vec::drain`
* `string::Drain`
* `string::String::drain`
* `vec_deque::Drain`
* `vec_deque::VecDeque::drain`
* `collections::hash_map::Drain`
* `collections::hash_map::HashMap::drain`
* `collections::hash_set::Drain`
* `collections::hash_set::HashSet::drain`
* `collections::binary_heap::Drain`
* `collections::binary_heap::BinaryHeap::drain`
* `Vec::extend_from_slice` (renamed from `push_all`)
* `Mutex::get_mut`
* `Mutex::into_inner`
* `RwLock::get_mut`
* `RwLock::into_inner`
* `Iterator::min_by_key` (renamed from `min_by`)
* `Iterator::max_by_key` (renamed from `max_by`)

Deprecated APIs

* `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`)
* `OsString::from_bytes`
* `OsStr::to_cstring`
* `OsStr::to_bytes`
* `fs::walk_dir` and `fs::WalkDir`
* `path::Components::peek`
* `slice::bytes::MutableByteVector`
* `slice::bytes::copy_memory`
* `Vec::push_all` (renamed to `extend_from_slice`)
* `Duration::span`
* `IpAddr`
* `SocketAddr::ip`
* `Read::tee`
* `io::Tee`
* `Write::broadcast`
* `io::Broadcast`
* `Iterator::min_by` (renamed to `min_by_key`)
* `Iterator::max_by` (renamed to `max_by_key`)
* `net::lookup_addr`

New APIs (still unstable)

* `&lt;[T]&gt;::sort_by_key` (added to mirror `min_by_key`)

Closes #27585
Closes #27704
Closes #27707
Closes #27710
Closes #27711
Closes #27727
Closes #27740
Closes #27744
Closes #27799
Closes #27801
cc #27801 (doesn't close as `Chars` is still unstable)
Closes #28968
</content>
</entry>
<entry>
<title>Rename #[deprecated] to #[rustc_deprecated]</title>
<updated>2015-11-20T13:11:20+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2015-11-20T13:11:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a613059e3fcfb751f7664f67a4a6c99faf436483'/>
<id>urn:sha1:a613059e3fcfb751f7664f67a4a6c99faf436483</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Add Instant and SystemTime to std::time</title>
<updated>2015-11-19T17:32:38+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-11-17T01:36:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c6eb8527e09bed702f30ffdc8d6e54acf9b867ca'/>
<id>urn:sha1:c6eb8527e09bed702f30ffdc8d6e54acf9b867ca</id>
<content type='text'>
This commit is an implementation of [RFC 1288][rfc] which adds two new unstable
types to the `std::time` module. The `Instant` type is used to represent
measurements of a monotonically increasing clock suitable for measuring time
withing a process for operations such as benchmarks or just the elapsed time to
do something. An `Instant` favors panicking when bugs are found as the bugs are
programmer errors rather than typical errors that can be encountered.

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

The `SystemTime` type is used to represent a system timestamp and is not
monotonic. Very few guarantees are provided about this measurement of the system
clock, but a fixed point in time (`UNIX_EPOCH`) is provided to learn about the
relative distance from this point for any particular time stamp.

This PR takes the same implementation strategy as the `time` crate on crates.io,
namely:

|  Platform  |  Instant                 |  SystemTime              |
|------------|--------------------------|--------------------------|
| Windows    | QueryPerformanceCounter  | GetSystemTimeAsFileTime  |
| OSX        | mach_absolute_time       | gettimeofday             |
| Unix       | CLOCK_MONOTONIC          | CLOCK_REALTIME           |

These implementations can perhaps be refined over time, but they currently
satisfy the requirements of the `Instant` and `SystemTime` types while also
being portable across implementations and revisions of each platform.
</content>
</entry>
<entry>
<title>Add missing annotations and some tests</title>
<updated>2015-11-17T22:24:21+00:00</updated>
<author>
<name>Vadim Petrochenkov</name>
<email>vadim.petrochenkov@gmail.com</email>
</author>
<published>2015-11-16T16:54:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7e2ffc7090a70fe8c77a0e03fcec3cb1387141f2'/>
<id>urn:sha1:7e2ffc7090a70fe8c77a0e03fcec3cb1387141f2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Correct comment in `Mutex` example</title>
<updated>2015-11-16T17:56:18+00:00</updated>
<author>
<name>Andrew Paseltiner</name>
<email>apaseltiner@gmail.com</email>
</author>
<published>2015-11-16T17:56:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=55ca08969428e185b896bb9b2518372f57522126'/>
<id>urn:sha1:55ca08969428e185b896bb9b2518372f57522126</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Migrate to the new libc</title>
<updated>2015-11-10T06:55:50+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-11-03T00:23:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3d28b8b98e6e4f55ef4ecd8babf0a050f48a3d11'/>
<id>urn:sha1:3d28b8b98e6e4f55ef4ecd8babf0a050f48a3d11</id>
<content type='text'>
* Delete `sys::unix::{c, sync}` as these are now all folded into libc itself
* Update all references to use `libc` as a result.
* Update all references to the new flat namespace.
* Moves all windows bindings into sys::c
</content>
</entry>
<entry>
<title>Deprecate `_ms` functions that predate the `Duration` API</title>
<updated>2015-11-05T02:43:30+00:00</updated>
<author>
<name>Ben Striegel</name>
<email>ben.striegel@gmail.com</email>
</author>
<published>2015-11-05T01:11:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a2efa2aa291c938200da59b89b14214c8d2c70ba'/>
<id>urn:sha1:a2efa2aa291c938200da59b89b14214c8d2c70ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>std: Stabilize library APIs for 1.5</title>
<updated>2015-10-25T16:36:32+00:00</updated>
<author>
<name>Alex Crichton</name>
<email>alex@alexcrichton.com</email>
</author>
<published>2015-10-22T23:28:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ff49733274f4af79362f9f9aaf16fb6032b2a06d'/>
<id>urn:sha1:ff49733274f4af79362f9f9aaf16fb6032b2a06d</id>
<content type='text'>
This commit stabilizes and deprecates library APIs whose FCP has closed in the
last cycle, specifically:

Stabilized APIs:

* `fs::canonicalize`
* `Path::{metadata, symlink_metadata, canonicalize, read_link, read_dir, exists,
   is_file, is_dir}` - all moved to inherent methods from the `PathExt` trait.
* `Formatter::fill`
* `Formatter::width`
* `Formatter::precision`
* `Formatter::sign_plus`
* `Formatter::sign_minus`
* `Formatter::alternate`
* `Formatter::sign_aware_zero_pad`
* `string::ParseError`
* `Utf8Error::valid_up_to`
* `Iterator::{cmp, partial_cmp, eq, ne, lt, le, gt, ge}`
* `&lt;[T]&gt;::split_{first,last}{,_mut}`
* `Condvar::wait_timeout` - note that `wait_timeout_ms` is not yet deprecated
  but will be once 1.5 is released.
* `str::{R,}MatchIndices`
* `str::{r,}match_indices`
* `char::from_u32_unchecked`
* `VecDeque::insert`
* `VecDeque::shrink_to_fit`
* `VecDeque::as_slices`
* `VecDeque::as_mut_slices`
* `VecDeque::swap_remove_front` - (renamed from `swap_front_remove`)
* `VecDeque::swap_remove_back` - (renamed from `swap_back_remove`)
* `Vec::resize`
* `str::slice_mut_unchecked`
* `FileTypeExt`
* `FileTypeExt::{is_block_device, is_char_device, is_fifo, is_socket}`
* `BinaryHeap::from` - `from_vec` deprecated in favor of this
* `BinaryHeap::into_vec` - plus a `Into` impl
* `BinaryHeap::into_sorted_vec`

Deprecated APIs

* `slice::ref_slice`
* `slice::mut_ref_slice`
* `iter::{range_inclusive, RangeInclusive}`
* `std::dynamic_lib`

Closes #27706
Closes #27725
cc #27726 (align not stabilized yet)
Closes #27734
Closes #27737
Closes #27742
Closes #27743
Closes #27772
Closes #27774
Closes #27777
Closes #27781
cc #27788 (a few remaining methods though)
Closes #27790
Closes #27793
Closes #27796
Closes #27810
cc #28147 (not all parts stabilized)
</content>
</entry>
<entry>
<title>Add `Shared` pointer and have `{Arc, Rc}` use it</title>
<updated>2015-10-16T22:35:31+00:00</updated>
<author>
<name>Andrew Paseltiner</name>
<email>apaseltiner@gmail.com</email>
</author>
<published>2015-10-16T15:54:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d6bd8d8491e89277edbfc9a4e0f8953847abbdd6'/>
<id>urn:sha1:d6bd8d8491e89277edbfc9a4e0f8953847abbdd6</id>
<content type='text'>
This change has two consequences:

1. It makes `Arc&lt;T&gt;` and `Rc&lt;T&gt;` covariant in `T`.

2. It causes the compiler to reject code that was unsound with respect
to dropck. See compile-fail/issue-29106.rs for an example of code that
no longer compiles. Because of this, this is a [breaking-change].

Fixes #29037.
Fixes #29106.
</content>
</entry>
<entry>
<title>std: add into_inner and get_mut to RwLock</title>
<updated>2015-10-15T17:05:54+00:00</updated>
<author>
<name>Cristi Cobzarenco</name>
<email>cristi.cobzarenco@gmail.com</email>
</author>
<published>2015-10-15T16:14:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=90ccefd16e1eeec1a616aa3ba9aa710d954231ef'/>
<id>urn:sha1:90ccefd16e1eeec1a616aa3ba9aa710d954231ef</id>
<content type='text'>
</content>
</entry>
</feed>
