Commit graph

1105 commits

Author SHA1 Message Date
Mark Rousskov
4cc5aaada2 Protect error handler fields with single lock
This avoids concurrency-related bugs when locks are acquired for too
short a time and similar cases.
2019-09-17 09:30:45 -04:00
Mark Rousskov
2a767eec0c Remove unused methods from Handler 2019-09-17 09:30:45 -04:00
Mark Rousskov
b304e60131 Remove Handler::{emit, emit_with_code} 2019-09-17 09:30:45 -04:00
Mark Rousskov
0b586b436d Take Diagnostic in Handler::emit_diagnostic 2019-09-17 09:30:44 -04:00
Mark Rousskov
cdd805506e Replace DiagnosticBuilder with Diagnostic when emitting error 2019-09-17 09:29:46 -04:00
Mark Rousskov
a678e31911 Hide diagnostics emitted during --cfg parsing
The early error is more than sufficient for fixing the problem.
2019-09-15 17:39:38 -04:00
Alexander Regueiro
fd48ca20d3 Apply suggestions from code review
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-09-07 16:27:20 +01:00
Alexander Regueiro
c1d29ee3c7 Aggregation of cosmetic changes made during work on REPL PRs: librustc 2019-09-07 16:27:19 +01:00
Alexander Regueiro
022d9c8eb5 Fixed grammar/style in error messages and reblessed tests. 2019-09-06 03:46:08 +01:00
bors
19a38de68a Auto merge of #63402 - estebank:strip-margin, r=oli-obk
Strip code to the left and right in diagnostics for long lines

Fix #62999.
2019-08-30 06:49:15 +00:00
Aaron Hill
1498608135
Improve Rustdoc's handling of procedural macros
Fixes #58700
Fixes #58696
Fixes #49553
Fixes #52210

This commit removes the special rustdoc handling for proc macros, as we
can now
retrieve their span and attributes just like any other item.

A new command-line option is added to rustdoc: `--crate-type`. This
takes the same options as rustc's `--crate-type` option. However, all
values other than `proc-macro` are treated the same. This allows Rustdoc
to enable 'proc macro mode' when handling a proc macro crate.

In compiletest, a new 'rustdoc-flags' option is added. This allows us to
pass in the '--proc-macro-crate' flag in the absence of Cargo.

