Commit Graph

62438 Commits

Author SHA1 Message Date
Taylor Cramer a212002db1 Remove unused adt-def insertion by constructor DefIndex 2017-03-21 16:29:38 -04:00
Alex Burka 7551e715dc
add test for nested macro def (#31946)
Adds a test for issue #31946 which was fixed a while ago.
2017-03-21 16:27:35 -04:00
omtcyfz 71020e3836 Nit: LLVM & Clang latest version is 4.0 2017-03-21 16:26:35 -04:00
Alex Crichton fe2b7a4952
rustbuild: Don't hardcode 'nightly' for Cargo
It now follows rustc release trains
2017-03-21 16:26:13 -04:00
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
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
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
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
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
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
steveklabnik 8573a1319a build both editions of the book 2017-03-20 10:10:15 -04:00
steveklabnik f17965da1e Import submodule for the book.
It's all in the external repository now.
2017-03-20 10:10:15 -04:00
steveklabnik e4628fb0db Remove the existing book
We'll bring this back in with the next commit, as a submodule.
2017-03-20 10:10:14 -04:00
Guillaume Gomez 17a26ee275 Add missing urls in Option enum 2017-03-20 15:09:02 +01:00
Luxko c50a6ec738 Fix typo in `ptr` doc
`sizeof` should be `size_of`
2017-03-20 17:17:10 +08:00