Commit Graph

61179 Commits

Author SHA1 Message Date
Corey Farwell
4c5b868cc3 Rollup merge of #39482 - king6cong:master, r=frewsxcv
doc comment rewording
2017-02-07 22:54:27 -05:00
Corey Farwell
d1f8c448ff Rollup merge of #39459 - phungleson:fix-short-hand-struct-doc, r=steveklabnik
Fix short hand struct doc

Don't want to discredit @hngiang effort on this issue.

I just want to lend a hand to fix this issue #38830, it is a very nice feature and is seemingly completed.

Fixes #39096

r? @steveklabnik
2017-02-07 22:54:26 -05:00
Corey Farwell
6fb57bf13f Rollup merge of #39431 - alexcrichton:no-more-makefiles, r=brson
Delete the makefile build system

This PR deletes the makefile build system in favor of the rustbuild build system. The beta has now been branched so 1.16 will continue to be buildable from the makefiles, but going forward 1.17 will only be buildable with rustbuild.

Rustbuild has been the default build system [since 1.15.0](https://github.com/rust-lang/rust/pull/37817) and the makefiles were [proposed for deletion](https://internals.rust-lang.org/t/proposal-for-promoting-rustbuild-to-official-status/4368) at this time back in November of last year.

And now with the deletion of these makefiles we can start getting those sweet sweet improvements of using crates.io crates in the compiler!
2017-02-07 22:54:25 -05:00
Corey Farwell
3d8fa5af21 Rollup merge of #39426 - jakllsch:netbsd-c, r=alexcrichton
Add i686-unknown-netbsdelf target
2017-02-07 22:54:24 -05:00
Corey Farwell
370b63f386 Rollup merge of #39400 - alexcrichton:arm-cross-test, r=brson
Add support for test suites emulated in QEMU

This commit adds support to the build system to execute test suites that cannot
run natively but can instead run inside of a QEMU emulator. A proof-of-concept
builder was added for the `arm-unknown-linux-gnueabihf` target to show off how
this might work.

In general the architecture is to have a server running inside of the emulator
which a local client connects to. The protocol between the server/client
supports compiling tests on the host and running them on the target inside the
emulator.

Closes #33114
2017-02-07 22:54:23 -05:00
Corey Farwell
4c29a19bd5 Rollup merge of #39374 - durka:patch-34, r=steveklabnik
reference: clarify #[cfg] section

Closes #39370, but maybe we (or clippy) should add a warning too.
2017-02-07 22:54:22 -05:00
Corey Farwell
1d67bb9a0c Rollup merge of #39372 - seanmonstar:more-addr-froms, r=alexcrichton
A few ergonomic From impls for SocketAddr/IpAddr

My main motivation is removing things like this: `"127.0.0.1:3000".parse().unwrap()`. Instead, this now works: `SocketAddr::from(([127, 0, 0, 1], 3000))` or even `([127, 0, 0, 1], 3000).into())` when passing to a function.
2017-02-07 22:54:21 -05:00
Corey Farwell
19977911ce Rollup merge of #39361 - cengizIO:master, r=arielb1
Improve error message for uninferrable types #38812

Hello,

I tried to improve the error message for uninferrable types. The error code is `E0282`.

```rust

error[E0282]: type annotations needed
 --> /home/cengizIO/issue38812.rs:2:11
  |
2 |   let x = vec![];
  |       -   ^^^^^^ cannot infer type for `T`
  |       |
  |       consider giving `x` a type
  |
  = note: this error originates in a macro outside of the current crate
```

and

```rust

error[E0282]: type annotations needed
 --> /home/cengizIO/issue38812.rs:2:15
  |
2 |   let (x,) = (vec![],);
  |       ----    ^^^^^^ cannot infer type for `T`
  |       |
  |       consider giving a type to pattern
  |
  = note: this error originates in a macro outside of the current crate
```

Rust compiler now tries to find uninferred `local`s with type `_` and adds them into the error message.

I'm probably wrong on wording that I used. Please feel free to suggest better alternatives.

Thanks @nikomatsakis for mentoring 🍺

Any comments/feedback is more than welcome!

Thank you
2017-02-07 22:54:20 -05:00
Corey Farwell
4cde461bb0 Rollup merge of #38764 - Aaronepower:master, r=aturon
Added Default impl to PathBuf
2017-02-07 22:54:19 -05:00
bors
c14f87e3b0 Auto merge of #39324 - clarcharr:ipv6_u128, r=alexcrichton
Ipv6Addr <-> u128

Because we have `u128` now, it makes sense to add a conversion between `Ipv6Addr` and `u128` in addition to the existing one between `Ipv4Addr` and `u32`.

This shouldn't violate the existing feature gate on `u128` because you can't use the type without the feature gate, but if i have to add something, I can.
2017-02-08 00:03:42 +00:00
Alex Burka
620074df6a reference: clarify #[cfg] section 2017-02-07 15:35:54 -05:00
bors
a797b6e2fe Auto merge of #39002 - GuillaumeGomez:debug_libcollections, r=aturon
Add Debug implementations for libcollection structs

Part of #31869.
2017-02-07 17:28:51 +00:00
bors
c49d10207a Auto merge of #39591 - alexcrichton:revert-128, r=brson
Revert "Add 128-bit atomics"

This reverts commit 9903975003.

Unfortunately 128-bit atomics have broken our nightly builds (#39590) and while we investigate I'm posting a temporary revert of the PR that added them. If we can figure out a solution though before this lands I'd be happy to close!
2017-02-07 00:22:19 +00:00
Alex Crichton
bfa264271c Revert "Add 128-bit atomics"
This reverts commit 9903975003.
2017-02-06 10:39:14 -08:00
Alex Crichton
c8e0d04878 compiletest: Add caching of test results
Don't re-run tests in compiletest if all the inputs haven't changed, manage
stamp files in the output directory.
2017-02-06 08:44:27 -08:00
Alex Crichton
9ad13c8d02 rustbuild: Fix a few locations with makefiles gone
* Add version info to channel.rs as main.mk is no longer available
* Update `Makefile.in` used with bootstrap to not try to require `mk/util.mk`
* Update the `dist` target to avoid the makefile pieces
2017-02-06 08:44:27 -08:00
Alex Crichton
ffd3070cc9 Clean our src/etc of old files
Some of these have long since expired, some are no longer in use now that we've
jettisoned the makefiles, but none of them should be needed any more.
2017-02-06 08:43:37 -08:00
Alex Crichton
77c3bfa742 std: Remove cfg(cargobuild) annotations
These are all now no longer needed that we've only got rustbuild in tree.
2017-02-06 08:42:54 -08:00
Alex Crichton
ce4abc3515 Delete Travis/AppVeyor makefile builders
We no longer need these builders as we're no longer testing the old build
system.
2017-02-06 08:42:54 -08:00
Alex Crichton
9b0e6af110 Delete swaths of the configure script
This commit deletes swaths of the configure script related to the old build
system which are now no longer needed when using rustbuild.
2017-02-06 08:42:54 -08:00
Alex Crichton
9ab8090bd4 Delete the mk folder
This commit deletes the old build system located in the `mk` folder as it's now
been obsoleted for two cycles and is replaced by rustbuild.
2017-02-06 08:42:54 -08:00
Jonathan A. Kollasch
78f542b78a Rename i686-unknown-netbsdelf target to i686-unknown-netbsd 2017-02-06 08:49:16 -06:00
bors
324b175174 Auto merge of #39500 - michaelwoerister:fix-ich-testing, r=nikomatsakis
Let the dep-tracking test framework check that all #[rustc_dirty] attrs have been actually checked

r? @nikomatsakis
2017-02-06 14:10:13 +00:00
Michael Woerister
ab3c8269f4 Add comment about why the regular unused-attributes infrastructure
is not used for #[rustc_dirty]/#[rustc_clean].
2017-02-06 03:56:58 -05:00
bors
4711ac314c Auto merge of #38436 - bluecereal:patch-1, r=frewsxcv
Update if-let.md

Calling if-let a combination of if and let is confusing, as some may be led to believe that it's a literal combination, instead of syntactic sugar added to the language as a convenience.  What's there to stop someone from thinking if-let is just if and let together?

I do think this article does a good job of implying what's really going on; however, I was only able to notice this after I had begun to understand if/while-let statements, courtesy of the Rust IRC chat.

Basically, this article lacks the clarity and explicitness an inexperienced programmer like me needs in order to understand the contents fully.  This is shown by my inability to understand the if-let concept from this page of the Book alone.

I think convenience, sugar, and (if-let != if + let) should all be made mention of in a clear, explicit manner. I lack confidence in my understanding of this issue, so I wrote just enough to hopefully get my thoughts across.
2017-02-06 06:55:10 +00:00
king6cong
380ba6dbad go back to use // 2017-02-06 10:12:30 +08:00
bluecereal
fb7f211c0c Update if-let.md 2017-02-05 20:20:43 -05:00
Clar Charr
8b2e334e0e Ipv6Addr <-> u128 2017-02-05 18:55:37 -05:00
bors
a3da24bba9 Auto merge of #38897 - nikomatsakis:issue-32330-followup, r=arielb1
make lifetimes that only appear in return type early-bound

This is the full and proper fix for #32330. This also makes some effort to give a nice error message (as evidenced by the `ui` test), sending users over to the tracking issue for a fuller explanation and offering a `--explain` message in some cases.

This needs a crater run before we land.

r? @arielb1
2017-02-05 22:53:10 +00:00
Niko Matsakis
b26120db11 make lifetimes that only appear in return type early-bound
This is the full and proper fix for #32330. This also makes some effort
to give a nice error message (as evidenced by the `ui` test), sending
users over to the tracking issue for a full explanation.
2017-02-05 16:30:03 -05:00
bors
031c1168b9 Auto merge of #39567 - frewsxcv:rollup, r=frewsxcv
Rollup of 12 pull requests

- Successful merges: #39439, #39472, #39481, #39491, #39501, #39509, #39514, #39519, #39526, #39528, #39530, #39538
- Failed merges:
2017-02-05 19:33:55 +00:00
Corey Farwell
a419dd1c01 Rollup merge of #39538 - stjepang:slightly-optimize-sort, r=alexcrichton
Slightly optimize slice::sort

First, get rid of some bound checks.

Second, instead of comparing by ternary `compare` function, use a binary function testing whether an element is less than some other element. This apparently makes it easier for the compiler to reason about the code. I've noticed the same effect with [pdqsort](https://github.com/stjepang/pdqsort) crate.

Benchmark:

```
name                                        before ns/iter        after ns/iter         diff ns/iter   diff %
slice::bench::sort_large_ascending          8,969 (8919 MB/s)     7,410 (10796 MB/s)          -1,559  -17.38%
slice::bench::sort_large_big_ascending      355,640 (3599 MB/s)   359,137 (3564 MB/s)          3,497    0.98%
slice::bench::sort_large_big_descending     427,112 (2996 MB/s)   424,721 (3013 MB/s)         -2,391   -0.56%
slice::bench::sort_large_big_random         2,207,799 (579 MB/s)  2,138,804 (598 MB/s)       -68,995   -3.13%
slice::bench::sort_large_descending         13,694 (5841 MB/s)    13,514 (5919 MB/s)            -180   -1.31%
slice::bench::sort_large_mostly_ascending   239,697 (333 MB/s)    203,542 (393 MB/s)         -36,155  -15.08%
slice::bench::sort_large_mostly_descending  270,102 (296 MB/s)    234,263 (341 MB/s)         -35,839  -13.27%
slice::bench::sort_large_random             513,406 (155 MB/s)    470,084 (170 MB/s)         -43,322   -8.44%
slice::bench::sort_large_random_expensive   23,650,321 (3 MB/s)   23,675,098 (3 MB/s)         24,777    0.10%
slice::bench::sort_medium_ascending         143 (5594 MB/s)       132 (6060 MB/s)                -11   -7.69%
slice::bench::sort_medium_descending        197 (4060 MB/s)       188 (4255 MB/s)                 -9   -4.57%
slice::bench::sort_medium_random            3,358 (238 MB/s)      3,271 (244 MB/s)               -87   -2.59%
slice::bench::sort_small_ascending          32 (2500 MB/s)        32 (2500 MB/s)                   0    0.00%
slice::bench::sort_small_big_ascending      97 (13195 MB/s)       97 (13195 MB/s)                  0    0.00%
slice::bench::sort_small_big_descending     247 (5182 MB/s)       249 (5140 MB/s)                  2    0.81%
slice::bench::sort_small_big_random         502 (2549 MB/s)       498 (2570 MB/s)                 -4   -0.80%
slice::bench::sort_small_descending         55 (1454 MB/s)        61 (1311 MB/s)                   6   10.91%
slice::bench::sort_small_random             358 (223 MB/s)        356 (224 MB/s)                  -2   -0.56%
```
2017-02-05 12:45:15 -05:00
Corey Farwell
70cc1d34fd Rollup merge of #39530 - TimNN:more-gdb, r=alexcrichton
ignore more gdb versions with buggy rust support

This extends the versions of gdb which were ignored in #39039. While just ignoring gdb versions up to 7.12.1 would have been sufficient for now, I believe (after consulting https://sourceware.org/gdb/wiki/Internals%20Versions)  that ignoring versions up to 7.12.9 will prevent the tests failing again for 7.12.2, etc. while still running all tests for the development versions of gdb (which will be >= 7.12.10 as far as I can tell).

This should fix #39522.

cc @Manishearth, @michaelwoerister, #38948
2017-02-05 12:45:14 -05:00
Corey Farwell
3e7ee3535e Rollup merge of #39528 - dylanmckay:llvm-4.0-diglobalvar, r=alexcrichton
[LLVM 4.0] Support a debug info API change for LLVM 4.0

Instead of directly creating a `DIGlobalVariable`, we now have to create
a `DIGlobalVariableExpression` which itself contains a reference to a
'DIGlobalVariable'.

This is a straightforward change.

In the future, we should rename `DIGlobalVariable` in the FFI
bindings, assuming we will only refer to `DIGlobalVariableExpression`
and not `DIGlobalVariable`.
2017-02-05 12:45:13 -05:00
Corey Farwell
4e67bf92e3 Rollup merge of #39526 - canndrew:uninhabited-while-let-fix, r=arielb1
Uninhabited while-let pattern fix

This fix makes it so while-let with an unsatisfiable pattern raises a correct warning rather than an incorrect error.
2017-02-05 12:45:12 -05:00
Corey Farwell
13b8e4b416 Rollup merge of #39519 - nagisa:more-snap, r=alexcrichton
More snap cleanup

r? @alexcrichton
2017-02-05 12:45:11 -05:00
Corey Farwell
d194688c20 Rollup merge of #39514 - tbu-:pr_less_syscalls_fd, r=alexcrichton
Use less syscalls in `FileDesc::set_{nonblocking,cloexec}`

Only set the flags if they differ from what the OS reported, use
`FIONBIO` to atomically set the non-blocking IO flag on Linux.
2017-02-05 12:45:10 -05:00
Corey Farwell
ae3aafacdf Rollup merge of #39509 - petrochenkov:rb2, r=alexcrichton
libbacktrace: Fix uninitialized variable

Fixes https://github.com/rust-lang/rust/issues/39468
2017-02-05 12:45:08 -05:00
Corey Farwell
ac329cd122 Rollup merge of #39501 - phungleson:libcorebench, r=alexcrichton
Extract libcore benchmarks to a separate folder

Fix #39484

r? @alexcrichton since you seem to know about this :)

Thanks!
2017-02-05 12:45:07 -05:00
Corey Farwell
b3518aff90 Rollup merge of #39491 - dumbbell:support-aarch64-unknown-freebsd, r=alexcrichton
Support aarch64-unknown-freebsd
2017-02-05 12:45:06 -05:00
Corey Farwell
d021a3fd69 Rollup merge of #39481 - ishitatsuyuki:master, r=alexcrichton
liballoc_jemalloc: fix linking with system library

Fix #39215
2017-02-05 12:45:05 -05:00
Corey Farwell
ddd01e0d55 Rollup merge of #39472 - est31:unadjusted_only_for_win, r=nagisa
Don't use "unadjusted" ABI on non windows platforms

We introduced the unadjusted ABI to work around wrong
(buggy) ABI expectations by LLVM on Windows [1].
Therefore, it should be solely used on Windows and not
on other platforms, like right now is the case.

[1]: see this comment for details https://github.com/rust-lang/rust/pull/38482#issuecomment-269074031
2017-02-05 12:45:04 -05:00
Corey Farwell
388db666f4 Rollup merge of #39439 - king6cong:move, r=alexcrichton
rename other than copy/remove
2017-02-05 12:45:02 -05:00
bors
fc02736d59 Auto merge of #39408 - ollie27:i128_try_from, r=alexcrichton
Fix TryFrom for i128/u128

Another case of `as` cast silent truncation being error prone.

This also adds a few missing TryFrom tests to libcoretest.

cc #33417
cc #35118
2017-02-05 16:57:29 +00:00
Andrew Cann
7135d0ab94 Fix make tidy 2017-02-05 22:29:06 +08:00
bors
9c8cdb2923 Auto merge of #39563 - frewsxcv:rollup, r=frewsxcv
Rollup of 19 pull requests

- Successful merges: #38518, #38921, #38959, #38983, #39009, #39107, #39193, #39289, #39312, #39393, #39442, #39443, #39453, #39454, #39471, #39477, #39478, #39527, #39552
- Failed merges:
2017-02-05 14:15:18 +00:00
Corey Farwell
0a09274e27 Rollup merge of #39552 - zackmdavis:more_struct_aliases_stabilization_version, r=petrochenkov
correct version in which more_struct_aliases was/will be stable

The stabilizing commit is 5056a437, which is not in 1.14, but is (at
time of writing) on the 1.16 beta branch. [See discussion](https://github.com/rust-lang/rust/pull/39282#discussion_r99481687).
2017-02-05 09:14:57 -05:00
Corey Farwell
94fd315173 Rollup merge of #39527 - king6cong:bootstrap-doc, r=alexcrichton
README path correction
2017-02-05 09:14:56 -05:00
Corey Farwell
403ca55a85 Rollup merge of #39478 - alexcrichton:add-xpy, r=japaric
rustbuild: Add x.py to source tarballs

We should be sure to add our build system entry point!

Closes #39476
2017-02-05 09:14:54 -05:00
Corey Farwell
e06fa7cf07 Rollup merge of #39477 - jimmycuadra:try-from-parameter-name, r=alexcrichton
Add a name for the parameter to `TryFrom::try_from`.

Although signatures with anonymous parameters may not be deprecated or removed at this point, the team seems to agree that the ability to have an anonymous parameter is unfortunate historical baggage, and that we shouldn't create new code that uses it.

Context: https://github.com/rust-lang/rust/issues/33417#issuecomment-276933861
2017-02-05 09:14:53 -05:00