I've opened [an additional PR to
Cargo](https://github.com/rust-lang/cargo/pull/7159) to support passing
in this flag.
These two PRS can be merged in any order - the Cargo changes will not
take effect until the 'cargo' submodule is updated in this repository.
2019-08-24 13:11:57 -04:00
Esteban Küber
21f2e93345 Add terminal_width debugging flag 2019-08-21 11:58:24 -07:00
Joel Galenson
692c0bf4ff Do not track the sysroot.
As suggested by @alexcrichton, the sysroot only loads libraries that
are themselves tracked.
2019-08-13 09:12:06 -07:00
Joel Galenson
e9e45c59a7 Hash the remapped sysroot instead of the original.
This will help reproducible builds, as the sysroot depends on the
working directory.
2019-08-12 13:40:22 -07:00
Brian Anderson
c03077b23a Use consistent capitalization in -C/-Z help 2019-08-07 14:51:49 -07:00
bors
f690098e6d Auto merge of #62766 - alexcrichton:stabilize-pipelined-compilation, r=oli-obk
rustc: Stabilize options for pipelined compilation

This commit stabilizes options in the compiler necessary for Cargo to
enable "pipelined compilation" by default. The concept of pipelined
compilation, how it's implemented, and what it means for rustc are
documented in #60988. This PR is coupled with a PR against Cargo
(rust-lang/cargo#7143) which updates Cargo's support for pipelined
compliation to rustc, and also enables support by default in Cargo.
(note that the Cargo PR cannot land until this one against rustc lands).

The technical changes performed here were to stabilize the functionality
proposed in #60419 and #60987, the underlying pieces to enable pipelined
compilation support in Cargo. The issues have had some discussion during
stabilization, but the newly stabilized surface area here is:

* A new `--json` flag was added to the compiler.
* The `--json` flag can be passed multiple times.
* The value of the `--json` flag is a comma-separated list of
  directives.
* The `--json` flag cannot be combined with `--color`
* The `--json` flag must be combined with `--error-format=json`
* The acceptable list of directives to `--json` are:
  * `diagnostic-short` - the `rendered` field of diagnostics will have a
    "short" rendering matching `--error-format=short`
  * `diagnostic-rendered-ansi` - the `rendered` field of diagnostics
    will be colorized with ansi color codes embedded in the string field
  * `artifacts` - JSON blobs will be emitted for artifacts being emitted
    by the compiler

The unstable `-Z emit-artifact-notifications` and `--json-rendered`
flags have also been removed during this commit as well.

Closes #60419
Closes #60987
Closes #60988
2019-07-30 08:39:29 +00:00
Vadim Petrochenkov
434152157f Remove lint annotations in specific crates that are already enforced by rustbuild
Remove some random unnecessary lint `allow`s
2019-07-28 18:46:24 +03:00
Mazdak Farrokhzad
632ce7402f
Rollup merge of #62801 - bjorn3:remove_lower_128bit_ops, r=alexcrichton
Remove support for -Zlower-128bit-ops

It is broken and unused

cc https://github.com/rust-lang/rust/issues/58969

blocked https://github.com/rust-lang-nursery/compiler-builtins/pull/302 (removes definitions of the lang items removed in this PR)

r? @alexcrichton
2019-07-26 18:56:43 +02:00
Alex Crichton
17312337a9 rustc: Stabilize options for pipelined compilation
This commit stabilizes options in the compiler necessary for Cargo to
enable "pipelined compilation" by default. The concept of pipelined
compilation, how it's implemented, and what it means for rustc are
documented in #60988. This PR is coupled with a PR against Cargo
(rust-lang/cargo#7143) which updates Cargo's support for pipelined
compliation to rustc, and also enables support by default in Cargo.
(note that the Cargo PR cannot land until this one against rustc lands).

The technical changes performed here were to stabilize the functionality
proposed in #60419 and #60987, the underlying pieces to enable pipelined
compilation support in Cargo. The issues have had some discussion during
stabilization, but the newly stabilized surface area here is:

* A new `--json` flag was added to the compiler.
* The `--json` flag can be passed multiple times.
* The value of the `--json` flag is a comma-separated list of
  directives.
* The `--json` flag cannot be combined with `--color`
* The `--json` flag must be combined with `--error-format=json`
* The acceptable list of directives to `--json` are:
  * `diagnostic-short` - the `rendered` field of diagnostics will have a
    "short" rendering matching `--error-format=short`
  * `diagnostic-rendered-ansi` - the `rendered` field of diagnostics
    will be colorized with ansi color codes embedded in the string field
  * `artifacts` - JSON blobs will be emitted for artifacts being emitted
    by the compiler

The unstable `-Z emit-artifact-notifications` and `--json-rendered`
flags have also been removed during this commit as well.

Closes #60419
Closes #60987
Closes #60988
2019-07-26 07:46:35 -07:00
Mazdak Farrokhzad
e1de70b045
Rollup merge of #62735 - petrochenkov:galloc, r=alexcrichton
Turn `#[global_allocator]` into a regular attribute macro

It was a 99% macro with exception of some diagnostic details.

As a result of the change, `#[global_allocator]` now works in nested modules and even in nameless blocks.

Fixes https://github.com/rust-lang/rust/issues/44113
Fixes https://github.com/rust-lang/rust/issues/58072
2019-07-25 23:21:00 +02:00
Mark Rousskov
d749b5e223 Gate binary dependency information behind -Zbinary-dep-depinfo 2019-07-24 11:00:09 -04:00
Vadim Petrochenkov
a93fdfedf3 Merge rustc_allocator into libsyntax_ext 2019-07-24 12:27:58 +03:00
Samy Kacimi
66815c613a
normalize use of backticks for compiler messages in remaining modules
https://github.com/rust-lang/rust/issues/60532
2019-07-23 23:09:59 +02:00
bjorn3
3427a14bdf Remove support for -Zlower-128bit-ops
It is broken and unused
2019-07-19 14:21:06 +02:00
Wesley Wiser
3622311d53 Only error about MSVC + PGO + unwind if we're generating code
When `rustc` is invoked with the `--print` argument, we don't actually
generate any code (unless it's the `native-static-libs` option). So we
don't need to error our in this case since there's no risk of generating
either LLVM assertions or corrupted binaries.
2019-07-11 21:52:21 -04:00
Wesley Wiser
374daa7985 Revert "Emit warning when trying to use PGO in conjunction with unwinding on Windows."
This reverts commit 74a39a39a4.
2019-07-11 21:50:00 -04:00
Mazdak Farrokhzad
3c3e3756b0
Rollup merge of #61853 - EricRahm:use_warning, r=varkor
Emit warning when trying to use PGO in conjunction with unwinding on …

…Windows.

This reduces the error introduced for #61002 to just a warning.
2019-07-10 05:14:04 +02:00
Eric Rahm
74a39a39a4 Emit warning when trying to use PGO in conjunction with unwinding on Windows. 2019-07-09 17:17:30 -04:00
Tshepang Lekhonkhobe
8353007e56 cli: make help output for -l and -L consistent 2019-07-07 18:32:39 +02:00
Jeremy Stucki
d28832dde9
Remove needless lifetimes 2019-07-03 10:01:02 +02:00
bors
0beb2ba16a Auto merge of #61268 - michaelwoerister:stabilize-pgo, r=alexcrichton
Stabilize support for Profile-guided Optimization

This PR makes profile-guided optimization available via the `-C profile-generate` / `-C profile-use` pair of commandline flags and adds end-user documentation for the feature to the [rustc book](https://doc.rust-lang.org/rustc/). The PR thus ticks the last two remaining checkboxes of the [stabilization tracking issue](https://github.com/rust-lang/rust/issues/59913).

From the tracking issue:
> Profile-guided optimization (PGO) is a common optimization technique for ahead-of-time compilers. It works by collecting data about a program's typical execution (e.g. probability of branches taken, typical runtime values of variables, etc) and then uses this information during program optimization for things like inlining decisions, machine code layout, or indirect call promotion.

If you are curious about how this can be used, there is a rendered version of the documentation this PR adds available [here](
https://github.com/michaelwoerister/rust/blob/stabilize-pgo/src/doc/rustc/src/profile-guided-optimization.md).

r? @alexcrichton
cc @rust-lang/compiler
2019-07-02 20:00:29 +00:00
Mazdak Farrokhzad
c5e6069194
Rollup merge of #62055 - matthewjasper:fix-error-counting, r=pnkfelix
Fix error counting

Count duplicate errors for `track_errors` and other error counting checks.
Add FIXMEs to make it clear that we should be moving away from this kind of logic.

Closes #61663
2019-06-25 17:15:31 +02:00
Matthew Jasper
30b6c59f24 Prefer to use has_errors to err_count 2019-06-22 15:36:24 +01:00
Michael Woerister
0d67510a48 Remove warnings about incr. comp. generating less debugging output. 2019-06-21 10:07:59 +02:00
Michael Woerister
b7fe2ca5e0 Stabilize profile-guided optimization. 2019-06-21 09:54:58 +02:00
Vadim Petrochenkov
5a9643c95b Fix tidy 2019-06-16 14:17:21 +03:00
chansuke
638f63b6e4 Separate librustc module 2019-06-16 14:17:01 +03:00
bors
961a9d6e97 Auto merge of #61741 - Centril:rollup-fgro5kz, r=Centril
Rollup of 11 pull requests

Successful merges:

 - #61518 (Add loops to doc list of things not stable in const fn)
 - #61526 (move some tests into subfolders)
 - #61550 (Windows 10 SDK is also required now.)
 - #61606 (Remove some legacy proc macro flavors)
 - #61652 (Mention slice patterns in array)
 - #61686 (librustc_errors: Add some more documentation)
 - #61698 (typeck: Fix const generic in repeat param ICE.)
 - #61707 (Azure: retry failed awscli installs)
 - #61715 (make sure make_ascii_lowercase actually leaves upper-case non-ASCII characters alone)
 - #61724 (core: use memcmp optimization for 128 bit integer slices)
 - #61726 (Use `for_each` in `Iterator::partition`)

Failed merges:

r? @ghost
2019-06-11 23:29:20 +00:00
Eduard-Mihai Burtescu
774724be3c rustc: deny(unused_lifetimes). 2019-06-11 14:11:58 +03:00
Philipp Hansch
33137ffdd5
Address review comments
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-06-10 11:47:42 +02:00
Philipp Hansch
e3516a128e
librustc_errors: Add some more documentation 2019-06-10 11:46:32 +02:00
Philipp Hansch
df076b2d5e
librustc_errors: Rename AnnotateRs -> AnnotateSnippet
The proper name of the library is `annotate-snippet`, not `annotate-rs`,
this commit should get rid of any confusing `AnnotateRs` names.

1. Renames `annotate_rs_emitter.rs` to
   `annotate_snippet_emitter_writer.rs` so that the difference between the
   `Emitter` trait and the implementers is more clear.
2. Renames `AnnotateRsEmitterWriter` to `AnnotateSnippetEmitterWriter`
3. Renames `HumanReadableErrorType::AnnotateRs` to `HumanReadableErrorType::AnnotateSnippet`
2019-06-05 21:43:55 +02:00
Philipp Hansch
c04a2ccb35
Add new error-format value to use annotate-snippet output 2019-06-04 18:46:00 +02:00
Eduard-Mihai Burtescu
2092963a18 rustc_codegen_utils: add new mangling scheme implementation. 2019-05-31 18:24:42 +03:00
bors
c28084ac16 Auto merge of #61005 - michaelwoerister:error-pgo-windows-unwind, r=zackmdavis
Emit error when trying to use PGO in conjunction with unwinding on Windows.

This PR makes `rustc` emit an error when trying use PGO in conjunction with `-Cpanic=unwind` on Windows, isn't supported by LLVM yet. The error messages points to https://github.com/rust-lang/rust/issues/61002, which documents this known limitation.
2019-05-30 03:37:37 +00:00
Eduard-Mihai Burtescu
29b7c0687e rustc_codegen_llvm: remove LLVM instruction count stats. 2019-05-29 01:43:57 +03:00
Michael Woerister
64ee32e53a Rename PgoGenerate to something more general. 2019-05-28 16:14:34 +02:00
Michael Woerister
53f1c38734 Allow to specify profiling data output directory as -Zself-profile argument. 2019-05-28 16:14:34 +02:00
Michael Woerister
9f92668ce1 Emit error when trying to use PGO in conjunction with unwinding on Windows. 2019-05-28 15:25:52 +02:00
Michael Woerister
48b9896eeb Fix unit test after pgo-use change. 2019-05-27 14:32:03 +02:00