586 Commits

Author SHA1 Message Date
mitaa
8bb19058d4 Remove rustdocs json format 2016-04-07 06:01:55 +02:00
Niko Matsakis
fe47ca0d0b restructure rustc options relating to incr. comp.
You can now pass `-Z incremental=dir` as well as saying `-Z
query-dep-graph` if you want to enable queries for some other
purpose. Accessor functions take the place of computed boolean flags.
2016-04-06 12:35:15 -04:00
Eduard Burtescu
e8a8dfb056 rustc: retire hir::map's paths. 2016-04-06 13:51:55 +03:00
Eduard Burtescu
8b0937293b rustc: move rustc_front to rustc::hir. 2016-04-06 09:01:55 +03:00
Michael Woerister
c2ede7e185 Add run-make test for stable symbol-name generation. 2016-04-03 00:44:17 -04:00
bors
4583dc9b13 Auto merge of #32439 - jseyfried:visible_suggestions, r=nrc
diagnostics: make paths to external items more visible

This PR changes the reported path for an external item so that it is visible from at least one local module (i.e. it does not use any inaccessible external modules) if possible. If the external item's crate was declared with an `extern crate`, the path is guarenteed to use the `extern crate`.

Fixes #23224, fixes #23355, fixes #26635, fixes #27165.

r? @nrc
2016-03-30 21:13:43 -07:00
Jeffrey Seyfried
da41e583d6 Fix fallout in tests 2016-03-30 22:00:48 +00:00
Eduard Burtescu
352b44d1fa Remove unnecessary dependencies on rustc_llvm. 2016-03-29 19:36:01 +03:00
Eduard Burtescu
5efdde0de1 rustc: move cfg, infer, traits and ty from middle to top-level. 2016-03-27 01:05:54 +02:00
Niko Matsakis
1ea93c2a63 remove link-guard test 2016-03-25 19:33:13 -04:00
Niko Matsakis
fd25a63ba9 document test, don't use grep 2016-03-25 14:07:20 -04:00
Niko Matsakis
ab0a87243e test for immediate symbol name hashing 2016-03-25 14:07:20 -04:00
Niko Matsakis
b184d2712f check only that symbol names are deterministic
Full binary reproducible builds are not possible on all platforms
because linker injects a certain amount of randomness, apparently. Or,
at minimum, they don't work reliably yet.
2016-03-25 14:07:20 -04:00
Michael Woerister
2475707322 Add a "link-guard" to avoid accidentally linking to a wrong dylib at runtime.
We want to prevent compiling something against one version
of a dynamic library and then, at runtime accidentally
using a different version of the dynamic library. With the
old symbol-naming scheme this could not happen because every
symbol had the SVH in it and you'd get an error by the
dynamic linker when using the wrong version of a dylib. With
the new naming scheme this isn't the case any more, so this
patch adds the "link-guard" to prevent this error case.

This is implemented as follows:

- In every crate that we compile, we emit a function called
  "__rustc_link_guard_<crate-name>_<crate-svh>"
- The body of this function contains calls to the
  "__rustc_link_guard" functions of all dependencies.
- An executable contains a call to it's own
  "__rustc_link_guard" function.

As a consequence the "__rustc_link_guard" function call graph
mirrors the crate graph and the dynamic linker will fail if a
wrong dylib is loaded somewhere because its
"__rustc_link_guard" function will contain a different SVH in
its name.
2016-03-25 14:07:19 -04:00
Michael Woerister
2eebb7b605 Make the compiler emit an error if the crate graph contains two crates with the same crate-name and crate-salt but different SVHs. 2016-03-25 14:07:18 -04:00
Michael Woerister
9c965b786c Add a test to verify that we have reproducible compiler builds. 2016-03-25 14:07:18 -04:00
Nick Cameron
9757516f12 Include source text in JSON errors 2016-03-24 15:32:42 +13:00
Eduard Burtescu
b12dcdef4f tests: Update run-make/issue-25581 to reflect how fat pointers are passed. 2016-03-18 15:54:27 +02:00
Eduard Burtescu
473f804491 Add #[rustc_no_mir] to make tests pass with -Z orbit. 2016-03-17 22:48:07 +02:00
bors
74dfc1ddd9 Auto merge of #31887 - SimonSapin:quiet-test, r=alexcrichton
Shorter output for `rustc --test` binaries.

