Commit Graph

94 Commits

Author SHA1 Message Date
Jonathan Turner
b17904234a Rollup merge of #35448 - srinivasreddy:rf_compiletest, r=nikomatsakis
run rustfmt on compiletest folder in src/tools/ folder
2016-08-11 06:33:58 -07:00
Jonathan Turner
9b510ba39a Update cargo SHA to latest cargo 2016-08-09 10:14:08 -07:00
Jonathan Turner
fad4f32c31 Turn on new errors, json mode. Remove duplicate unicode test 2016-08-07 07:46:49 -07:00
Srinivas Reddy Thatiparthy
abe1cc79d4
run rustfmt on compiletest folder in src/tools/ folder 2016-08-07 10:21:17 +05:30
bors
7bf54f90d6 Auto merge of #35116 - jseyfried:groundwork_for_new_import_semantics, r=nrc
resolve: diagnostics improvement and groundwork for RFC 1560

Fixes #35115, fixes #35135, and lays groundwork for #32213 (cc #35120).
r? @nrc
2016-08-05 14:42:42 -07:00
Jeffrey Seyfried
de5eaab87c Update cargo_test hash. 2016-08-05 19:28:34 +00:00
Scott A Carr
d5908a3250 run mir opt test with mir-opt-level=3 so they fire 2016-08-02 14:47:53 -07:00
bors
d46ed83e2e Auto merge of #34715 - scottcarr:mir-test, r=nikomatsakis
Add MIR Optimization Tests

I've starting working on the infrastructure for testing MIR optimizations.

The plan now is to have a set of test cases (written in Rust), compile them with -Z dump-mir, and check the MIR before and after each pass.
2016-07-21 19:44:59 -07:00
Scott A Carr
8f9844dd5c add mir optimization tests, dump-mir-dir option 2016-07-20 19:41:39 -07:00
Guillaume Gomez
8dc79ecd13 Update make tidy 2016-07-11 23:24:49 +02:00
bors
696b703b5a Auto merge of #34530 - alexcrichton:stabilize-1.11, r=aturon
std: Stabilize APIs for the 1.11.0 release

Although the set of APIs being stabilized this release is relatively small, the
trains keep going! Listed below are the APIs in the standard library which have
either transitioned from unstable to stable or those from unstable to
deprecated.

Stable

* `BTreeMap::{append, split_off}`
* `BTreeSet::{append, split_off}`
* `Cell::get_mut`
* `RefCell::get_mut`
* `BinaryHeap::append`
* `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past
  libstd stabilizations
* `Iterator::sum`
* `Iterator::product`

Deprecated

* `{f32, f64}::next_after`
* `{f32, f64}::integer_decode`
* `{f32, f64}::ldexp`
* `{f32, f64}::frexp`
* `num::One`
* `num::Zero`

Added APIs (all unstable)

* `iter::Sum`
* `iter::Product`
* `iter::Step` - a few methods were added to accomodate deprecation of One/Zero

Removed APIs

* `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is
  unstable

Closes #27739
Closes #27752
Closes #32526
Closes #33444
Closes #34152
cc #34529 (new tracking issue)
2016-07-03 14:33:55 -07:00
Alex Crichton
3016626c3a std: Stabilize APIs for the 1.11.0 release
Although the set of APIs being stabilized this release is relatively small, the
trains keep going! Listed below are the APIs in the standard library which have
either transitioned from unstable to stable or those from unstable to
deprecated.

Stable

* `BTreeMap::{append, split_off}`
* `BTreeSet::{append, split_off}`
* `Cell::get_mut`
* `RefCell::get_mut`
* `BinaryHeap::append`
* `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past
  libstd stabilizations
* `Iterator::sum`
* `Iterator::product`

Deprecated

* `{f32, f64}::next_after`
* `{f32, f64}::integer_decode`
* `{f32, f64}::ldexp`
* `{f32, f64}::frexp`
* `num::One`
* `num::Zero`

Added APIs (all unstable)

* `iter::Sum`
* `iter::Product`
* `iter::Step` - a few methods were added to accomodate deprecation of One/Zero

Removed APIs

* `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is
  unstable

