Commit graph

12678 commits

Author SHA1 Message Date
Guillaume Gomez
265b234dd6 Fix error index display 2018-01-09 22:26:26 +01:00
bors
61452e506f Auto merge of #47269 - michaelwoerister:mangled-cgu-names, r=alexcrichton
Shorten names of some compiler generated artifacts.

This PR makes the compiler mangle codegen unit names by default. The name of every codegen unit name will now be a random string of 16 characters. It also makes the file extensions of some intermediate compiler products shorter. Hopefully, these changes will reduce the pressure on tools with path length restrictions like buildbot. The change should also solve problems with case-insensitive file system.

cc #47186 and #47222

r? @alexcrichton
2018-01-09 16:04:21 +00:00
Michael Woerister
94f3037f4b Shorten names of some compiler generated artifacts. 2018-01-08 12:30:52 +01:00
Oliver Middleton
8302044a52 rustdoc: Don't import macros from private imports 2018-01-08 03:39:25 +00:00
Malo Jaffré
3f073c409a Try to fix a perf regression by updating log
Upgrade `log` to `0.4` in multiple crates.
2018-01-07 16:54:05 +01:00
ritiek
4054030542 Show line numbers 2018-01-06 11:43:34 +05:30
bors
fdc6ca44c3 Auto merge of #47155 - nerd2:debuginfo_test_fix, r=alexcrichton
Restore working debuginfo tests by trimming comments from non-header directive lines

I noticed when adding a debuginfo test that nothing I did caused the test to fail. Tracing back this seems to have been caused by 3e6c83de1d which broke parsing of the command/check lines, leaving all tests passing without any checking. This commit provides a basic (although still not very robust) restoration of tests and a should-fail test which checks the parser is running
2018-01-06 05:20:22 +00:00
ritiek
45c2c9afa5 Clean output 2018-01-04 19:56:57 +05:30
bors
d96cc6e286 Auto merge of #47127 - EdSchouten:cloudabi-tests, r=kennytm
First cut at getting some part of the test suite working for CloudABI

I am currently working on creating a Docker container for automated CI for CloudABI. Here are some of the trivial changes that need to land to make tests pass.
2018-01-03 17:00:24 +00:00
Sam
28dd4d974e Restore working debuginfo tests by trimming comments from non-header directive lines 2018-01-03 15:03:00 +00:00
kennytm
d6cf5a56ac Rollup merge of #47117 - tinaun:no_more_dups, r=frewsxcv
[unstable book] remove duplicate entries

if a unstable feature is a language feature, it shouldn't also have a library feature stub generated
2018-01-03 16:57:58 +08:00
Ed Schouten
04ce26a6f6 Force the creation of libs instead of dylibs on CloudABI.
CloudABI doesn't support the creation of dynamic libraries. Any test
making use of auxiliary libraries will fail without this change applied.
2018-01-02 14:18:40 +01:00
tinaun
5c25b0c594 prevent generating duplicate stubs 2018-01-01 19:56:40 -05:00
bors
b9cf26c38a Auto merge of #47106 - EdSchouten:compiletest-cloudabi, r=alexcrichton
Tiny fixes to make compiletest work for CloudABI cross builds

I'm currently working toward getting a `src/ci/docker` container working to do isolated/automated builds and testing of `x86_64-unknown-cloudabi`. This is working pretty well, but still requires some fixes to `libtest` and `compiletest`. Here is the first set of fixes that I had to apply.
2018-01-02 00:31:07 +00:00
Ed Schouten
7b5543d7b6 Move the TestPaths structure from libtest to compiletest.
This structure doesn't seem to be used by libtest itself. It is used by
compiletest, but never passed on to anything externally. This makes it
easier to get the testing framework to work for CloudABI crossbuilds, as
CloudABI currently lacks PathBuf, which is used by TestPaths.
2018-01-01 19:30:19 +01:00
Ed Schouten
79b25c666f Add CloudABI to the list of supported targets in compiletest.
Without this change, compiletest will fail to run when targetting
CloudABI.
2018-01-01 19:27:58 +01:00
Malo Jaffré
8395798d1a Ignore remaining broken links caused by rustdoc bugs
As pointed out by @ollie27.
2018-01-01 14:44:11 +01:00
Malo Jaffré
8ed13d643a Update crates and submodules to pull doc fixes
Update `rand` crate to `0.3.19`.
Update `log` crate to `0.3.9` and `0.4.1`.
Update `parking_lot_core` crate to `0.2.9`.
Upgrade all flate2 dependencies to `1.0.1`.
- Update `rust-installer` submodule.
2018-01-01 14:44:10 +01:00
bors
f3ca88cff7 Auto merge of #47064 - kennytm:force-trailing-newlines, r=estebank
Add a tidy check for missing or too many trailing newlines.

