Commit Graph

477 Commits

Author SHA1 Message Date
Stjepan Glavina a718051f63 Unit test heapsort 2017-03-21 20:46:20 +01:00
Stjepan Glavina a18b2aa641 Remove stabilized features 2017-03-21 20:46:20 +01:00
Stjepan Glavina f1913e2a30 Implement feature sort_unstable 2017-03-21 20:46:20 +01:00
Alex Crichton 1241a88fa9 Minor fixups to fix tidy errors 2017-03-17 13:28:53 -07:00
Son 2ba0b65c27 Improve fmt float
* Move to a separate float mod
* Add more tests for f64 f32 lower exp upper exp
* Use assert_eq for a clearer error message
2017-02-07 20:58:34 +11:00
bors 031c1168b9 Auto merge of #39567 - frewsxcv:rollup, r=frewsxcv
Rollup of 12 pull requests

- Successful merges: #39439, #39472, #39481, #39491, #39501, #39509, #39514, #39519, #39526, #39528, #39530, #39538
- Failed merges:
2017-02-05 19:33:55 +00:00
Corey Farwell ac329cd122 Rollup merge of #39501 - phungleson:libcorebench, r=alexcrichton
Extract libcore benchmarks to a separate folder

Fix #39484

r? @alexcrichton since you seem to know about this :)

Thanks!
2017-02-05 12:45:07 -05:00
bors fc02736d59 Auto merge of #39408 - ollie27:i128_try_from, r=alexcrichton
Fix TryFrom for i128/u128

Another case of `as` cast silent truncation being error prone.

This also adds a few missing TryFrom tests to libcoretest.

cc #33417
cc #35118
2017-02-05 16:57:29 +00:00
Corey Farwell 8163b4b1f2 Rollup merge of #39107 - llogiq:branchless_filter_count, r=alexcrichton
branchless .filter(_).count()

I found that the branchless version is only slower if we have little to no branch misses, which usually isn't the case. I notice speedups between -5% (perfect prediction) and 60% (real world data).
2017-02-05 09:14:40 -05:00
Oliver Middleton a2de6e2285 Fix TryFrom for i128/u128
Another case of `as` cast silent truncation being error prone.

This also adds a few missing TryFrom tests to libcoretest.
2017-02-04 23:10:28 +00:00
Son 34f444de5d Extract libcore benchmarks to a separate folder 2017-02-04 10:04:22 +11:00
Michał Krasnoborski 0267529681 Merge remote-tracking branch 'upstream/master' into format-with-capacity 2017-02-03 17:48:07 +01:00
bors 5de2a24b2e Auto merge of #39287 - wesleywiser:move_cell, r=aturon
Extend Cell to work with non-Copy types

I'm not sure that I did this right but all of the tests pass.

I also had to move the `new()` function so that `Cell`s with non-`Copy` `T`s could be created. That wasn't in the RFC but I assume it needed to be done?
2017-02-03 03:23:35 +00:00
Michał Krasnoborski 7403ee9d07 Adjust heuristics to better handle "{}..." format strings. 2017-02-01 23:47:03 +01:00
Wesley Wiser 94687aaf58 Removes FIXMEs related to #22405 2017-01-31 21:27:13 -05:00
Michał Krasnoborski e74b55b9da use String::with_capacity in format! 2017-01-28 01:50:05 +01:00
Alex Crichton 0edc3d37bb Rollup merge of #39307 - alexcrichton:stabilize-1.16, r=brson
std: Stabilize APIs for the 1.16.0 release

This commit applies the stabilization/deprecations of the 1.16.0 release, as
tracked by the rust-lang/rust issue tracker and the final-comment-period tag.

The following APIs were stabilized:

* `VecDeque::truncate`
* `VecDeque::resize`
* `String::insert_str`
* `Duration::checked_{add,sub,div,mul}`
* `str::replacen`
* `SocketAddr::is_ipv{4,6}`
* `IpAddr::is_ipv{4,6}`
* `str::repeat`
* `Vec::dedup_by`
* `Vec::dedup_by_key`
* `Result::unwrap_or_default`
* `<*const T>::wrapping_offset`
* `<*mut T>::wrapping_offset`
* `CommandExt::creation_flags` (on Windows)
* `File::set_permissions`
* `String::split_off`

The following APIs were deprecated

* `EnumSet` - replaced with other ecosystem abstractions, long since unstable

