Commit graph

6167 commits

Author SHA1 Message Date
Simonas Kazlauskas
d9eb756cbf Wrapping<i128> and attempt at LLVM 3.7 compat
This commit includes manual merge conflict resolution changes from a rebase by @est31.
2016-12-30 15:17:26 +01:00
Simonas Kazlauskas
d4d5be18b7 Feature gate the 128 bit types
Dangling a carrot in front of a donkey.

This commit includes manual merge conflict resolution changes from a rebase by @est31.
2016-12-30 15:17:25 +01:00
Simonas Kazlauskas
b0e55a83a8 Such large. Very 128. Much bits.
This commit introduces 128-bit integers. Stage 2 builds and produces a working compiler which
understands and supports 128-bit integers throughout.

The general strategy used is to have rustc_i128 module which provides aliases for iu128, equal to
iu64 in stage9 and iu128 later. Since nowhere in rustc we rely on large numbers being supported,
this strategy is good enough to get past the first bootstrap stages to end up with a fully working
128-bit capable compiler.

In order for this strategy to work, number of locations had to be changed to use associated
max_value/min_value instead of MAX/MIN constants as well as the min_value (or was it max_value?)
had to be changed to use xor instead of shift so both 64-bit and 128-bit based consteval works
(former not necessarily producing the right results in stage1).

This commit includes manual merge conflict resolution changes from a rebase by @est31.
2016-12-30 15:15:44 +01:00
Alex Crichton
19e187c175 Rollup merge of #38693 - lucis-fluxum:partialord-typo-fix, r=steveklabnik
Fix typo in PartialOrd docs
2016-12-29 17:26:40 -08:00
Alex Crichton
c41256c36f Rollup merge of #38674 - GuillaumeGomez:atomic_fn_docs, r=frewsxcv
Add missing urls for atomic fn docs

r? @frewsxcv
2016-12-29 17:26:38 -08:00
Alex Crichton
3c8a17f4b0 Rollup merge of #38649 - GuillaumeGomez:atomicint_docs, r=frewsxcv
Add missing urls for atomic_int macros types

r? @frewsxcv
2016-12-29 17:26:30 -08:00
Alex Crichton
8b8ab85551 Rollup merge of #38635 - GuillaumeGomez:atomicptr_docs, r=frewsxcv
Add missing urls for AtomicPtr

r? @frewsxcv
2016-12-29 17:26:28 -08:00
Alex Crichton
41b601ecdd Rollup merge of #38611 - GuillaumeGomez:atomicbool_docs, r=frewsxcv
Add missing urls in AtomicBool docs

r? @frewsxcv
2016-12-29 17:26:20 -08:00
Luc Street
2ec294b223 Fix typo in PartialOrd docs 2016-12-29 14:21:07 -08:00
Alex Crichton
03bc2cf35a Fallout from updating bootstrap Cargo 2016-12-29 08:47:26 -08:00
Guillaume Gomez
c8e7b76d9b Add missing urls for atomic fn docs 2016-12-29 11:31:16 +01:00
Guillaume Gomez
ef8d5e14b1 Add missing urls for AtomicPtr 2016-12-28 11:06:17 +01:00
Guillaume Gomez
94d58c203e Add missing urls for atomic_int macros types 2016-12-28 11:00:53 +01:00
Guillaume Gomez
3907b93c57 Add missing urls in AtomicBool docs 2016-12-26 10:51:25 +01:00
Alex Crichton
58d58c24dc Rollup merge of #38158 - sourcefrog:doc-iter, r=GuillaumeGomez
Explain meaning of Result iters and link to factory functions
2016-12-20 11:16:22 -08:00
Alex Crichton
7fe44f77f4 Rollup merge of #37761 - christophebiocca:borrow-stdlib-fn-refactor, r=alexcrichton
Use Borrow for binary_search and contains methods in the standard library

