Commit graph

1045 commits

Author SHA1 Message Date
Paolo Teti
d1e7ab9cd3 Add target for Big-endian ARM Cortex-R4F/R5F MCUs
The ARM Real-Time (‘R’) profile provides high-performing processors
for safety-critical environments.
2018-05-16 22:19:02 +02:00
Nick Cameron
80bfca4ab2 Update RLS and Rustfmt 2018-05-16 15:59:55 +12:00
Guillaume Gomez
934e37aeb4
Rollup merge of #50632 - GuillaumeGomez:minification, r=ollie27
Add minification process

r? @QuietMisdreavus
2018-05-15 14:26:59 +02:00
bors
d5ecf70fd6 Auto merge of #50259 - GuillaumeGomez:improve-results, r=ollie27
Rustdoc improvements

Fixes #50658. (last commit)

A lot of small improvements.

r? @QuietMisdreavus
2018-05-15 05:39:35 +00:00
Oliver Schneider
3a5b13ad36
Bump clippy 2018-05-14 16:11:57 +02:00
John Kåre Alsaker
022dff47e3 Add a Rayon thread pool 2018-05-13 01:28:20 +02:00
Guillaume Gomez
f2bc09e68b Fix invalid deduplication 2018-05-12 19:16:37 +02:00
Guillaume Gomez
e2db0a5630 Update js tester tool 2018-05-12 19:15:07 +02:00
varkor
bd441779ff Display the name of the failed file in tidy/libcoretest 2018-05-12 08:39:05 -06:00
varkor
ae41d6c32f Ignore non .rs files for tidy libcoretest
Previously, any file would be read, which is both unnecessary, and causes issues if irrelevant non-Unicode files were read (e.g. `.DS_STORE`).
2018-05-12 08:39:05 -06:00
bors
0cd465087d Auto merge of #50105 - mixi:crt-included, r=alexcrichton
Use the correct crt*.o files when linking musl targets.

This is supposed to support optionally using the system copy of musl
libc instead of the included one if supported. This currently only
affects the start files, which is enough to allow building rustc on musl
targets.

Most of the changes are analogous to crt-static.

Excluding the start files is something musl based distributions usually patch into their copy of rustc:
  - eb064c8/community/rust/musl-fix-linux_musl_base.patch
  - 77400fc/srcpkgs/rust/patches/link-musl-dynamically.patch

For third-party distributions that not yet carry those patches it would be nice if it was supported without the need to patch upstream sources.

## Reasons
### What breaks?
Some start files were missed when originally writing the logic to swap in musl start files (gcc comes with its own start files, which are suppressed by -nostdlib, but not manually included later on). This caused #36710, which also affects rustc with the internal llvm copy or any other system libraries that need crtbegin/crtend.