Until now, a program created with `rustc --test` prints at least one line per test. This can be very verbose, especially with [data-driven tests](https://internals.rust-lang.org/t/test-and-external-test-harnesses/3145) when hundreds or thousands of tests is not rare.

This changes the default output to one character per test (except metrics and benchmarks results which have additional data to show):

```
     Running target/debug/wpt-75c594dc1e6e6187

running 314 tests
..............................................................................
..............................................................................
..............................................................................
..............................................................................
..
test result: ok. 314 passed; 0 failed; 0 ignored; 0 measured
```

<s>The previous behavior is available by passing `--verbose` to the test program. Maybe `cargo test --verbose` could be changed to do that?</s> **Edit:** the default is now unchanged, `-q` or `--quiet` enables the new output.
2016-03-15 12:58:49 -07:00
Simon Sapin
d23fd711eb Add a test for --quiet in test harness. 2016-03-15 17:59:01 +01:00
bors
6d215fe04c Auto merge of #32169 - mitaa:anon-tip, r=nrc
Allow custom filenames for anonymous inputs

This came out of #29253 but doesn't fix it.

I thought it might be worth merging on its own nonetheless.
2016-03-14 14:44:55 -07:00
mitaa
ea7cf904b0 Allow custom filenames for anonymous inputs 2016-03-14 20:03:43 +01:00
Alex Crichton
b53764c73b std: Clean out deprecated APIs
Removes all unstable and deprecated APIs prior to the 1.8 release. All APIs that
are deprecated in the 1.8 release are sticking around for the rest of this
cycle.

Some notable changes are:

* The `dynamic_lib` module was moved into `rustc_back` as the compiler still
  relies on a few bits and pieces.
* The `DebugTuple` formatter now special-cases an empty struct name with only
  one field to append a trailing comma.
2016-03-12 12:31:13 -08:00
Alex Crichton
9a623f3378 test: Move some test outputs into $(TMPDIR)
Don't want to pollute the source tree!
2016-03-11 22:09:58 -08:00
bors
cbbd3d9b92 Auto merge of #31631 - jonas-schievink:agoraphobia, r=nrc
[breaking-batch] Move more uses of `panictry!` out of libsyntax
2016-03-09 05:25:48 -08:00
Amanieu d'Antras
3b67e467b2 Add tests for read_volatile and write_volatile 2016-02-19 23:45:49 +00:00
Jonas Schievink
3a872782d3 Move more uses of panictry! out of libsyntax
[breaking-change] for syntax extensions
2016-02-16 13:32:40 +01:00
Corey Farwell
a60ec05fdc Add LLVM FunctionPass regression test using run-make.
Part of https://github.com/rust-lang/rust/issues/31185.

Similar to https://github.com/rust-lang/rust/pull/31391.
2016-02-15 10:08:04 -05:00
Alex Crichton
cc719d2d7d trans: Don't link whole rlibs to executables
Back in 9bc8e6d14 the linking of rlibs changed to using the `link_whole_rlib`
function. This change, however was only intended to affect dylibs, not
executables. For executables we don't actually want to link entire rlibs because
we want the linker to strip out as much as possible.

This commit adds a conditional to this logic to only link entire rlibs if we're
creating a dylib, and otherwise an executable just links an rlib as usual. A
test is included which will fail to link if this behavior is reverted.
2016-02-14 11:45:59 -08:00
bors
86e6e3235e Auto merge of #31391 - frewsxcv:test, r=alexcrichton
Part of #31185
2016-02-14 08:25:39 +00:00
Corey Farwell
e5e2cdb9e3 Add LLVM ModulePass regression test using run-make.
Part of #31185
2016-02-13 22:04:51 -05:00
Sébastien Marie
15e5cf383d use a compatible syntax for grep GNU/BSD
The BSD grep for "basic regex" don't support \| as alternate operator.
Use multiple -e arguments for expressing alternative.
2016-02-13 20:03:08 +01:00
bors
97842f54c9 Auto merge of #31358 - japaric:print-targets, r=alexcrichton
that prints a list of all the triples supported by the `--target` flag

r? @alexcrichton
2016-02-13 03:21:49 +00:00
bors
ce4b75f256 Auto merge of #30726 - GuillaumeGomez:compile-fail, r=brson
r? @brson
cc @alexcrichton

I still need to add error code explanation test with this, but I can't figure out a way to generate the `.md` files in order to test example source codes.

Will fix #27328.
2016-02-12 18:25:08 +00:00
Jorge Aparicio
0bb4209b88 rustc: add a --print target-list command 2016-02-12 10:39:19 -05:00
Johan Lorenzo
274f27a476 Add -C link-dead-code option r=alexcrichton
Turning gc-sections off improves code coverage based for tools which
use DWARF debugging information (like kcov). Otherwise dead code is
stripped and kcov returns a coverage percentage that doesn't reflect
reality.
2016-02-11 11:14:32 +01:00
Alex Crichton
a1ffe6b6bb rustc: Implement a new --print cfg flag
This commit is an implementation of the new compiler flags required by [RFC
1361][rfc]. This specifically adds a new `cfg` option to the `--print` flag to
the compiler. This new directive will print the defined `#[cfg]` directives by
the compiler for the target in question.

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/1361-cargo-cfg-dependencies.md
2016-02-08 14:28:46 -08:00
Guillaume Gomez
eb5b9037ad Add compile-fail test in rustdoc 2016-02-07 13:03:32 +01:00
Niko Matsakis
d09fd1a529 Instrument the AST map so that it registers reads when data is
acccessed.
2016-02-05 13:19:55 -05:00
bors
e3bcddb44b Auto merge of #31078 - nbaksalyar:illumos, r=alexcrichton
This pull request adds support for [Illumos](http://illumos.org/)-based operating systems: SmartOS, OpenIndiana, and others. For now it's x86-64 only, as I'm not sure if 32-bit installations are widespread. This PR is based on #28589 by @potatosalad, and also closes #21000, #25845, and #25846.

Required changes in libc are already merged: https://github.com/rust-lang-nursery/libc/pull/138

Here's a snapshot required to build a stage0 compiler:
https://s3-eu-west-1.amazonaws.com/nbaksalyar/rustc-sunos-snapshot.tar.gz
It passes all checks from `make check`.

There are some changes I'm not quite sure about, e.g. macro usage in `src/libstd/num/f64.rs` and `DirEntry` structure in `src/libstd/sys/unix/fs.rs`, so any comments on how to rewrite it better would be greatly appreciated.

Also, LLVM configure script might need to be patched to build it successfully, or a pre-built libLLVM should be used. Some details can be found here: https://llvm.org/bugs/show_bug.cgi?id=25409

Thanks!

r? @brson
2016-02-03 22:40:32 +00:00
Nick Cameron
185a0e51bf Reviewer requested changes and test fixes 2016-02-02 09:00:35 +13:00
Nikita Baksalyar
f189d7a693
Add Illumos support 2016-01-31 18:57:26 +03:00
Alex Crichton
58f1b9c7fc Get tests working on MSVC 32-bit 2016-01-29 16:25:21 -08:00
Alex Crichton
d1cace17af trans: Upgrade LLVM
This brings some routine upgrades to the bundled LLVM that we're using, the most
notable of which is a bug fix to the way we handle range asserts when loading
the discriminant of an enum. This fix ended up being very similar to f9d4149c
where we basically can't have a range assert when loading a discriminant due to
filling drop, and appropriate flags were added to communicate this to
`trans::adt`.
2016-01-29 16:25:20 -08:00
bors
142214d1f2 Auto merge of #30411 - mitaa:multispan, r=nrc
This allows to render multiple spans on one line, or to splice multiple replacements into a code suggestion.

fixes #28124
2016-01-28 22:13:25 +00:00
mitaa
727f959095 Implement MultiSpan error reporting
This allows to render multiple spans on one line,
or to splice multiple replacements into a code suggestion.
2016-01-28 20:51:06 +01:00
Nick Cameron
0b511e82ab Initial work towards abort-free compilation
The goal is that the compiler will pass `Result`s around rather than using abort_if_errors. To preserve behaviour we currently abort at the top level. I've removed all other aborts from the driver, but haven't touched any of the nested aborts.
2016-01-26 17:51:11 +13:00
Daniel Campbell
616bfb6f15 Extended save-analysis to support generated code, alterned some spans in format_args! and derive to maintain compatability 2016-01-22 19:12:51 +13:00
bors
34b4e66736 Auto merge of #29520 - retep998:staticlib-naming-fiasco, r=alexcrichton
I'm not sure if this was the best way to go about it, but it seems to work.

Fixes https://github.com/rust-lang/rust/issues/29508

r? @alexcrichton
2016-01-21 09:02:48 +00:00