Commit graph

7970 commits

Author SHA1 Message Date
Alex Crichton
552eda70d3 std: Stabilize APIs for the 1.9 release
This commit applies all stabilizations, renamings, and deprecations that the
library team has decided on for the upcoming 1.9 release. All tracking issues
have gone through a cycle-long "final comment period" and the specific APIs
stabilized/deprecated are:

Stable

* `std::panic`
* `std::panic::catch_unwind` (renamed from `recover`)
* `std::panic::resume_unwind` (renamed from `propagate`)
* `std::panic::AssertUnwindSafe` (renamed from `AssertRecoverSafe`)
* `std::panic::UnwindSafe` (renamed from `RecoverSafe`)
* `str::is_char_boundary`
* `<*const T>::as_ref`
* `<*mut T>::as_ref`
* `<*mut T>::as_mut`
* `AsciiExt::make_ascii_uppercase`
* `AsciiExt::make_ascii_lowercase`
* `char::decode_utf16`
* `char::DecodeUtf16`
* `char::DecodeUtf16Error`
* `char::DecodeUtf16Error::unpaired_surrogate`
* `BTreeSet::take`
* `BTreeSet::replace`
* `BTreeSet::get`
* `HashSet::take`
* `HashSet::replace`
* `HashSet::get`
* `OsString::with_capacity`
* `OsString::clear`
* `OsString::capacity`
* `OsString::reserve`
* `OsString::reserve_exact`
* `OsStr::is_empty`
* `OsStr::len`
* `std::os::unix::thread`
* `RawPthread`
* `JoinHandleExt`
* `JoinHandleExt::as_pthread_t`
* `JoinHandleExt::into_pthread_t`
* `HashSet::hasher`
* `HashMap::hasher`
* `CommandExt::exec`
* `File::try_clone`
* `SocketAddr::set_ip`
* `SocketAddr::set_port`
* `SocketAddrV4::set_ip`
* `SocketAddrV4::set_port`
* `SocketAddrV6::set_ip`
* `SocketAddrV6::set_port`
* `SocketAddrV6::set_flowinfo`
* `SocketAddrV6::set_scope_id`
* `<[T]>::copy_from_slice`
* `ptr::read_volatile`
* `ptr::write_volatile`
* The `#[deprecated]` attribute
* `OpenOptions::create_new`

Deprecated

* `std::raw::Slice` - use raw parts of `slice` module instead
* `std::raw::Repr` - use raw parts of `slice` module instead
* `str::char_range_at` - use slicing plus `chars()` plus `len_utf8`
* `str::char_range_at_reverse` - use slicing plus `chars().rev()` plus `len_utf8`
* `str::char_at` - use slicing plus `chars()`
* `str::char_at_reverse` - use slicing plus `chars().rev()`
* `str::slice_shift_char` - use `chars()` plus `Chars::as_str`
* `CommandExt::session_leader` - use `before_exec` instead.

Closes #27719
cc #27751 (deprecating the `Slice` bits)
Closes #27754
Closes #27780
Closes #27809
Closes #27811
Closes #27830
Closes #28050
Closes #29453
Closes #29791
Closes #29935
Closes #30014
Closes #30752
Closes #31262
cc #31398 (still need to deal with `before_exec`)
Closes #31405
Closes #31572
Closes #31755
Closes #31756
2016-04-11 08:57:53 -07:00
Steve Klabnik
55e90bbd5e Rollup merge of #32873 - jethrogb:patch-2, r=steveklabnik
Match signed/unsigned integer type docs

* Copy documentation from signed implementation to unsigned implementation, where necessary.

A few functions had elaborate docs in the signed version but not in the unsigned version. This probably happenned because the signed version is at the top and the author didn't realize they had to update the documentation in both locations.

* Use signed integers in signed documentation, where possible.

r? @steveklabnik
2016-04-11 10:31:28 -04:00
Steve Klabnik
c5842837b8 Rollup merge of #32862 - raphlinus:master, r=bluss
Bit-magic for faster is_char_boundary