Closes #27788
Closes #35553
Closes #35774
Closes #36436
Closes #36949
Closes #37079
Closes #37087
Closes #37516
Closes #37827
Closes #37916
Closes #37966
Closes #38080
2017-01-27 16:42:06 -08:00
Alex Crichton 671b1c1d89 std: Stabilize APIs for the 1.16.0 release
This commit applies the stabilization/deprecations of the 1.16.0 release, as
tracked by the rust-lang/rust issue tracker and the final-comment-period tag.

The following APIs were stabilized:

* `VecDeque::truncate`
* `VecDeque::resize`
* `String::insert_str`
* `Duration::checked_{add,sub,div,mul}`
* `str::replacen`
* `SocketAddr::is_ipv{4,6}`
* `IpAddr::is_ipv{4,6}`
* `str::repeat`
* `Vec::dedup_by`
* `Vec::dedup_by_key`
* `Result::unwrap_or_default`
* `<*const T>::wrapping_offset`
* `<*mut T>::wrapping_offset`
* `CommandExt::creation_flags` (on Windows)
* `File::set_permissions`
* `String::split_off`

The following APIs were deprecated

* `EnumSet` - replaced with other ecosystem abstractions, long since unstable

Closes #27788
Closes #35553
Closes #35774
Closes #36436
Closes #36949
Closes #37079
Closes #37087
Closes #37516
Closes #37827
Closes #37916
Closes #37966
Closes #38080
2017-01-25 16:43:01 -08:00
Wesley Wiser c6cfa3c489 Extend Cell to work with non-Copy types
Part of #39264
2017-01-24 22:48:38 -05:00
Andre Bogus bfabe817de add explanation, fix test 2017-01-24 09:46:01 +01:00
Wesley Wiser 91a478ec34 Remove a FIXME in core/hash tests 2017-01-22 22:35:33 -05:00
Andre Bogus b40432c949 add test case for filter+count 2017-01-18 13:55:47 +01:00
bors 2f9dedb528 Auto merge of #38982 - clarcharr:expect_err, r=aturon
expect_err for Result.

This adds an `expect_err` method to `Result`. Considering how `unwrap_err` already exists, this seems to make sense. Inconsistency noted in Manishearth/rust-clippy#1435.
2017-01-14 17:33:46 +00:00
Clar Charr e520b77efe expect_err for Result. 2017-01-13 15:51:50 -05:00
Clar Charr 3a79f2e2f1 Implement Display for char Escape*, To*case. 2017-01-11 12:39:56 -05:00
Jake Goulding 23715d344d Implement iter::Sum and iter::Product for Result
This introduces a private iterator adapter `ResultShunt`, which allows
treating an iterator of `Result<T, E>` as an iterator of `T`.
2017-01-10 14:24:06 -05:00
Aaron Turon 9a5cef4de5 Address fallout 2016-12-16 19:42:17 -08:00
bors 0d1b9f4614 Auto merge of #38309 - sfackler:rfc-1725, r=alexcrichton
Implement RFC #1725 (read_unaligned, write_unaligned)

cc #37955

r? @alexcrichton
2016-12-13 12:28:14 +00:00
Steven Fackler 75fe727b78 Implement RFC #1725
cc #37955
2016-12-12 21:44:09 -08:00
Corey Farwell 274777a158 Rename 'librustc_unicode' crate to 'libstd_unicode'.
Fixes #26554.
2016-11-30 01:24:01 -05:00
Steven Fackler 5377b5e9c4 Overload get{,_mut}{,_unchecked} 2016-11-26 10:07:39 -08:00
bors 0f7c75b74f Auto merge of #37834 - bluss:peek-none, r=BurntSushi
Make Peekable remember peeking a None

Peekable should remember if a None has been seen in the `.peek()` method.
It ensures that `.peek(); .peek();` or `.peek(); .next();` only advances the
underlying iterator at most once. This does not by itself make the iterator
fused.

Thanks to @s3bk for the code in `fn peek()` itself.

Fixes #37784
2016-11-22 03:29:46 -06:00
bors 59b87b3975 Auto merge of #37127 - jseyfried:stabilize_RFC_1560, r=nrc
Stabilize RFC 1560

Fixes #13598, fixes #23157, fixes #32303.
cc #35120
r? @nrc
2016-11-21 04:54:46 -06:00
Jeffrey Seyfried b4d3df6592 Stabilize RFC 1560. 2016-11-21 09:10:16 +00:00
Tobias Bucher d0bb7e1946 Fix fmt::Debug for strings, e.g. for Chinese characters
The problem occured due to lines like

```
3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
```

in `UnicodeData.txt`, which the script previously interpreted as two
characters, although it represents the whole range.