Fixes all standard library methods in #32822 that can be fixed without backwards compatibility issues.
2016-12-20 11:16:17 -08:00
Seo Sanghyeon
86cf9222e9 Rollup merge of #38334 - frewsxcv:BuildHasherDefault, r=GuillaumeGomez
Rewrite, improve documentation for `core:#️⃣:BuildHasherDefault`.

Fixes https://github.com/rust-lang/rust/issues/31242.
2016-12-19 16:59:35 +09:00
Aaron Turon
9a5cef4de5 Address fallout 2016-12-16 19:42:17 -08:00
Corey Farwell
d409fc378c Rewrite, improve documentation for core:#️⃣:BuildHasherDefault.
Fixes https://github.com/rust-lang/rust/issues/31242.
2016-12-16 12:27:03 -05:00
Aaron Turon
dc2d5058e9 Deprecate std::cell::RefCell::borrow_state 2016-12-15 10:56:55 -08:00
Aaron Turon
b2882709b3 Stabilize std::cell::Ref::clone 2016-12-15 10:56:55 -08:00
Aaron Turon
415f3de7aa Stabilize std::char::{encode_utf8, encode_utf16} 2016-12-15 10:56:55 -08:00
Aaron Turon
e5363881a9 Stabilize std::sync::atomic::Atomic*::{get_mut, into_inner} 2016-12-15 10:56:55 -08:00
Aaron Turon
95373cd5d8 Stabilize Iterator::{min_by, max_by} 2016-12-15 10:56:55 -08:00
Martin Pool
16d4b7b0e5 doc: Explain meaning of Result iters and link to factory functions. 2016-12-13 11:28:58 -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
bors
b4b1e5ece2 Auto merge of #38049 - frewsxcv:libunicode, r=alexcrichton
Rename 'librustc_unicode' crate to 'libstd_unicode'.

Fixes https://github.com/rust-lang/rust/issues/26554.
2016-12-12 13:19:33 +00:00
bors
5938eba4e3 Auto merge of #38149 - bluss:is-empty, r=alexcrichton
Forward more ExactSizeIterator methods and `is_empty` edits

- Forward ExactSizeIterator methods in more places, like `&mut I` and `Box<I>` iterator impls.
- Improve `VecDeque::is_empty` itself (see commit 4)
- All the collections iterators now have `len` or `is_empty` forwarded if doing so is a benefit. In the remaining cases, they already use a simple size hint (using something like a stored `usize` value), which is sufficient for the default implementation of len and is_empty.
2016-12-07 07:15:31 +00:00
bors
3fef221514 Auto merge of #38134 - bluss:iter-nth, r=aturon
Remove Self: Sized from Iterator::nth

It is an unnecessary restriction; nth neither needs self to be sized
nor needs to be exempted from the trait object.

It increases the utility of the nth method, because type specific
implementations are available through `&mut I` or through an iterator
trait object.

It is a backwards compatible change due to the special cases of the
`where Self: Sized` bound; it was already optional to include this bound
in `Iterator` implementations.
2016-12-07 00:30:25 +00:00
Ulrik Sverdrup
705e295b7b iter: Forward ExactSizeIterator methods for &mut I 2016-12-04 15:46:37 +01:00
Ulrik Sverdrup
dd3e63aea5 core: Forward ExactSizeIterator::is_empty for Bytes 2016-12-04 15:46:36 +01:00
Corey Farwell
6c327adca2 Rollup merge of #38090 - GuillaumeGomez:option_doc, r=frewsxcv
Add cloned example for Option

r? @frewsxcv
2016-12-03 15:39:53 -05:00
Ulrik Sverdrup
bc3618e5c0 core: Remove Self: Sized from Iterator::nth
It is an unnecessary restriction; nth neither needs self to be sized
nor needs to be exempted from the trait object.

It increases the utility of the nth method, because type specific
implementations are available through `&mut I` or through an iterator
trait object.