The asm generated for b < 128 || b >= 192 is not ideal, as it computes
both sub-inequalities. This patch replaces it with bit magic.

Fixes #32471
2016-04-11 10:31:28 -04:00
Steve Klabnik
7ba7e02b5e Rollup merge of #32854 - GuillaumeGomez:result_doc, r=steveklabnik
Add some missing commas and missing titles/formatting

Fixes #29373.

r? @steveklabnik
2016-04-11 10:31:28 -04:00
Steve Klabnik
7eeb8c4eb8 Rollup merge of #32768 - GuillaumeGomez:slice_doc, r=steveklabnik
Add doc examples for Iter and IterMut

Fixes #29374.

r? @steveklabnik
2016-04-11 10:31:27 -04:00
jethrogb
ed218f62b7 Match signed/unsigned integer type docs
* Copy documentation from signed implementation to unsigned implementation, where necessary.
* Use signed integers in signed documentation, where possible.
2016-04-10 22:34:37 -07:00
Raph Levien
b2db97347b Bit-magic for faster is_char_boundary
The asm generated for b < 128 || b >= 192 is not ideal, as it computes
both sub-inequalities. This patch replaces it with bit magic.

Fixes #32471
2016-04-09 17:16:54 -07:00
Guillaume Gomez
ca966b68e6 Add some missing commas and missing titles/formatting 2016-04-09 02:00:12 +02:00
Guillaume Gomez
69289c9366 Add doc example for Iter and IterMut 2016-04-08 01:56:45 +02:00
Manish Goregaokar
1d59b91ed4 Rollup merge of #32741 - tbu-:pr_remove_fixme_12808, r=bluss
Remove strange names created by lack of privacy-conscious name lookup

The fixed issue that allowed this was #12808.
2016-04-07 23:26:19 +05:30
Manish Goregaokar
2a88ca4405 Rollup merge of #32757 - taralx:patch-1, r=brson
Fix typos in atomic compare_exchange.

Failure ordering can't be Release, not (not) Acquire. Seems like a typo copy-pasted all over.
2016-04-07 20:22:43 +05:30
Manish Goregaokar
684e2aace5 Rollup merge of #32699 - bluss:slice-memcmp, r=alexcrichton
Specialize equality for [T] and comparison for [u8] to use memcmp when possible

Specialize equality for [T] and comparison for [u8] to use memcmp when possible

Where T is a type that can be compared for equality bytewise, we can use
memcmp. We can also use memcmp for PartialOrd, Ord for [u8].

Use specialization to call memcmp in PartialEq for slices for certain element types. This PR does not change the user visible API since the implementation uses an intermediate trait. See commit messages for more information.

The memcmp signature was changed from `*const i8` to `*const u8` which is in line with how the memcmp function is defined in C (taking const void * arguments, interpreting the values as unsigned bytes for purposes of the comparison).
2016-04-07 20:22:41 +05:30
Ulrik Sverdrup
a6c27be0b1 slice: Use doc(hidden) on private traits
This should avoid the trait impls showing up in rustdoc.
2016-04-06 12:19:19 +02:00
Tshepang Lekhonkhobe
922e666820 avoid "==" in assert! when one of the values is a bool 2016-04-06 06:24:19 +02:00
JP Sugarbroad
4883824dc5 Fix typos in atomic compare_exchange. 2016-04-05 17:08:23 -07:00
Ulrik Sverdrup
5d56e1daed Specialize equality for [T] and comparison for [u8]
Where T is a type that can be compared for equality bytewise, we can use
memcmp. We can also use memcmp for PartialOrd, Ord for [u8] and by
extension &str.

This is an improvement for example for the comparison [u8] == [u8] that
used to emit a loop that compared the slices byte by byte.