Fixes #34318.
2016-11-18 14:45:59 +01:00
Ulrik Sverdrup 6c2a456bf1 core::iter: Peekable should remember peeking a None
Peekable must remember if a None has been seen in the `.peek()` method.
It ensures that `.peek(); .peek();` or `.peek(); .next();` only advances the
underlying iterator at most once. This does not by itself make the iterator
fused.
2016-11-17 18:30:00 +01:00
Marcin Fatyga 655effedf2 Merge branch 'master' of https://github.com/rust-lang/rust
Conflicts:
	src/libcoretest/lib.rs
2016-11-01 15:26:22 +01:00
bors ac968c4664 Auto merge of #37299 - devonhollowood:result-unwrap-or-default, r=alexcrichton
Add `unwrap_or_default` method to `Result`

Fixes #37025
2016-11-01 03:53:42 -07:00
Marcin Fatyga 4e2822c5c2 Rename ordering chaining functions. 2016-10-27 23:31:10 +02:00
bors 3a25b65c1f Auto merge of #37315 - bluss:fold-more, r=alexcrichton
Implement Iterator::fold for .chain(), .cloned(), .map() and the VecDeque iterators.

Chain can do something interesting here where it passes on the fold
into its inner iterators.

The lets the underlying iterator's custom fold() be used, and skips the
regular chain logic in next.

Also implement .fold() specifically for .map() and .cloned() so that any
inner fold improvements are available through map and cloned.

The same way, a VecDeque iterator fold can be turned into two slice folds.

These changes lend the power of the slice iterator's loop codegen to
VecDeque, and to chains of slice iterators, and so on.
It's an improvement for .sum() and .product(), and other uses of fold.
2016-10-26 11:43:32 -07:00
Ulrik Sverdrup a16626fc42 iter: Implement .fold() for .chain()
Chain can do something interesting here where it passes on the fold
into its inner iterators.

The lets the underlying iterator's custom fold() be used, and skips the
regular chain logic in next.
2016-10-25 22:06:39 +02:00
arthurprs a319d13a9b Small improvement to SipHasher 2016-10-25 20:33:03 +02:00
Devon Hollowood 5d31a818df Fix use of result_unwrap_or_default feature 2016-10-21 14:33:20 -07:00
Devon Hollowood 095850594f Fix test_unwrap_or_default 2016-10-21 00:48:39 -07:00
Devon Hollowood 1c2151b7f9 Add unwrap_or_default method to Result 2016-10-19 22:08:49 -07:00
Marcin Fatyga d41c91c1fa Add or and or_else for ordering. 2016-10-09 12:01:17 +02:00
bors 7a26aeca77 Auto merge of #36815 - alexcrichton:stabilize-1.13, r=aturon
std: Stabilize and deprecate APIs for 1.13

This commit is intended to be backported to the 1.13 branch, and works with the
following APIs:

Stabilized

* `i32::checked_abs`
* `i32::wrapping_abs`
* `i32::overflowing_abs`
* `RefCell::try_borrow`
* `RefCell::try_borrow_mut`

Deprecated

* `BinaryHeap::push_pop`
* `BinaryHeap::replace`
* `SipHash13`
* `SipHash24`
* `SipHasher` - use `DefaultHasher` instead in the `std::collections::hash_map`
  module

Closes #28147
Closes #34767
Closes #35057
Closes #35070
2016-10-03 11:00:03 -07:00
Alex Crichton 10c3134da0 std: Stabilize and deprecate APIs for 1.13
This commit is intended to be backported to the 1.13 branch, and works with the
following APIs:

Stabilized

* `i32::checked_abs`
* `i32::wrapping_abs`
* `i32::overflowing_abs`
* `RefCell::try_borrow`
* `RefCell::try_borrow_mut`
* `DefaultHasher`
* `DefaultHasher::new`
* `DefaultHasher::default`

Deprecated

* `BinaryHeap::push_pop`
* `BinaryHeap::replace`
* `SipHash13`
* `SipHash24`
* `SipHasher` - use `DefaultHasher` instead in the `std::collections::hash_map`
  module

Closes #28147
Closes #34767
Closes #35057
Closes #35070
2016-10-03 10:34:34 -07:00
Brian Anderson d997a6291f Call emcc with ERROR_ON_UNDEFINED_SYMBOLS 2016-09-30 14:02:57 -07:00
Brian Anderson 7c0bf41cff Ignore another emscripten test because missing intrinsics 2016-09-30 14:02:54 -07:00