Commit Graph

53308 Commits

Author SHA1 Message Date
bors
5d12502d3a Auto merge of #33617 - sanmai-NL:gitignore_IntelliJ, r=nikomatsakis
IntelliJ support, ordering, cleanup
2016-05-17 04:02:15 -07:00
bors
5743564f2d Auto merge of #33651 - Nercury:update-i686-android-target-to-match-abi, r=alexcrichton
Update i686-linux-android features to match android x86 ABI.

Based on [android's official x86 ABI info](http://developer.android.com/ndk/guides/abis.html#x86), the x86 baseline CPU can be safely updated to `pentiumpro`, with the addition of `MMX`, `SSE`, `SSE2`, `SSE3`, `SSSE3` features.

r? @alexcrichton
2016-05-16 22:35:00 -07:00
bors
786b26d7b4 Auto merge of #33491 - arielb1:obligation-jungle, r=nikomatsakis
Replace the obligation forest with a graph

In the presence of caching, arbitrary nodes in the obligation forest can be merged, which makes it a general graph. Handle it as such, using cycle-detection algorithms in the processing.

I should do performance measurements sometime.

This was pretty much written as a proof-of-concept. Please help me write this in a less-ugly way. I should also add comments explaining what is going on.

r? @nikomatsakis
2016-05-16 18:39:59 -07:00
bors
cd6a400175 Auto merge of #33588 - nikomatsakis:compiletest-ui, r=acrichto
add UI testing framework

This adds a framework for capturing and tracking the precise output of rustc, which allows us to check all manner of minor details with the output. It's pretty strict right now -- the output must match almost exactly -- and hence maybe a bit too strict. But I figure we can add wildcards or whatever later. There is also a script intended to make updating the references easy, though the script could make things a *bit* easier (in particular, it'd be nice if it would find the build directory for you automatically).

One thing I was wondering about is the best way to test colors. Since windows doesn't embed those in the output stream, this test framework can't test colors on windows -- so I figure we can just write tests that are ignored on windows and which pass `--color=always` or whatever to rustc.

cc @jonathandturner
r? @alexcrichton
2016-05-16 14:41:50 -07:00
Niko Matsakis
24cfa1efb0 pacify the mercilous tidy 2016-05-16 16:48:48 -04:00
Ariel Ben-Yehuda
65ad935737 change on_unimplented logic 2016-05-16 23:16:52 +03:00
bors
4fdf2c4f97 Auto merge of #33500 - Nercury:update-aarch64-android-target-to-match-abi, r=alexcrichton
Update aarch64-linux-android target to match android abi.