One worry here could be that this introduces function calls to memcmp
in contexts where it should really inline the comparison or even
optimize it out, but llvm takes care of recognizing memcmp specifically.
2016-04-05 14:06:20 +02:00
Tobias Bucher
0936b5885d Remove strange names created by lack of privacy-conscious name lookup
The fixed issue that allowed this was #12808.
2016-04-05 11:41:48 +02:00
bors
9c2186d4d7 Auto merge of #32672 - ollie27:patch-5, r=alexcrichton
Fix a couple of dead links on core::num::ParseFloatError docs
2016-04-03 12:11:57 -07:00
Oliver Middleton
564ec1ae40 Fix a couple of dead links on core::num::ParseFloatError docs 2016-04-01 23:46:58 +01:00
Manish Goregaokar
cf0a01a161 Rollup merge of #32652 - VFLashM:refcell_ref_coercion, r=alexcrichton
Added missing refcell ref/refmut coercions to unsized

Ref/RefMut should be coercible to unsized.
This commit adds a unit test and two missing CoerceUnsized implementations.
2016-04-02 01:23:23 +05:30
Manish Goregaokar
c2fe137823 Rollup merge of #32642 - Amanieu:doc_fixes, r=apasel422
Fix formatting in the documentation for AtomicIsize::compare_exchange_weak
2016-04-01 18:44:49 +05:30
bors
a2f0cc6b0c Auto merge of #32550 - tbu-:pr_ref_cell_as_unsafe_cell, r=alexcrichton
Remove `unsafe` qualifier from `RefCell::as_unsafe_cell`

This method is no longer unsafe because the field of `UnsafeCell` is no
longer public.
2016-03-31 17:52:25 -07:00
Валерий Лашманов
33db2d65ff added missing refcell ref/refmut coercions to unsized 2016-03-31 10:11:59 -04:00
Amanieu d'Antras
e72c8fb754 Fix formatting in the documentation for AtomicIsize::compare_exchange_weak 2016-03-31 13:14:25 +01:00
Steve Klabnik
9f403abba2 Rollup merge of #32580 - durka:patch-17, r=steveklabnik
verb agreement in core::convert docs
2016-03-30 10:16:54 -07:00
Alex Burka
0af3e70842 verb agreement in core::convert docs 2016-03-29 12:23:09 -04:00
bors
641204a408 Auto merge of #32564 - frewsxcv:patch-27, r=alexcrichton
Prefer HTTPS when linking to 131002.net.
2016-03-29 03:36:50 -07:00
bors
21a4d8098f Auto merge of #32438 - kamalmarhubi:intoiterator-example, r=steveklabnik
style: Use `iter` for IntoIterator parameter names

This commit standardizes the codebase on `iter` for parameters with
IntoIterator bounds.

Previously about 40% of IntoIterator parameters were named `iterable`,
with most of the rest being named `iter`. There was a single place where
it was named `iterator`.
2016-03-28 23:06:09 -07:00
bors
cad964a626 Auto merge of #32461 - mitaa:rdoc-anchors, r=alexcrichton
rustdoc: Correct anchor for links to associated trait items

fixes #28478

r? @alexcrichton
2016-03-28 18:34:50 -07:00
Corey Farwell
3bc9157240 Prefer HTTPS when linking to 131002.net. 2016-03-28 18:08:00 -04:00
Guillaume Gomez
5b08ab50f7 Add doc examples on pointer types 2016-03-28 21:05:39 +02:00
Kamal Marhubi
93569acdbe style: Use iter for IntoIterator parameter names
This commit standardizes the codebase on `iter` for parameters with
IntoIterator bounds.

Previously about 40% of IntoIterator parameters were named `iterable`,
with most of the rest being named `iter`. There was a single place where
it was named `iterator`.
2016-03-28 13:59:38 -04:00
Tobias Bucher
4ddbd6b5b0 Remove unsafe qualifier from RefCell::as_unsafe_cell
This method is no longer unsafe because the field of `UnsafeCell` is no
longer public.
2016-03-28 15:29:15 +02:00
mitaa
6a76872d71 Extend linkchecker with anchor checking
This adds checks to ensure that:
* link anchors refer to existing id's on the target page
* id's are unique within an html document
* page redirects are valid
2016-03-27 00:21:00 +01:00
Manish Goregaokar
671027817c Rollup merge of #32456 - bluss:str-zero, r=alexcrichton
Hardcode accepting 0 as a valid str char boundary