### How is it fixed?
The system linker already has all the logic to decide which start files to include, so we can just defer to it (except of course if it doesn't target musl).

### Why is it optional?
In #40113 it was first tried to remove the start files, which broke compiling musl-targeting static binaries with a glibc-targeting compiler. This is why it eventually landed without removing the start files. Being an option side-steps the issue.

### Why are the start files still installed?
This has the nice side-effect, that the produced rust-std-* binaries can still be used by on a glibc-targeting system with a rustc built against glibc.

## Does it work?
With the following build script (using [musl-cross-make](https://github.com/richfelker/musl-cross-make)): https://shadowice.org/~mixi/rust-musl/build.sh, I was able to cross-compile a musl-host musl-targeting rustc on a glibc-based system. The resulting binaries are at https://shadowice.org/~mixi/rust-musl/binaries/. This also requires #50103 and #50104 (which are also applied to the branch the build script uses).
2018-05-11 19:46:16 +00:00
Oliver Schneider
847bb14ee7
Update the clippy and miri submodules 2018-05-11 14:11:06 +02:00
Johannes Nixdorf
490d05055a compiletest: escape CXX the same way as CC for MSVC 2018-05-11 09:02:14 +02:00
bors
c8a3ec1ce6 Auto merge of #50432 - GuillaumeGomez:fix-vec-new-search, r=QuietMisdreavus
Fix rustdoc pathes search

Fixes #50086.

Depends on #50302.

r? @QuietMisdreavus
2018-05-10 07:52:15 +00:00
Guillaume Gomez
2c91b49fe4 Add exact-check option to rustdoc-js tests 2018-05-09 19:17:13 +02:00
kennytm
e6a309e352
Rollup merge of #50456 - alexcrichton:update-cargo, r=alexcrichton
Update the Cargo submodule

Hopefully brining in a few fixes to Cargo regressions!
2018-05-09 17:20:55 +08:00
bors
8ff4b42064 Auto merge of #50530 - oli-obk:miri, r=kennytm
Fix thinning pointers to extern types in miri

r? @kennytm as an alternative to disabling the miri build

fixes #50495
2018-05-08 17:20:01 +00:00
Alex Crichton
576aab9dfe Update the Cargo/stdsimd submodules
Hopefully brining in a few fixes to Cargo regressions as well as some new
stdsimd functions!
2018-05-08 08:20:47 -07:00
Oliver Schneider
5258871825
Fix thinning pointers to extern types in miri 2018-05-08 13:52:20 +02:00
Alex Butler
640e937ec3
Update clippy 0.0.197 2018-05-07 16:03:42 +01:00
Alex Butler
e4a0514bbe
Update rls 1263f1f
Fix rls-clippy feature compile
2018-05-07 15:25:37 +01:00
bors
c88992d001 Auto merge of #50000 - michaelwoerister:cross-lang-lto, r=alexcrichton
Add some groundwork for cross-language LTO.

Implements part of #49879:
- Adds a `-Z cross-lang-lto` flag to rustc
- Makes sure that bitcode is embedded in object files if the flag is set.

This should already allow for using cross language LTO for staticlibs (where one has to invoke the linker manually anyway). However, `rustc` will not try to enable LTO for its own linker invocations yet.

r? @alexcrichton
2018-05-07 08:41:07 +00:00
bors
760274f7b3 Auto merge of #50434 - nrc:tool-bustage-infra, r=alexcrichton
Ping infra team on all tool bustage

r? @kennytm

cc @rust-lang/core as discussed at today's meeting
2018-05-07 03:47:41 +00:00
bors
700165d7ae Auto merge of #50468 - nrc:test-rustfmt, r=alexcrichton
Pass a test directory to rustfmt

Another attempt to fix the rustfmt tests. `RUSTFMT_TEST_DIR` is consumed by Rustfmt in the latext commit (thus the Rustfmt update) because we need a place to create temp files that won't be read-only.

r? @alexcrichton
2018-05-06 22:29:01 +00:00
bors
6f721f54c6 Auto merge of #50466 - kennytm:rustbuild-stage0-lib-test, r=Mark-Simulacrum
rustbuild: Allow quick testing of libstd and libcore at stage0

This PR implemented two features:

1. Added a `--no-doc` flag to allow testing a crate *without* doc tests. In this mode, we don't need to build rustdoc, and thus we can skip building the stage2 compiler. (Ideally stage0 test should use the bootstrap rustdoc, but I don't want to mess up the core builder logic here)

2. Moved all libcore tests externally and added a tidy test to ensure we don't accidentally add `#[test]` into libcore.

After this PR, one could run `./x.py test --stage 0 --no-doc src/libstd` to test `libstd` without building the compiler, thus enables us to quickly test new library features.
2018-05-06 06:33:53 +00:00
Nick Cameron
df97dd1d05 Pass a test directory to rustfmt 2018-05-06 08:39:37 +12:00
bors
24c5f153fd Auto merge of #50276 - Zoxc:build-cleanup, r=alexcrichton
Misc tweaks

This:
- ~~Add explicit dependencies on `getops`~~
- Fixes the libtest-json test when `RUST_BACKTRACE=1` is set
- ~~Sets `opt-level` to `3`~~
- Removes the use of `staged_api` from `rustc_plugin`
- ~~Enables the Windows Error Reporting dialog when running rustc during bootstrapping~~
- Disables Windows Error Reporting dialog when running compiletest tests
- Enables backtraces when running rustc during bootstrapping
- ~~Removes the `librustc` dependency on `libtest`~~
- Triggers JIT debugging on Windows if rustc panics during bootstrapping

r? @alexcrichton
2018-05-05 18:58:17 +00:00
John Kåre Alsaker
e24cbe2da0 Misc tweaks 2018-05-05 20:36:46 +02:00
kennytm
f24915b67f
Added a tidy test to ensure libcore cannot contain any tests. 2018-05-06 02:34:07 +08:00
bors
fc6b2c5fef Auto merge of #50423 - hberntsen:armv5te_unknown_linux_musl, r=alexcrichton
Add armv5te-unknown-linux-musl target

This PR adds the armv5te-unknown-linux-musl target. The following steps should let you produce a fully statically linked binary now:
1. Running `./src/ci/docker/run.sh dist-armv5te-linux-musl`
2. Changing the run.sh script to start bash instead of the build process and running the container
3.
   ```sh
   export USER=root
   export PATH=/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin:$PATH
   ```
4. Configuring Cargo
   ```yaml
   [target.armv5te-unknown-linux-musl]
   linker = "arm-linux-gnueabi-gcc"
   ```
5. Building a project
   ```sh
   cargo new --bin hello
   cd hello
   cargo build --target=armv5te-unknown-linux-musl --release
   ```
2018-05-05 06:03:47 +00:00
Alex Crichton
6f2d023028 Fold rustfix tests back into the UI test suite 2018-05-04 15:01:28 -07:00
Pascal Hertleif
a563027cb8 Use published rustfix 0.2 version 2018-05-04 15:01:28 -07:00
Alex Crichton
fa9e55faeb test: Make a dedicated testsuite for rustfix
This commit adds a dedicated mode to compiletest for running rustfix tests,
adding a new `src/test/rustfix` directory which will execute all tests as a
"rustfix" test, namely requiring that a `*.fixed` is next to the main file which
is the result of the rustfix project's application of fixes.

The `rustfix` crate is pulled in to actually perform the fixing, and the rustfix
compiletest mode will assert a few properties about the fixing:

* The expected fixed output must be the same as rustc's output suggestions
  applied to the original code.
* The fixed code must compile successfully
* The fixed code must have no further diagnostics emitted about it
2018-05-04 15:01:28 -07:00
Pascal Hertleif
b264504403 tidy 2018-05-04 15:01:28 -07:00
Pascal Hertleif
9680f3b381 Skip NLL compiletest in rustfix mode for now 2018-05-04 15:01:28 -07:00
Pascal Hertleif
c02aedfcaf Use rustfix' suggestion fixing API
Uses branch from <https://github.com/rust-lang-nursery/rustfix/pull/63>
until we publish a new release.
2018-05-04 15:01:28 -07:00
Pascal Hertleif
fd6aa149bc First step towards rustfix compiletest mode
This is the first small step towards testing auto-fixable compiler
suggestions using compiletest. Currently, it only checks if next to a
UI test there also happens to a `*.rs.fixed` file, and then uses rustfix
(added as external crate) on the original file, and asserts that it
produces the fixed version.

To show that this works, I've included one such test. I picked this test
case at random (and because it was simple) -- It is not relevant to the
2018 edition. Indeed, in the near future, we want to be able to restrict
rustfix to edition-lints, so this test cast might go away soon.

In case you still think this is somewhat feature-complete, here's a
quick list of things currently missing that I want to add before telling
people they can use this:

- [ ] Make this an actual compiletest mode, with `test [fix] …` output
  and everything
- [ ] Assert that fixed files still compile
- [ ] Assert that fixed files produce no (or a known set of) diagnostics
  output
- [ ] Update `update-references.sh` to support rustfix
- [ ] Use a published version of rustfix (i.e.: publish a new version
  rustfix that exposes a useful API for this)
2018-05-04 15:01:28 -07:00
bors
91db9dcf37 Auto merge of #49870 - pnkfelix:issue-27282-immut-borrow-all-pat-ids-in-guards, r=nikomatsakis
Immutably and implicitly borrow all pattern ids for their guards (NLL only)

This is an important piece of rust-lang/rust#27282.

It applies only to NLL mode. It is a change to MIR codegen that is currently toggled on only when NLL is turned on. It thus affect MIR-borrowck but not the earlier static analyses (such as the type checker).

This change makes it so that any pattern bindings of type T for a match arm will map to a `&T` within the context of the guard expression for that arm, but will continue to map to a `T` in the context of the arm body.

To avoid surfacing this type distinction in the user source code (which would be a severe change to the language and would also require far more revision to the compiler internals), any occurrence of such an identifier in the guard expression will automatically get a deref op applied to it.

So an input like:
```rust
let place = (1, Foo::new());
match place {
  (1, foo) if inspect(foo) => feed(foo),
  ...
}
```
will be treated as if it were really something like:
 ```rust
let place = (1, Foo::new());
match place {
    (1, Foo { .. }) if { let tmp1 = &place.1; inspect(*tmp1) }
                    => { let tmp2 = place.1; feed(tmp2) },
    ...
}
```

And an input like:
```rust
let place = (2, Foo::new());
match place {
    (2, ref mut foo) if inspect(foo) => feed(foo),
    ...
}
```
will be treated as if it were really something like:

```rust
let place = (2, Foo::new());
match place {
    (2, Foo { .. }) if { let tmp1 = & &mut place.1; inspect(*tmp1) }
                    => { let tmp2 = &mut place.1; feed(tmp2) },
    ...
}
```

In short, any pattern binding will always look like *some* kind of `&T` within the guard at least in terms of how the MIR-borrowck views it, and this will ensure that guard expressions cannot mutate their the match inputs via such bindings. (It also ensures that guard expressions can at most *copy* values from such bindings; non-Copy things cannot be moved via these pattern bindings in guard expressions, since one cannot move out of a `&T`.)
2018-05-04 15:00:13 +00:00
Harm Berntsen
80f1912d83
Add eabi suffix to armv5te musl target 2018-05-04 08:47:24 +02:00
Nick Cameron
4952426c50 Update RLS and Rustfmt (and Cargo) 2018-05-04 12:33:56 +12:00
Nick Cameron
28dfc07a35 Ping infra team on all tool bustage 2018-05-04 10:21:05 +12:00
kennytm
5976e8ac6b
Rollup merge of #50417 - matklad:pr-50379, r=alexcrichton
Update Cargo

This should fix RLS

cc https://github.com/rust-lang/rust/pull/50379, https://github.com/rust-lang/cargo/pull/5465
2018-05-04 02:12:53 +08:00
Harm Berntsen
b71f6364d2
Add armv5te-unknown-linux-musl target 2018-05-03 16:53:04 +02:00
Aleksey Kladov
70c52e5e19 Update Cargo 2018-05-03 16:49:47 +03:00
Felix S. Klock II
f67c683950 Include the test name when reporting that an expected line was not found in a mir-opt test. 2018-05-03 14:03:16 +02:00
Michael Woerister
fefed13747 Support test header directives in run-make mode too. 2018-05-03 02:30:14 -07:00
kennytm
4e3da52d02
Rollup merge of #50302 - GuillaumeGomez:add-query-search-order-check, r=QuietMisdreavus
Add query search order check

Fixes #50180.

r? @QuietMisdreavus
2018-05-03 16:11:26 +08:00
Nick Cameron
6457241133 Update RLS and Rustfmt 2018-05-02 10:20:49 +12:00
Simon Sapin
21941c8129 Update Cargo to 2018-04-28 122fd5be5201913d42e219e132d6569493583bca 2018-04-30 17:04:42 +02:00
Nick Cameron
410e2011bd Update Rustfmt 2018-04-30 14:10:30 +12:00