- Changed `target_env` to "gnu" to empty "" for all android targets because it does not matter for android.
- The PR #33048 added "max_atomic_width" for arm-android but missed recently added armv7-android. Add it there too.
- Added features `+neon,+fp-armv8` because they [must exist on `aarch64` android](http://developer.android.com/ndk/guides/cpu-features.html).
- Update libc to include https://github.com/rust-lang/libc/pull/282 so that rust's std lib works on android's aarch64 (the main issue there was incorrect structure alignment on 64-bit arm).

r? @alexcrichton
2016-05-16 12:15:10 -07:00
bors
8310de856d Auto merge of #33429 - ranma42:fix-x87-parsing, r=alexcrichton
Fix fast path of float parsing on x87

The fast path of the float parser relies on the rounding to happen
exactly and directly to the correct number of bits. On x87, instead,
double rounding would occour as the FPU stack defaults to 80 bits of
precision.

This can be fixed by setting the precision of the FPU stack before
performing the int to float conversion. This can be achieved by
changing the value of the x87 control word. This is a somewhat common
operation that is in fact performed whenever a float needs to be
truncated to an integer, but it is undesirable to add its overhead for
code that does not rely on x87 for computations (i.e. on non-x86
architectures, or x86 architectures which perform FPU computations on
using SSE).

Fixes `num::dec2flt::fast_path_correct` (on x87).
2016-05-16 09:46:09 -07:00
bors
c1ccf97e51 Auto merge of #33663 - rphmeier:recover_rename, r=sfackler
rename a few occurrences of RecoverSafe in docs
2016-05-16 07:25:04 -07:00
Andrea Canciani
4ec1f8de41 Fix asm! blocks
The `volatile` modifier was incorrectly written outside of the `asm!`
blocks.
2016-05-16 15:41:45 +02:00
Andrea Canciani
88afeb9cba Cleanup documentation
Remove irrelevant information (and instead provide pointer to
reference documentation), replace ASCII-art table with the
corresponding MarkDown one, and minor fixes.
2016-05-16 15:37:14 +02:00
bors
89430be0c1 Auto merge of #33331 - uasi:diag-e0038-typo, r=GuillaumeGomez
diagnostics: Fix minor typo in E0038
2016-05-16 05:05:55 -07:00
bors
32f8366b7c Auto merge of #33640 - lucab:to-upstream/tcp-stress, r=alexcrichton
test: explicitely check the number of spawned threads in tcp-stress

System limits may restrict the number of threads effectively spawned by this test (eg. systemd recently introduced a 512 tasks per unit maximum default).
Now this test explicitly asserts on the expected number of threads, making failures due to system limits easier to spot.
More details at https://bugs.debian.org/822325
2016-05-16 02:47:12 -07:00
bors
e87cd7e380 Auto merge of #33505 - petrochenkov:self, r=nrc
Remove ExplicitSelf from HIR

`self` argument is already kept in the argument list and can be retrieved from there if necessary, so there's no need for the duplication.
The same changes can be applied to AST, I'll make them in the next breaking batch.
The first commit also improves parsing of method declarations and fixes https://github.com/rust-lang/rust/issues/33413.

r? @eddyb
2016-05-15 23:14:52 -07:00
Robert Habermeier
81f479f5bd rename a few occurrences of RecoverSafe in docs 2016-05-16 00:04:01 -04:00
bors
e90307d2a2 Auto merge of #33251 - Kintaro:fix-typo-in-fs, r=GuillaumeGomez
Fix a typo in error messages in std::fs tests

Just a small correction to fix a typo in an error message in std::fs tests
2016-05-15 20:47:15 -07:00
bors
bb39c4925a Auto merge of #33643 - eddyb:rollup, r=eddyb
Rollup of 27 pull requests

- Successful merges: #33342, #33393, #33415, #33475, #33517, #33533, #33534, #33565, #33580, #33584, #33585, #33588, #33590, #33591, #33593, #33598, #33600, #33602, #33603, #33604, #33605, #33607, #33612, #33620, #33633, #33634, #33635
- Failed merges: #33578
2016-05-15 18:22:51 -07:00
Eduard-Mihai Burtescu
ffbfbe452c Rollup merge of #33660 - fbergr:doc, r=steveklabnik
Update link to license

Permanent redirect (301). The link should be updated.
2016-05-16 02:00:20 +03:00
Eduard-Mihai Burtescu
b4da51a0a3 Rollup merge of #33635 - tshepang:capitalise, r=steveklabnik
doc: 'tis the lang, not the reptile
2016-05-16 02:00:20 +03:00
Eduard-Mihai Burtescu
b0c897279e Rollup merge of #33634 - tshepang:nicer-output, r=steveklabnik
doc: improve output
2016-05-16 02:00:19 +03:00
Eduard-Mihai Burtescu
76d50e657b Rollup merge of #33633 - tshepang:no-effect, r=steveklabnik
doc: this statement does not have an effect
2016-05-16 02:00:19 +03:00
Eduard-Mihai Burtescu
1155a34ab9 Rollup merge of #33631 - solson:ignore-rustbuild-config, r=alexcrichton
rustbuild: Ignore user config.toml file.

r? @eddyb
2016-05-16 02:00:19 +03:00
Eduard-Mihai Burtescu
9cd83eb15c Rollup merge of #33605 - tshepang:less-awkward, r=steveklabnik
doc: use less awkward and less confusing language
2016-05-16 02:00:19 +03:00
Eduard-Mihai Burtescu
9c745e7feb Rollup merge of #33604 - tshepang:line-em-up, r=GuillaumeGomez
doc: line these comments up

Looks more nice, and same is done with prior examples
2016-05-16 02:00:18 +03:00
Eduard-Mihai Burtescu
752137f9cb Rollup merge of #33603 - tshepang:no-need, r=apasel422
doc: to_string not needed since we gots coercion
2016-05-16 02:00:18 +03:00
bors
5ebe41835f Auto merge of #33619 - jonathandturner:improve_structured_errors, r=nikomatsakis
Batch of improvements to errors for new error format

This is a batch of improvements to existing errors to help get the most out of the new error format.

* Added labels to primary spans (^^^) for a set of errors that didn't currently have them
* Highlight the source blue under the secondary notes for better readability
* Move some of the "Note:" into secondary spans+labels
* Fix span_label to take &mut instead, which makes it work the same as other methods in that set
2016-05-15 15:08:46 -07:00
Jonathan Turner
65cb5f7378 Add space after equals 2016-05-15 11:57:50 -07:00
bors
e7420fbbae Auto merge of #33620 - eddyb:oops-static-is-not-fn, r=dotdash
mir: always allow &mut [...] in static mut regardless of the array length.
2016-05-15 11:01:03 -07:00
Florian Berger
92abda02c4 Update link to license 2016-05-15 19:59:45 +03:00
bors
9f58fb776a Auto merge of #33658 - Manishearth:rollup, r=Manishearth
Rollup of 14 pull requests

- Successful merges: #33342, #33393, #33415, #33475, #33517, #33533, #33534, #33565, #33580, #33584, #33585, #33590, #33591, #33598
- Failed merges: #33578
2016-05-15 08:37:09 -07:00
Manish Goregaokar
95ace6be43 Rollup merge of #33598 - haikoschol:master, r=alexcrichton
doc: Fix comment in std::string::String example code
2016-05-15 20:13:43 +05:30
Manish Goregaokar
762e5b1c0f Rollup merge of #33591 - dns2utf8:systemtime_wording, r=GuillaumeGomez
Use the correct word in the explanation

r? @steveklabnik
2016-05-15 20:13:43 +05:30
Manish Goregaokar
9f336f6368 Rollup merge of #33590 - durka:patch-22, r=aturon
update "reason" for fnbox feature gate

It isn't "newly introduced" anymore.
2016-05-15 20:13:43 +05:30
Manish Goregaokar
e82596b9d8 Rollup merge of #33585 - GuillaumeGomez:error_code_test, r=steveklabnik
Add compile-fail tests for error codes

r? @steveklabnik

cc @jonathandturner
2016-05-15 20:13:42 +05:30
Manish Goregaokar
65814df26b Rollup merge of #33584 - GuillaumeGomez:error_code_improvements, r=steveklabnik
Add more details and examples in error codes

r? @steveklabnik
2016-05-15 20:13:42 +05:30
Manish Goregaokar
3bc7fc1b54 Rollup merge of #33580 - frewsxcv:temp-dir, r=alexcrichton
Cleanup formatting and wording for `std::env::temp_dir` docs.

None
2016-05-15 20:13:42 +05:30
Manish Goregaokar
0238e29652 Rollup merge of #33565 - Amanieu:once_doc, r=GuillaumeGomez
Fix typo in std::sync::Once documentation
2016-05-15 20:13:41 +05:30
Manish Goregaokar
0ceb073038 Rollup merge of #33534 - dns2utf8:atomic_docs, r=GuillaumeGomez
Simplify text

This way it should be clear: Any number of other threads have this guaranty not just one other thread.
2016-05-15 20:13:41 +05:30
Manish Goregaokar
0f4f51b173 Rollup merge of #33533 - GuillaumeGomez:add_E0500, r=steveklabnik
Add E0500 error explanation

r? @Manishearth

Part of #32777.
2016-05-15 20:13:41 +05:30
Manish Goregaokar
0e5f385b96 Rollup merge of #33517 - sanxiyn:tight-span, r=nagisa
Tighten span for E0063
2016-05-15 20:13:40 +05:30
Manish Goregaokar
7003253b34 Rollup merge of #33475 - billyevans:master, r=guillaumegomez
Add detailed error explanation for E0505

Part of #32777
2016-05-15 20:13:40 +05:30
Manish Goregaokar
a9a130f6af Rollup merge of #33415 - dfockler:master, r=steveklabnik
Add error explanations for E0374, E0375, E0376 on issue #32777
2016-05-15 20:13:40 +05:30
Manish Goregaokar
03ec483a72 Rollup merge of #33393 - cristianoliveira:docs-error-explanation, r=steveklabnik
Add error description for E0455

r? @GuillaumeGomez.

About this error there is no much thing to explain. The short description says enough to understand. Feel free to review.
2016-05-15 20:13:40 +05:30
Manish Goregaokar
c3086c2ef8 Rollup merge of #33342 - birkenfeld:issue-26472, r=jseyfried
typeck: if a private field exists, also check for a public method

For example, `Vec::len` is both a field and a method, and usually encountering `vec.len` just means that the parens were forgotten.

Fixes: #26472

NOTE: I added the parameter `allow_private` to `method::exists` since I don't want to suggest inaccessible methods. For the second case, where only the method exists, I think it would make sense to set it to `false` as well, but I wanted to preserve compatibility for this case.
2016-05-15 20:13:39 +05:30
bors
b358319353 Auto merge of #33612 - royalstream:royalstream-enc-enum-ptr, r=michaelwoerister
gdb Pretty Print: generic encoded was failing on reference/pointer types

If you debug this program using **gdb**
```rust
fn main() {
    let x = 10;
    let y = Some(&x);
    // additional code
}
```
And you try to print **y**'s value from the debugger, you get the following:
```
(gdb) print y
Python Exception <class 'gdb.error'> Cannot convert value to int.:
$1 = {RUST$ENCODED$ENUM$0$None = Some = {0x7fff5fbff97c}}
```
What happens is that inside **debugger_pretty_printers_common.py** the method `is_null_variant` doesn't have any special handling for pointer values so it ends up calling `.as_integer()` on `discriminant_val` (which holds a pointer) and fails.

Considering it needs to handle pointers and return _true_ when the pointer is _null_, I modified the `.as_integer()` method in **gdb_rust_pretty_printing.py** to take pointers into consideration.

After this modification **gdb** prints **y** like this:
```
(gdb) print y
$1 = Some = {0x7fff5fbff97c}
```
Now, it would be nice to print something useful (instead of a pointer address) but the pretty printer doesn't currently handle references/pointers so that's a completely different subject.
2016-05-15 05:26:50 -07:00
Nerijus Arlauskas
148b5e4e10 Update i686-linux-android features to match android ABI. 2016-05-15 14:34:04 +03:00
Nerijus Arlauskas
e512abd418 Update libc to bring in updates for android's aarch64. 2016-05-15 11:57:19 +03:00
bors
1a26d2364f Auto merge of #33607 - jonas-schievink:prettier-mir, r=eddyb
Some simple improvements to MIR pretty printing

In short, this PR changes the MIR printer so that it:

* places an empty line between the MIR for each item
* does *not* write an empty line before the first BB when there are no
  var decls
* aligns the "// Scope" comments 50 chars in (makes the output more
  readable)
* prints the scope comments as "// scope N at ..." instead of "//
  Scope(N) at ..."
* prints a prettier scope tree:
 * no more unbalanced delimiters!
 * no more "Parent" entry (these convey no useful information)
 * drop the "Scope()" and just print scope IDs
 * no braces when the scope is empty

In action: https://gist.github.com/jonas-schievink/1c11226cbb112892a9470ce0f9870b65
2016-05-15 01:14:10 -07:00
bors
088d417852 Auto merge of #33593 - dotdash:smart_derive, r=brson
Improve derived implementations for enums with lots of fieldless variants

A number of trait methods like PartialEq::eq or Hash::hash don't
actually need a distinct arm for each variant, because the code within
the arm only depends on the number and types of the fields in the
variants. We can easily exploit this fact to create less and better
code for enums with multiple variants that have no fields at all, the
extreme case being C-like enums.

For nickel.rs and its by now infamous 800 variant enum, this reduces
optimized compile times by 25% and non-optimized compile times by 40%.
Also peak memory usage is down by almost 40% (310MB down to 190MB).

To be fair, most other crates don't benefit nearly as much, because
they don't have as huge enums. The crates in the Rust distribution that
I measured saw basically no change in compile times (I only tried
optimized builds) and only 1-2% reduction in peak memory usage.
2016-05-14 22:04:58 -07:00
bors
dd0ef17a2d Auto merge of #33600 - ollie27:rustdoc_impl_params, r=alexcrichton
rustdoc: Fix missing type parameters on impls

They were broken by #32558.

Fixes: #33592
2016-05-14 19:46:01 -07:00