Closes #27739
Closes #27752
Closes #32526
Closes #33444
Closes #34152
cc #34529 (new tracking issue)
2016-07-03 10:49:01 -07:00
Manish Goregaokar
533ce9a7a6 Rollup merge of #34566 - ollie27:linkchecker_invalid_urls, r=alexcrichton
Reject invalid urls in linkchecker

For example root-relative links will now be rejected.

Also remove some exceptions which have since been fixed and fix a typo in
the broken redirect handling.
2016-07-02 15:46:49 +05:30
Manish Goregaokar
76705df226 Rollup merge of #34551 - GuillaumeGomez:runtest_improvement, r=alexcrichton
Improve runtest output
2016-07-02 15:46:49 +05:30
ggomez
737d854521 Improve runtest output
It now prints only unexpected errors and expected errors which weren't found
2016-06-30 15:16:07 +02:00
Oliver Middleton
01386e6492 Reject invalid urls in linkchecker
For example root-relative links will now be rejected.

Also remove some exceptions which have since been fixed and fix a typo in
the broken redirect handling.
2016-06-29 22:58:57 +01:00
Manish Goregaokar
5bd3ef81c6 Rollup merge of #34499 - michaelwoerister:lldb-blacklist, r=alexcrichton
Disable debuginfo tests for a given blacklist of LLDB versions

Anyone having trouble with most LLDB tests failing on OSX, please report your LLDB version here so I can add it to the blacklist.

Blacklisted versions so far:
* lldb-350.*

cc @rust-lang/tools
cc @tedhorst @indutny @jonathandturner (people from the original bug report)

Fixes #32520.
2016-06-29 21:21:23 +05:30
Michael Woerister
f41de0ff3a Disable debuginfo tests for a given blacklist of LLDB versions 2016-06-27 14:38:41 -04:00
Jonathan Turner
6ae3502134 Move errors from libsyntax to its own crate 2016-06-23 08:07:35 -04:00
bors
bb4a79b087 Auto merge of #34220 - srinivasreddy:rf_cargotest, r=brson
run rustfmt on cargotest folder in src/tools/cargotest
2016-06-15 13:11:19 -07:00
Srinivas Reddy Thatiparthy
028073dd60 run rustfmt on cargotest folder in src/tools/cargotest 2016-06-11 19:05:31 +05:30
Srinivas Reddy Thatiparthy
c9c2a034a3 run rustfmt on linkchecker folderin src/tools/linkchecker 2016-06-11 19:04:28 +05:30
bors
1c975eafa9 Auto merge of #34039 - ollie27:linkchecker_dirs, r=alexcrichton
linkchecker: Treat directory links as errors

Directory links don't work well offline so they should be treated as errors.

All examples of this I know of are fixed in #34021.
2016-06-05 09:07:38 -07:00
bors
c81c75076c Auto merge of #33803 - WiSaGaN:feature/rename-main-thread, r=alexcrichton
Rename main thread from "<main>" to "main".

Fix issue #33789

We may need to discuss whether this counts as a breaking change since code may check the main thread name against "\<main\>". Discussion is in #33789
2016-06-03 19:36:32 -07:00
Oliver Middleton
8e0baf492a linkchecker: Treat directory links as errors
Directory links don't work well offline so they should be treated as errors.
2016-06-02 14:29:36 +01:00
Wangshan Lu
f67c4bb6ce Update cargo version in cargotest 2016-06-02 18:53:40 +08:00
Alex Crichton
fa45670ce4 mk: Prepare for a new stage0 compiler
This commit prepares the source for a new stage0 compiler, the 1.10.0 beta
compiler. These artifacts are hot off the bots and should be ready to go.
2016-05-31 16:11:49 -07:00
bors
397cfaec0c Auto merge of #33848 - alexcrichton:android-gdb-sysroot, r=michaelwoerister
test: Use `set sysroot` for more NDK compatibility

