Commit Graph

62944 Commits

Author SHA1 Message Date
Jeffrey Seyfried
678e882ce2
Check for conflicts between macros 1.0 exports (#[macro_export], #[macro_reexport])
and macros 2.0 exports (`pub use` macro re-exports and `pub macro` (once implemented)
at the crate root.
2017-03-21 16:23:18 -04:00
Guillaume Gomez
f53172287a Add whitespace around "=" in assoc items 2017-03-21 16:22:15 -04:00
Guillaume Gomez
ed5702fc58 Fix invalid linking in iter docs 2017-03-21 16:18:36 -04:00
Sam Whited
49db656b06 str: Make docs consistently punctuated 2017-03-21 16:09:31 -04:00
Vadim Petrochenkov
b5e889791a Refactor parsing of trait object types 2017-03-21 23:01:53 +03:00
bors
cab4bff3de Auto merge of #40601 - stjepang:sort-unstable, r=alexcrichton
Implement feature sort_unstable

Tracking issue for the feature: #40585

This is essentially integration of [pdqsort](https://github.com/stjepang/pdqsort) into libcore.

There's plenty of unsafe blocks to review. The heart of pdqsort is `fn partition_in_blocks` and is probably the most challenging function to understand. It requires some patience, but let me know if you find it too difficult - comments could always be improved.

#### Changes

* Added `sort_unstable` feature.
* Tweaked insertion sort constants for stable sort. Sorting integers is now up to 5% slower, but sorting big elements is much faster (in particular, `sort_large_big_random` is 35% faster). The old constants were highly optimized for sorting integers, so overall the configuration is more balanced now. A minor regression in case of integers is forgivable as we recently had performance improvements (#39538) that completely make up for it.
* Removed some uninteresting sort benchmarks.
* Added a new sort benchmark for string sorting.

#### Benchmarks

The following table compares stable and unstable sorting:
```
name                                 stable ns/iter        unstable ns/iter     diff ns/iter   diff %
slice::sort_large_ascending          7,240 (11049 MB/s)    7,380 (10840 MB/s)            140    1.93%
slice::sort_large_big_random         1,454,138 (880 MB/s)  910,269 (1406 MB/s)      -543,869  -37.40%
slice::sort_large_descending         13,450 (5947 MB/s)    10,895 (7342 MB/s)         -2,555  -19.00%
slice::sort_large_mostly_ascending   204,041 (392 MB/s)    88,639 (902 MB/s)        -115,402  -56.56%
slice::sort_large_mostly_descending  217,109 (368 MB/s)    99,009 (808 MB/s)        -118,100  -54.40%
slice::sort_large_random             477,257 (167 MB/s)    346,028 (231 MB/s)       -131,229  -27.50%
slice::sort_large_random_expensive   21,670,537 (3 MB/s)   22,710,238 (3 MB/s)     1,039,701    4.80%
slice::sort_large_strings            6,284,499 (38 MB/s)   6,410,896 (37 MB/s)       126,397    2.01%
slice::sort_medium_random            3,515 (227 MB/s)      3,327 (240 MB/s)             -188   -5.35%
slice::sort_small_ascending          42 (1904 MB/s)        41 (1951 MB/s)                 -1   -2.38%
slice::sort_small_big_random         503 (2544 MB/s)       514 (2490 MB/s)                11    2.19%
slice::sort_small_descending         72 (1111 MB/s)        69 (1159 MB/s)                 -3   -4.17%
slice::sort_small_random             369 (216 MB/s)        367 (217 MB/s)                 -2   -0.54%
```

Interesting cases:
* Expensive comparison function and string sorting - it's a really close race, but timsort performs a slightly smaller number of comparisons. This is a natural difference of bottom-up merging versus top-down partitioning.
* `large_descending` - unstable sort is faster, but both sorts should have equivalent performance. Both just check whether the slice is descending and if so, they reverse it. I blame LLVM for the discrepancy.

r? @alexcrichton
2017-03-21 19:50:17 +00:00
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
02d6e00587 Use partial insertion sort 2017-03-21 20:46:20 +01:00
Stjepan Glavina
c4454a5507 Tweak the constants a bit 2017-03-21 20:46:20 +01:00
Stjepan Glavina
942173b38f Fix grammar 2017-03-21 20:46:20 +01:00
Stjepan Glavina
cfe6e13b11 Faster sort_unstable on presorted inputs 2017-03-21 20:46:20 +01:00
Stjepan Glavina
f0e5868627 Fix a doctest 2017-03-21 20:46:20 +01:00
Stjepan Glavina
e365974750 Address Alex's PR comments 2017-03-21 20:46:20 +01:00
Stjepan Glavina
f1913e2a30 Implement feature sort_unstable 2017-03-21 20:46:20 +01:00
Tim Neumann
88d5645fb8 dist-x86-linux: ugrade gcc to 4.8.5 2017-03-21 20:40:06 +01:00
Tim Neumann
43a51b78b8 link agains relocatable libstdc++ 2017-03-21 20:37:50 +01:00
Tim Neumann
ba90248dac include compiler hash in wrapper scripts 2017-03-21 20:37:50 +01:00
Alex Crichton
7ae7bf31e2 Switch to rust-lang-ci mirror URLs 2017-03-21 20:37:50 +01:00
Tim Neumann
1f65610675 ci/netbsd: use the "official" cross compiler 2017-03-21 20:37:50 +01:00
bors
58c701f5c7 Auto merge of #40693 - frewsxcv:rollup, r=frewsxcv
Rollup of 10 pull requests

- Successful merges: #40229, #40312, #40332, #40502, #40556, #40576, #40667, #40671, #40681, #40685
- Failed merges:
2017-03-21 17:02:38 +00:00
Guillaume Gomez
27151017e9 Add missing urls in ptr docs 2017-03-21 16:23:27 +01:00
bors
53eb08bedc Auto merge of #40686 - alexcrichton:less-logging, r=brson
travis: Don't set `RUST_LOG` globally

I have a suspicion that this caused a large regression in cycle times by forcing
the compiler to perform more checks on every `debug!` statement, so let's test
this out by removing the `RUST_LOG` env var globally.

This regression in cycle time was witnessed between [two] [builds] where the
[PR] in question didn't do much suspicious. Judging by how the stage0 times
*also* regressed though then this is my best guess.

[two]: https://travis-ci.org/rust-lang/rust/builds/210149932
[builds]: https://travis-ci.org/rust-lang/rust/builds/210179995
[PR]: https://github.com/rust-lang/rust/pull/40446
2017-03-21 14:35:18 +00:00
Taylor Cramer
8e58d9eb8f Use Iterator::find in associated_item search 2017-03-21 00:09:24 -07:00
Corey Farwell
b6240e51ae Rollup merge of #40685 - portal-chan:patch-1, r=eddyb
Add missing associated type Item to Iterator
2017-03-20 23:45:05 -04:00
Corey Farwell
c6b2110714 Rollup merge of #40681 - est31:nightlies_txt_was_removed, r=alexcrichton
config.toml.example: nightlies.txt got removed

Instead, stage0.txt got introduced.

See also commit 02538d463a
2017-03-20 23:45:03 -04:00
Corey Farwell
bf3f77b716 Rollup merge of #40671 - GuillaumeGomez:options-urls, r=frewsxcv
Add missing urls in Option enum

r? @rust-lang/docs
2017-03-20 23:45:02 -04:00
Corey Farwell
d0c04fbaca Rollup merge of #40667 - DaseinPhaos:patch-4, r=GuillaumeGomez
Fix typo in `ptr` doc

`sizeof` should be `size_of`
2017-03-20 23:45:01 -04:00
Corey Farwell
2532ad7d0b Rollup merge of #40576 - dwrensha:mir-terminator-kind-doc-typo, r=nikomatsakis
fix innacuracy in mir TerminatorKind::SwitchInt docs

Each index of `values` corresponds to an index of `targets`, and `targets` additionally has a "default case" element at its end, so `targets.len() == values.len() + 1`, not the other way around. For example, [here](0aeb9c1297/src/librustc/mir/mod.rs (L549-L550)) is a concrete instance of `SwitchInt` being constructed with `targets.len() == 2` and `values.len() == 1`.
2017-03-20 23:45:00 -04:00
Corey Farwell
17656ab328 Rollup merge of #40556 - cramertj:stabilize-pub-restricted, r=petrochenkov
Stabilize pub(restricted)

Fix https://github.com/rust-lang/rust/issues/32409
2017-03-20 23:44:59 -04:00
Corey Farwell
03235ccbfe Rollup merge of #40502 - jdhorwitz:master, r=steveklabnik
clean up visuals on error index #40425

r? @steveklabnik

Knocking these down to a smaller header made it look quite nice in my opinion.
2017-03-20 23:44:58 -04:00
Corey Farwell
14b5d56587 Rollup merge of #40332 - steveklabnik:extract-book, r=alexcrichton
Extract book into a submodule

Part of https://github.com/rust-lang/rust/issues/39588

We probably don't want to land this till after the beta branches on friday, but would still ❤️ a review from @alexcrichton , since I am a rustbuild noob.

This pr:

1. removes the book
2. adds it back in as a submodule
3. the submodule includes both the old book and the new book
4. it also includes an index page explaining the difference in editions
5. it also includes redirect pages for the old book URLs.
6. so we build all that stuff too.

r? @alexcrichton
2017-03-20 23:44:57 -04:00
Corey Farwell
42cfdc1955 Rollup merge of #40312 - jdhorwitz:papercut, r=steveklabnik
Papercut

r? @steveklabnik
2017-03-20 23:44:56 -04:00
Corey Farwell
fcc2d25794 Rollup merge of #40229 - cramertj:break-to-blocks, r=nikomatsakis
Implement `?` in catch expressions

Builds on #39921. Final part of #39849.

r? @nikomatsakis
2017-03-20 23:44:55 -04:00
Micah Tigley
f628117529 Fix Rust linting error 2017-03-20 20:20:12 -06:00
Alex Crichton
7305ca3852 travis: Don't set RUST_LOG globally
I have a suspicion that this caused a large regression in cycle times by forcing
the compiler to perform more checks on every `debug!` statement, so let's test
this out by removing the `RUST_LOG` env var globally.

This regression in cycle time was witnessed between [two] [builds] where the
[PR] in question didn't do much suspicious. Judging by how the stage0 times
*also* regressed though then this is my best guess.

[two]: https://travis-ci.org/rust-lang/rust/builds/210149932
[builds]: https://travis-ci.org/rust-lang/rust/builds/210179995
[PR]: https://github.com/rust-lang/rust/pull/40446
2017-03-20 14:32:36 -07:00
portal
1a00c8fe0f Add missing associated type Item to Iterator 2017-03-20 23:29:04 +02:00
Micah Tigley
63652726c3 Move str docs to proper place in file. 2017-03-20 15:21:28 -06:00
Micah Tigley
67867c6635 Update docs for std::str 2017-03-20 13:11:58 -06:00
est31
aa83d7107f config.toml.example: nightlies.txt got removed
Instead, stage0.txt got introduced.

See also commit 02538d463a
2017-03-20 19:28:04 +01:00
bors
134c4a0f08 Auto merge of #39628 - arielb1:shimmir, r=eddyb
Translate shims using MIR

This removes one large remaining part of old trans.
2017-03-20 15:58:10 +00:00
steveklabnik
96d35947c3 fix trailing whitespace 2017-03-20 10:10:16 -04:00
steveklabnik
4eef581817 exempt hbs from linkchecker 2017-03-20 10:10:16 -04:00
steveklabnik
d1d9626e75 Fix up various links
The unstable book, libstd, libcore, and liballoc all needed some
adjustment.
2017-03-20 10:10:16 -04:00
steveklabnik
c0e7b16f61 Update book and reference submodules
Some links needed adjustment to support this new scheme.
2017-03-20 10:10:15 -04:00
steveklabnik
23304593a6 skip nostarch directory
This is for coordinating with our publishers; we don't ever want to test it.
2017-03-20 10:10:15 -04:00
steveklabnik
966e72156f fix whitespace 2017-03-20 10:10:15 -04:00
steveklabnik
c97b48f261 Fix up some issues.
Becuase I had run a `x.py doc` before doing this work, I had
accidentally relied on some files existing in places that they didn't
need to be.
2017-03-20 10:10:15 -04:00
steveklabnik
422330df28 Render redirect pages.
These pages will help people who have links to the older book.
2017-03-20 10:10:15 -04:00
steveklabnik
5f2f3d07dc build book index 2017-03-20 10:10:15 -04:00