I've noticed recently there are lots of review comments requesting to fix trailing newlines. If this is going to be an official style here, it's better to let the CI do this repetitive check.
2018-01-01 04:09:51 +00:00
Felix Schütt
7c13fa3730 Update cargo 2017-12-31 22:48:33 +01:00
kennytm
4577a70934
Add a tidy check to ensure all files have 1 or 2 trailing newlines. 2017-12-30 15:50:53 +08:00
Igor Matuszewski
5081b94ac1 Update rustfmt to 0.3.4 2017-12-29 10:42:09 +01:00
Igor Matuszewski
d332277819 Update RLS 2017-12-28 20:06:29 +01:00
bors
503153e950 Auto merge of #46554 - kennytm:45861-step-4-5-6-7-upload-test-result-and-remove-toolstate-toml, r=alexcrichton
[auto-toolstate] Upload the toolstate result to an external git repository, and removes BuildExpectation

This PR consists of 3 commits.

1. (Steps 4–6) The `toolstate.json` output previously collected is now pushed to the https://github.com/rust-lang-nursery/rust-toolstate repository.
2. (Step 7) Revert commit ab018c7, thus removing all traces of `BuildExpectation` and `toolstate.toml`.
3. (Step 8) Adjust CONTRIBUTION.md for the new procedure.

These are the last steps of #45861. After this PR, the toolstate will be automatically computed and published to https://rust-lang-nursery.github.io/rust-toolstate/. There is no need to manage toolstate.toml again.

Closes #45861.
2017-12-26 18:03:00 +00:00
kennytm
44954ab52d
Clarify toolstate names. Move publish.py to a more convenient location. 2017-12-27 00:00:46 +08:00
kennytm
2566fa25c7
Revert "Add a file to trivially disable tool building or testing"
This reverts commit ab018c76e1.

This also adds the `ToolBuild::is_ext_tool` field to replace the previous
`ToolBuild::expectation` field, to indicate whether a build-failure of
certain tool is essential.
2017-12-27 00:00:45 +08:00
kennytm
0692b3df2e
cargo update and add miri as the rustc workspace member. 2017-12-27 00:00:44 +08:00
kennytm
720a4b53f5 Rollup merge of #46940 - EdSchouten:cloudabi, r=alexcrichton
Add support for CloudABI targets to the rustc backend.

CloudABI is a sandboxed UNIX-like runtime environment. It is a
programming environment that uses a capability-based security model. In
practice this means that many POSIX interfaces are present, except for
ones that try to access resources out of thin air. For example, open()
is gone, but openat() is present.

Right now I'm at the point where I can compile very basic CloudABI
applications on all four supported architectures (ARM and x86, 32 and 64
bits). The next step will be to get libstd to work. Patches for that are
outside the scope of this change.

More info: https://nuxi.nl/cloudabi/ https://github.com/NuxiNL/cloudlibc/
2017-12-26 15:18:58 +08:00
Corey Farwell
66ef6b9c09 Deprecate [T]::rotate in favor of [T]::rotate_{left,right}.
Background
==========

Slices currently have an unstable [`rotate`] method which rotates
elements in the slice to the _left_ N positions. [Here][tracking] is the
tracking issue for this unstable feature.

```rust
let mut a = ['a', 'b' ,'c', 'd', 'e', 'f'];
a.rotate(2);
assert_eq!(a, ['c', 'd', 'e', 'f', 'a', 'b']);
```

Proposal
========

Deprecate the [`rotate`] method and introduce `rotate_left` and
`rotate_right` methods.

```rust
let mut a = ['a', 'b' ,'c', 'd', 'e', 'f'];
a.rotate_left(2);
assert_eq!(a, ['c', 'd', 'e', 'f', 'a', 'b']);
```

```rust
let mut a = ['a', 'b' ,'c', 'd', 'e', 'f'];
a.rotate_right(2);
assert_eq!(a, ['e', 'f', 'a', 'b', 'c', 'd']);
```

Justification
=============

I used this method today for my first time and (probably because I’m a
naive westerner who reads LTR) was surprised when the docs mentioned that
elements get rotated in a left-ward direction. I was in a situation
where I needed to shift elements in a right-ward direction and had to
context switch from the main problem I was working on and think how much
to rotate left in order to accomplish the right-ward rotation I needed.

Ruby’s `Array.rotate` shifts left-ward, Python’s `deque.rotate` shifts
right-ward. Both of their implementations allow passing negative numbers
to shift in the opposite direction respectively.

Introducing `rotate_left` and `rotate_right` would:

- remove ambiguity about direction (alleviating need to read docs 😉)
- make it easier for people who need to rotate right