Recent versions of the Android NDK no longer ship debuggers like
`arm-linux-androideabi-gdb`, but instead one prebuilt binary `gdb`. We can
symlink this into place at least to get our detection still working, but it now
needs to be told what the sysroot is so it can correctly do... something. Long
story short, tests didn't pass with this change and after this change they pass.
2016-05-28 19:19:27 -07:00
Eduard Burtescu
a619901e3d trans: save metadata even with -Z no-trans. 2016-05-25 08:46:36 +03:00
Alex Crichton
0f3e8650f7 test: Use set sysroot for more NDK compatibility
Recent versions of the Android NDK no longer ship debuggers like
`arm-linux-androideabi-gdb`, but instead one prebuilt binary `gdb`. We can
symlink this into place at least to get our detection still working, but it now
needs to be told what the sysroot is so it can correctly do... something. Long
story short, tests didn't pass with this change and after this change they pass.
2016-05-24 09:51:29 -07:00
bors
0c5d651d0b Auto merge of #33688 - jonathandturner:fix_old_school, r=nikomatsakis
Fix for old school error issues, improvements to new school

This PR:
* Fixes some old school error issues, specifically #33559, #33543, #33366
* Improves wording borrowck errors with match patterns
* De-emphasize multi-line spans, so we don't color the single source character when we're trying to say "span starts here"
* Rollup of #33392 (which should help fix #33390)

r? @nikomatsakis
2016-05-18 21:19:07 -07:00
Niko Matsakis
08837d2975 pass revision and incr_comp directory to auxbuild
This is needed for incremental compilation harness to support
cross-crate testing. Also support cfg for typechecking prettyprint
2016-05-18 10:11:35 -04:00
Jonathan Turner
175ecfefd5 Improve a few errors and fix #33366 2016-05-17 06:46:08 -04:00
Jonathan Turner
3e9747af49 De-emph minimized spans, add better debugging output 2016-05-17 06:46:08 -04: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
Niko Matsakis
225fa0faff dump outputs, diff on UI test failure 2016-05-13 15:22:45 -07:00
Niko Matsakis
cb112dc8cf add UI testing framework 2016-05-13 15:22:45 -07:00
Eduard Burtescu
5541fdfcd1 Use symlink_metadata in tidy to avoid panicking on broken symlinks. 2016-05-11 20:09:50 +03:00
Alex Crichton
0ec321f7b5 rustc: Implement custom panic runtimes
This commit is an implementation of [RFC 1513] which allows applications to
alter the behavior of panics at compile time. A new compiler flag, `-C panic`,
is added and accepts the values `unwind` or `panic`, with the default being
`unwind`. This model affects how code is generated for the local crate, skipping
generation of landing pads with `-C panic=abort`.

[RFC 1513]: https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md

Panic implementations are then provided by crates tagged with
`#![panic_runtime]` and lazily required by crates with
`#![needs_panic_runtime]`. The panic strategy (`-C panic` value) of the panic
runtime must match the final product, and if the panic strategy is not `abort`
then the entire DAG must have the same panic strategy.

With the `-C panic=abort` strategy, users can expect a stable method to disable
generation of landing pads, improving optimization in niche scenarios,
decreasing compile time, and decreasing output binary size. With the `-C
panic=unwind` strategy users can expect the existing ability to isolate failure
in Rust code from the outside world.

Organizationally, this commit dismantles the `sys_common::unwind` module in
favor of some bits moving part of it to `libpanic_unwind` and the rest into the
`panicking` module in libstd. The custom panic runtime support is pretty similar
to the custom allocator support with the only major difference being how the
panic runtime is injected (takes the `-C panic` flag into account).
2016-05-09 08:22:36 -07:00
bors
50909f2d50 Auto merge of #33365 - birkenfeld:makehelpfix, r=alexcrichton
Makefile: there is only one tidy target now

Also removes mention of tidy.py from the tidy sources.
2016-05-08 20:07:10 -07:00
bors
ebe6da34ff Auto merge of #33414 - Nercury:master, r=alexcrichton
Add armv7-linux-androideabi target

This PR adds `armv7-linux-androideabi` target that matches `armeabi-v7a` Android ABI, ~~downscales `arm-linux-androideabi` target to match `armeabi` Android ABI~~ (TBD later if needed).