If we check explicitly for index == 0, that removes the need to read the
byte at index 0, so it avoids a trip to the string's memory, and it
optimizes out the slicing index' bounds check whenever it is (a constant) zero.
2016-03-26 13:42:04 +05:30
bors
40deb279a8 Auto merge of #32396 - nodakai:range-contains, r=alexcrichton
Add core::ops::Range*::contains() as per rust-lang/rust#32311
2016-03-24 19:38:43 -07:00
Steve Klabnik
b2dfb7c0a2 Rollup merge of #32464 - GuillaumeGomez:patch-6, r=steveklabnik
Improve some Option code example

Part of #29366.

r? @steveklabnik
2016-03-24 10:37:24 -04:00
Steve Klabnik
7a38ac8e87 Rollup merge of #32416 - GuillaumeGomez:patch-3, r=steveklabnik
Add doc example to clone trait

Fixes #29346.

r? @steveklabnik
2016-03-24 10:37:23 -04:00
Guillaume Gomez
b922d1a405 Improve some Option code example 2016-03-24 13:24:39 +01:00
NODA, Kai
a21c5f267a
Add core::ops::Range*::contains() as per rust-lang/rust#32311
Signed-off-by: NODA, Kai <nodakai@gmail.com>
2016-03-24 08:57:45 +08:00
Ulrik Sverdrup
f621193e5e Accept 0 as a valid str char boundary
Index 0 must be a valid char boundary (invariant of str that it contains
valid UTF-8 data).

If we check explicitly for index == 0, that removes the need to read the
byte at index 0, so it avoids a trip to the string's memory, and it
optimizes out the slicing index' bounds check whenever it is zero.

With this change, the following examples all change from having a read of
the byte at 0 and a branch to possibly panicing, to having the bounds
checking optimized away.

```rust
pub fn split(s: &str) -> (&str, &str) {
    s.split_at(0)
}

pub fn both(s: &str) -> &str {
    &s[0..s.len()]
}

pub fn first(s: &str) -> &str {
    &s[..0]
}

pub fn last(s: &str) -> &str {
    &s[0..]
}
```
2016-03-24 01:25:59 +01:00
Ulrik Sverdrup
80e7a1be35 Mark str::split_at inline 2016-03-23 22:03:06 +01:00
Jorge Aparicio
aa7fe93d4a sprinkle feature gates here and there 2016-03-22 22:02:47 -05:00
Jorge Aparicio
0f02309e4b try! -> ?
Automated conversion using the untry tool [1] and the following command:

```
$ find -name '*.rs' -type f | xargs untry
```

at the root of the Rust repo.

[1]: https://github.com/japaric/untry
2016-03-22 22:01:37 -05:00
Alex Crichton
48d5fe9ec5 std: Change encode_utf{8,16} to return iterators
Currently these have non-traditional APIs which take a buffer and report how
much was filled in, but they're not necessarily ergonomic to use. Returning an
iterator which *also* exposes an underlying slice shouldn't result in any
performance loss as it's just a lazy version of the same implementation, and
it's also much more ergonomic!

cc #27784
2016-03-22 10:25:30 -07:00
Guillaume Gomez
b3aa35e756 Add doc example to clone trait 2016-03-22 18:18:01 +01:00
Steve Klabnik
4ed70c2bc8 Rollup merge of #32322 - GuillaumeGomez:cmp_doc, r=steveklabnik
Add doc examples

Fixes #29347

r? @steveklabnik
2016-03-21 11:46:52 -04:00
bors
7ec8f5c369 Auto merge of #32054 - seanmonstar:impl-debug-core, r=alexcrichton
libcore: add Debug implementations to most missing types

Also adds `#![deny(missing_debug_implementations)]` to the core crate.

cc #31869
2016-03-21 00:07:33 -07:00
Eduard Burtescu
ec84ab0e0f Update snapshots to 2016-03-18 (235d774). 2016-03-20 22:37:35 +02:00
Sean McArthur
e0945937c4 libcore: add Debug implementations to most missing types 2016-03-20 10:04:55 -07:00