It is a backwards compatible change due to the special cases of the
`where Self: Sized` bound; it was already optional to include this bound
in `Iterator` implementations.
2016-12-02 21:20:41 +01:00
bors
dc81742b18 Auto merge of #38047 - canndrew:fmt-void-non-empty, r=bluss
Make core::fmt::Void a non-empty type.

Adding back this change that was removed from PR #36449 because it's a fix and because I immediately hit a problem with it again when I started implementing my fix for #12609.
2016-11-30 23:40:10 +00:00
Alex Crichton
2186660b51 Update the bootstrap compiler
Now that we've got a beta build, let's use it!
2016-11-30 10:38:08 -08:00
Guillaume Gomez
8e6ae19bb5 Add cloned example for Option 2016-11-30 09:44:33 -08:00
Corey Farwell
274777a158 Rename 'librustc_unicode' crate to 'libstd_unicode'.
Fixes #26554.
2016-11-30 01:24:01 -05:00
Andrew Cann
246edb8628 Make core::fmt::Void a non-empty type.
Because we handle artifically-constructed references to it in live code which
is a totally broken thing to do.
2016-11-28 21:22:41 +08:00
Christophe Biocca
c470d4a415 Add borrow support for slice binary search methods. 2016-11-27 15:44:11 -05:00
bors
f8614c3973 Auto merge of #36340 - sfackler:slice-get-slice, r=alexcrichton
Implement RFC 1679

cc #35729

r? @alexcrichton
2016-11-26 18:47:06 -06:00
bors
9003e1ab6a Auto merge of #38008 - bluss:rustbuild-benches, r=alexcrichton
Add rustbuild command `bench`

Add command bench to rustbuild, so that `./x.py bench <path>` can compile and run benchmarks.

`./x.py bench --stage 1 src/libcollections` and `./x.py bench --stage 1 src/libstd` should both compile well. Just `./x.py bench` runs all benchmarks for the libstd crates.

Fixes #37897
2016-11-26 12:32:19 -06:00
Steven Fackler
5377b5e9c4 Overload get{,_mut}{,_unchecked} 2016-11-26 10:07:39 -08:00
bors
7e39c0ede5 Auto merge of #38015 - sanxiyn:rollup, r=sanxiyn
Rollup of 7 pull requests

- Successful merges: #37962, #37963, #37967, #37978, #37985, #38001, #38010
- Failed merges:
2016-11-26 07:40:43 -06:00
Seo Sanghyeon
5aceedf4d8 Rollup merge of #37963 - bluss:iterator-docs, r=alexcrichton
Fix two small issues in iterator docs

- `collect()` is a regular method, not an adaptor (does not return an Iterator). I just randomly picked `filter` as a third common adaptor to mention instead.
- Fix example in `Map`'s docs so that it uses the DoubleEndedIterator implementation
2016-11-26 22:02:14 +09:00
bors
73e98a0210 Auto merge of #37961 - samestep:radices, r=frewsxcv
Use "radices" instead of "radicum"

The correct plural of "radix" is "radices" or "radixes", not "radicum".
2016-11-25 23:31:42 -06:00
Ulrik Sverdrup
42e66344b5 rustbuild: Point to core and collections's external benchmarks. 2016-11-25 23:10:43 +01:00
bors
a31ad75bde Auto merge of #37944 - bluss:adaptors-are-empty, r=alexcrichton
Forward ExactSizeIterator::len and is_empty for important iterator adaptors

Forward ExactSizeIterator::len and is_empty for important iterator adaptors

Because some iterators will provide improved version of len and/or is_empty,
adaptors should forward to those implementations if possible.
2016-11-24 11:56:11 -06:00
bors
217f57c0b5 Auto merge of #37943 - bluss:exact-is-empty, r=alexcrichton
Implement better .is_empty() for slice and vec iterators

These iterators can use a pointer comparison instead of computing the length.
2016-11-24 03:37:44 -06:00
Sam Estep
b15e6a6a00 Use "radices" instead of "radicum" 2016-11-23 08:49:35 -05:00