[`rotate`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rotate
[tracking]: https://github.com/rust-lang/rust/issues/41891
2017-12-24 23:01:24 -08:00
Alex Crichton
325d739456 Update Cargo and its dependencies
Just a routine update!
2017-12-24 07:46:48 -08:00
Ed Schouten
41567525fe Add CloudABI to the list of supported targets.
Backend definitions for these targets are present, meaning we can start
announcing this target. While there, sort the list alphabetically.
2017-12-22 09:39:40 +01:00
bors
c2ecab1121 Auto merge of #46732 - estebank:silence-recovered-blocks, r=petrochenkov
Do not emit type errors on recovered blocks

When a parse error occurs on a block, the parser will recover and create
a block with the statements collected until that point. Now a flag
stating that a recovery has been performed in this block is propagated
so that the type checker knows that the type of the block (which will be
identified as `()`) shouldn't be checked against the expectation to
reduce the amount of irrelevant diagnostic errors shown to the user.

Fix #44579.
2017-12-22 07:22:33 +00:00
Esteban Küber
d90d5d19da Mark clippy as broken 2017-12-21 15:09:26 -08:00
kennytm
71c6d23612 Rollup merge of #46636 - frewsxcv:frewsxcv-fn-box, r=estebank
Replace libtest/lib.rs:FnBox with std::boxed::FnBox.

Fixes https://github.com/rust-lang/rust/issues/41810.
2017-12-22 02:50:45 +08:00
bors
957dc8de63 Auto merge of #46531 - cramertj:no-mo-modrs, r=nikomatsakis
Implement non-mod.rs mod statements

Fixes https://github.com/rust-lang/rust/issues/45385, cc https://github.com/rust-lang/rust/issues/44660

This will fail tidy right now because it doesn't recognize my UI tests as feature-gate tests. However, I'm not sure if compile-fail will work out either because compile-fail usually requires there to be error patterns in the top-level file, which isn't possible with this feature. What's the recommended way to handle this?
2017-12-21 05:24:45 +00:00
kennytm
4d9ed87437 Rollup merge of #46751 - michaelwoerister:c-incremental, r=alexcrichton
incr.comp.: Add `-C incremental` in addition to `-Z incremental`

This PR adds a stable commandline option for invoking incremental compilation.

r? @alexcrichton
2017-12-20 21:21:54 +08:00
Taylor Cramer
e3c229802f Break rls 2017-12-19 14:59:14 -08:00
Taylor Cramer
b82e2e9db1 Break rustfmt 2017-12-19 14:59:13 -08:00
Taylor Cramer
07f51fb868 Implement non-mod.rs mod statements 2017-12-19 14:58:51 -08:00
Michael Woerister
796264b6df incr.comp.: Add -Cincremental in addition to -Zincremental 2017-12-18 14:37:24 +01:00
bors
3cc68bac7c Auto merge of #46436 - eddyb:unpacked, r=arielb1,oli-obk
Detect unaligned fields via `aggregate.align < field.align`, instead of a `packed` flag.

Closes #46423. cc @oli-obk
2017-12-17 15:46:00 +00:00
Eduard-Mihai Burtescu
799a83ca2f Mark miri as broken. 2017-12-17 16:34:54 +02:00
John Kåre Alsaker
970c613e4a Add sync module to rustc_data_structures 2017-12-17 14:14:51 +01:00
bors
4f2ef415ba Auto merge of #46743 - oli-obk:miri, r=eddyb
Some miri cleanups

r? @eddyb
2017-12-16 16:16:16 +00:00
Oliver Schneider
2d161f10e5
Allow easily creating cheap eval context instances 2017-12-15 16:56:58 +01:00
Corey Farwell
4f04f975ae Replace libtest/lib.rs:FnBox with std::boxed::FnBox.
Fixes https://github.com/rust-lang/rust/issues/41810.
2017-12-15 09:11:14 -05:00
Oliver Schneider
b1e759762e
Update the rls and rustfmt submodules 2017-12-15 12:29:20 +01:00
bors
2f351415e5 Auto merge of #46641 - petrochenkov:nohelp2, r=nikomatsakis
Move compile-fail tests with NOTE/HELP annotations to UI

Remove NOTE/HELP annotations from UI tests

cc https://github.com/rust-lang/rust/issues/44844 @oli-obk @est31
r? @nikomatsakis
2017-12-15 00:11:40 +00:00
bors
0077d128d3 Auto merge of #45047 - durka:trait-alias, r=petrochenkov
trait alias infrastructure

This will be an implementation of trait aliases (RFC 1733, #41517).

Progress so far:

- [x] Feature gate
- [x] Add to parser
  - [x] `where` clauses
    - [x] prohibit LHS type parameter bounds via AST validation https://github.com/rust-lang/rust/pull/45047#discussion_r143575575
- [x] Add to AST and HIR
  - [x] make a separate PathSource for trait alias contexts https://github.com/rust-lang/rust/pull/45047#discussion_r143353932
- [x] Stub out enough of typeck and resolve to just barely not ICE

Postponed:

- [ ] Actually implement the alias part
- [ ] #21903
- [ ] #24010

I need some pointers on where to start with that last one. The test currently does this:

```
error[E0283]: type annotations required: cannot resolve `_: CD`
  --> src/test/run-pass/trait-alias.rs:34:16
   |
34 |     let both = foo();
   |                ^^^
   |
   = note: required by `foo`
```
2017-12-14 20:57:09 +00:00
Vadim Petrochenkov
c3a7d36c6e Support regexes in custom normalization in UI tests 2017-12-14 23:26:40 +03:00