Commit Graph

62450 Commits

Author SHA1 Message Date
Jeffrey Seyfried bd862d29d3
Fix bug in legacy `#[derive]` processing logic. 2017-03-21 16:53:34 -04:00
Michael Woerister cbb3af1e9c
Make the filenames of .stamp files generated by compiletest shorter.
Otherwise we run into filename length limitations on some file
systems (especially ecryptfs).
2017-03-21 16:50:36 -04:00
Alex Crichton ef90d32f07
rustc: Always emit the `uwtable` attribute on Windows
This commit alters the translation layer to unconditionally emit the `uwtable`
LLVM attribute on Windows regardless of the `no_landing_pads` setting.
Previously I believe we omitted this attribute as an optimization when the
`-Cpanic=abort` flag was passed, but this unfortunately caused problems for
Gecko.

It [was discovered] that there was trouble unwinding through Rust functions due
to foreign exceptions such as illegal instructions or otherwise in-practice
methods used to abort a process. In testing it looked like the major difference
between a working binary and a non-working binary is indeed this `uwtable`
attribute, but this PR has unfortunately not been thoroughly tested in terms of
compiling Gecko with `-C panic=abort` *and* this PR to see whether it works, so
this is still somewhat working on just suspicion.

[was discovered]: https://bugzilla.mozilla.org/show_bug.cgi?id=1302078
2017-03-21 16:47:10 -04:00
Austin Bonander 8a6ef50575
Regression test for rust-lang/rust#40535 2017-03-21 16:34:56 -04:00
Austin Bonander a906d9912b
Correctly get source for metadata crate type;
replace `unwrap()` with `expect()`
2017-03-21 16:34:56 -04:00
Taylor Cramer 873248d87d Remove unused adt_def access by constructor in typeck/collect 2017-03-21 16:29:38 -04:00
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
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
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
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