This should allow us to get the best performance from every [Android ABI level](http://developer.android.com/ndk/guides/abis.html).

Currently existing target `arm-linux-androideabi` started gaining features out of the supported range of [android `armeabi`](http://developer.android.com/ndk/guides/abis.html). While android compiler does not use a different target for later supported `armv7` architecture, it has distinct ABI name `armeabi-v7a`. We decided to add rust target `armv7-linux-androideabi` to match it.

Note that `NEON`, `VFPv3-D32`, and `ThumbEE` instruction sets are not added, because not all android devices are guaranteed to support all or some of these, and [their availability should be checked at runtime](http://developer.android.com/ndk/guides/abis.html#v7a).

~~This reduces performance of existing `arm-linux-androideabi` and may make it _much_ slower (we are talking more than order of magnitude in some random ad-hoc fp benchmark that I did).~~

Part of #33278.
2016-05-08 09:13:19 -07:00
Manish Goregaokar
0cb966fa3b
Rollup merge of #33404 - gsquire:cargo-lock, r=alexcrichton
Cargo lock tidy check

A rebased PR for #32901
2016-05-08 07:00:07 -07:00
bors
8e414e0e3f Auto merge of #33091 - sanxiyn:unused-trait-import-3, r=nrc
Warn unused trait imports, rebased

Rebase of #30021.

Fix #25730.
2016-05-08 04:50:27 -07:00
bors
1ec22171e6 Auto merge of #33130 - eddyb:mir-const, r=nikomatsakis
Implement constant support in MIR.

All of the intended features in `trans::consts` are now supported by `mir::constant`.
The implementation is considered a temporary measure until `miri` replaces it.

A `-Z orbit` bootstrap build will only translate LLVM IR from AST for `#[rustc_no_mir]` functions.

Furthermore, almost all checks of constant expressions have been moved to MIR.
In non-`const` functions, trees of temporaries are promoted, as per RFC 1414 (rvalue promotion).
Promotion before MIR borrowck would allow reasoning about promoted values' lifetimes.

The improved checking comes at the cost of four `[breaking-change]`s:
* repeat counts must contain a constant expression, e.g.:
`let arr = [0; { println!("foo"); 5 }];` used to be allowed (it behaved like `let arr = [0; 5];`)
* dereference of a reference to a `static` cannot be used in another `static`, e.g.:
`static X: [u8; 1] = [1]; static Y: u8 = (&X)[0];` was unintentionally allowed before
* the type of a `static` *must* be `Sync`, irrespective of the initializer, e.g.
`static FOO: *const T = &BAR;` worked as `&T` is `Sync`, but it shouldn't because `*const T` isn't
* a `static` cannot wrap `UnsafeCell` around a type that *may* need drop, e.g.
`static X: MakeSync<UnsafeCell<Option<String>>> = MakeSync(UnsafeCell::new(None));`
was previously allowed based on the fact `None` alone doesn't need drop, but in `UnsafeCell`
it can be later changed to `Some(String)` which *does* need dropping

The drop restrictions are relaxed by RFC 1440 (#33156), which is implemented, but feature-gated.
However, creating `UnsafeCell` from constants is unstable, so users can just enable the feature gate.
2016-05-08 00:31:40 -07:00
Eduard Burtescu
3001626595 Always remove tmp/partitioning-tests before check-codegen-units to work around #33435. 2016-05-07 23:44:52 +03:00
Steve Klabnik
aa63f54e37 Rollup merge of #33438 - birkenfeld:dup-words, r=steveklabnik
Fix some some duplicate words.
2016-05-07 15:35:19 -04:00
Nerijus Arlauskas
ca03b81abb Check for both arm and armv7 android targets in runtest. 2016-05-07 13:36:13 +03:00
Niko Matsakis
8b1941a783 s/aux/auxiliary, because windows
For legacy reasons (presumably), Windows does not permit files name aux.
2016-05-06 16:24:48 -04:00
Niko Matsakis
ce0f73bbc4 kill the old auxiliary directory 2016-05-06 16:24:48 -04:00