Commit graph

1046 commits

Author SHA1 Message Date
Eduard-Mihai Burtescu
1618c079ab rustc: rename -Z emit-directives to -Z emit-artifact-notifications and simplify the output. 2019-05-07 04:49:54 +03:00
varkor
d54cf00c77 Add comments 2019-05-05 10:45:10 +01:00
varkor
e8e43c9e16 Fix argument alias handling for -g and -C debuginfo 2019-05-05 10:45:10 +01:00
varkor
e6da57f3e7 Fix argument alias handling for -O and -C opt-level 2019-05-05 10:45:10 +01:00
Christopher Vittal
db6f7a9d1a Update help message 2019-05-03 17:34:17 -04:00
Christopher Vittal
7da9eeeaa7 Remove BorrowckMode::Compare 2019-05-02 15:35:49 -04:00
bors
03122e1bac Auto merge of #60006 - nnethercote:json-for-pipelining, r=alexcrichton
In JSON output, emit a directive after metadata is generated.

To implement pipelining, Cargo needs to know when metadata generation is
finished. This is done via a new JSON "directive".

Unfortunately, metadata file writing currently occurs very late during
compilation, so pipelining won't produce a speed-up. Moving metadata
file writing earlier will be a follow-up.

r? @alexcrichton
2019-04-29 23:35:01 +00:00
Nicholas Nethercote
7bcb0cffb6 In JSON output, emit a directive after metadata is generated.
To implement pipelining, Cargo needs to know when metadata generation is
finished. This commit adds code to do that. Unfortunately, metadata file
writing currently occurs very late during compilation, so pipelining
won't produce a speed-up. Moving metadata file writing earlier will be a
follow-up.

The change involves splitting the existing `Emitter::emit` method in
two: `Emitter::emit_diagnostic` and `Emitter::emit_directive`.

The JSON directives look like this:
```
{"directive":"metadata file written: liba.rmeta"}
```
The functionality is behind the `-Z emit-directives` option, and also
requires `--error-format=json`.
2019-04-30 08:51:57 +10:00
Mazdak Farrokhzad
fe52f8e377
Rollup merge of #60347 - JohnTitor:remove-flags, r=matthewjasper
Remove `-Z two-phase-borrows` and `-Z two-phase-beyond-autoref`

fixes #60331
2019-04-28 14:17:12 +02:00
Mazdak Farrokhzad
4711051b83
Rollup merge of #60270 - alexcrichton:metadata-multi-cgu, r=oli-obk
rustc: Flag metadata compatible with multiple CGUs

It looks like the `OutputType::Metadata` kind in the compiler was
misclassified in #38571 long ago by accident as incompatible with
codegen units and a single output file. This means that if you emit both
a linkable artifact and metadata it silently turns off multiple codegen
units unintentionally!

This commit corrects the situation to ensure that if `--emit metadata`
is used it doesn't implicitly disable multiple codegen units. This will
ensure we don't accidentally regress compiler performance when striving
to implement pipelined compilation!
2019-04-28 14:17:10 +02:00
Yuki OKUSHI
542357f52a Remove two-phase-beyond-autoref 2019-04-28 12:51:04 +09:00
Yuki OKUSHI
4eda15174e Remove two-phase-borrows 2019-04-28 12:22:47 +09:00
Nicholas Nethercote
68f5101cd5 Remove unused DiagnosticOutput::Emitter variant. 2019-04-26 09:48:52 +10:00
varkor
aa388f1d11 ignore-tidy-filelength on all files with greater than 3000 lines 2019-04-25 21:39:09 +01:00
Alex Crichton
955f283e11 rustc: Flag metadata compatible with multiple CGUs
It looks like the `OutputType::Metadata` kind in the compiler was
misclassified in #38571 long ago by accident as incompatible with
codegen units and a single output file. This means that if you emit both
a linkable artifact and metadata it silently turns off multiple codegen
units unintentionally!

This commit corrects the situation to ensure that if `--emit metadata`
is used it doesn't implicitly disable multiple codegen units. This will
ensure we don't accidentally regress compiler performance when striving
to implement pipelined compilation!
2019-04-25 09:06:38 -07:00
varkor
7f0f0e31ec Remove double trailing newlines 2019-04-22 16:57:01 +01:00
Matthew Jasper
aa6fb6caf9 Enable migrate mode by default on the 2015 edition
This also fully stabilizes two-phase borrows on all editions
2019-04-21 20:50:02 +01:00
Mazdak Farrokhzad
bd0d097a33
Rollup merge of #60045 - estebank:suggest-std, r=petrochenkov
Suggest appropriate path when calling associated item on bare types

When looking at the documentation for `std::f32` or `std::str`, for
example, it is easy to get confused and assume `std::f32` and `f32`
are the same thing. Because of this, it is not uncommon to attempt
writing `f32::consts::PI` instead of the correct
`std::f32::consts::PI`. When encountering the former, which results
in an access error due to it being an inexistent path, try to access
the same path under `std`. If this succeeds, this information is
stored for later tweaking of the final E0599 to provide an
appropriate suggestion.

Fix #26760, fix #46660.
2019-04-19 06:03:16 +02:00
Esteban Küber
6aa4c992bc Suggest appropriate path when calling associated item on bare types
When looking at the documentation for `std::f32` or `std::str`, for
example, it is easy to get confused and assume `std::f32` and `f32`
are the same thing. Because of this, it is not uncommon to attempt
writing `f32::consts::PI` instead of the correct
`std::f32::consts::PI`. When encountering the former, which results
in an access error due to it being an inexistent path, try to access
the same path under `std`. If this succeeds, this information is
stored for later tweaking of the final E0599 to provide an
appropriate suggestion.

This suggestion applies to both E0233 and E0599 and is only checked
when the first ident of a path corresponds to a primitive type.
2019-04-18 19:18:26 -07:00
Michael Woerister
08efbac758 Implement event filtering for self-profiler. 2019-04-18 17:03:53 +02:00
Mazdak Farrokhzad
c89bc54d4f
Rollup merge of #59128 - oli-obk:colorful_json, r=mark-i-m,eddyb
Emit ansi color codes in the `rendered` field of json diagnostics

cc @ljedrz

Implemented for https://github.com/rust-lang/rust/pull/56595#issuecomment-447645115 (x.py clippy)
2019-04-17 10:31:30 +02:00
Aaron Hill
4dfce34912
Derive Default for ExternEntry 2019-04-14 15:45:18 -04:00
Aaron Hill
872c20d415
Fix ExternEntry test 2019-04-14 15:45:18 -04:00
Aaron Hill
482b77a147
Refactor structure of ExternEntry 2019-04-14 15:45:18 -04:00
Aaron Hill
b23a8830f9
Move new_public to 'tess' module 2019-04-14 15:45:18 -04:00
Aaron Hill
0f88106940
Improve formatting 2019-04-14 15:45:18 -04:00
Aaron Hill
87734b1f25
Fix tests 2019-04-14 15:45:03 -04:00
Aaron Hill
a6ae8abdd6
Fix tidy 2019-04-14 00:37:25 -04:00
Aaron Hill
7cc3ce3bbd
Combine 'Extern' and 'ExternPrivate' 2019-04-14 00:37:25 -04:00
Aaron Hill
21491dc701
Properly parse '--extern-private' with name and path 2019-04-14 00:37:25 -04:00
bors
ee621f4232 Auto merge of #59950 - Centril:rollup-hpmr62i, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #59776 (Apply resource-suffix to search-index and source-files scripts as well)
 - #59784 (Suggest importing macros from the crate root)
 - #59812 (Exclude profiler-generated symbols from MSVC __imp_-symbol workaround.)
 - #59874 (Clean up handling of `-Z pgo-gen` commandline option.)
 - #59890 (Don't generate empty json variables)
 - #59911 (Revert "compile crates under test w/ -Zemit-stack-sizes")

Failed merges:

r? @ghost
2019-04-14 01:10:57 +00:00
Mazdak Farrokhzad
021a8eca47
Rollup merge of #59874 - michaelwoerister:pgo-updates-1, r=cramertj
Clean up handling of `-Z pgo-gen` commandline option.

This PR adapts the `-Z pgo-gen` flag to how Clang and GCC handle the corresponding `-fprofile-generate` flag. In particular, the flag now optionally takes a directory to place the profiling data in and allows to omit the argument (instead of having to pass an empty string).
2019-04-14 00:39:46 +02:00
Mazdak Farrokhzad
857416b590
Rollup merge of #59899 - nnethercote:sort-enum-variants-by-size, r=pnkfelix
In `-Zprint-type-size` output, sort enum variants by size.

It's useful to see the biggest variants first.

r? @pnkfelix
2019-04-14 00:23:46 +02:00
Wesley Wiser
56e434d84d Use measureme in self-profiler
Related to #58372
Related to #58967
2019-04-12 20:27:29 -04:00
Nicholas Nethercote
ca1ab3ed30 In -Zprint-type-size output, sort enum variants by size.
It's useful to see the biggest variants first.
2019-04-12 12:18:23 +10:00
Michael Woerister
7b1df42acc Clean up handling of -Zpgo-gen commandline option. 2019-04-11 14:50:32 +02:00
Oliver Scherer
325936ac20 Do not render ascii colors to buffers 2019-04-09 20:43:54 +02:00
John Kåre Alsaker
9017d46901 Make trait_methods_not_found use a lock 2019-04-09 10:20:14 +02:00
Oliver Scherer
39b21376db Rename colorful-json to json-rendered and make it a selection instead of a bool 2019-04-02 16:14:59 +02:00
Oliver Scherer
0421c6049b Fix forgotten capitalization 2019-04-02 16:14:59 +02:00
Oliver Scherer
3be13c4044 Adjust tests to new enum variant fields 2019-04-02 16:14:59 +02:00
Oliver Scherer
96404ee844 Emit ansi color codes in the rendered field of json diagnostics 2019-04-02 16:14:58 +02:00
Mazdak Farrokhzad
9f9529acd5
Rollup merge of #58507 - Zoxc:time-extended, r=michaelwoerister
Add a -Z time option which prints only passes which runs once

This ensures `-Z time-passes` fits on my screen =P

r? @michaelwoerister
2019-04-01 17:29:48 +02:00
Mazdak Farrokhzad
f591d25f43
Rollup merge of #59363 - peterjoel:issue_59361_edition_opt_shortlist, r=nagisa
#59361 Moved rustc edition opt to short list

Addresses #59361, in case that issue is accepted.
2019-03-28 13:35:38 +01:00
Peter Hall
3eb4eae96d Fixes #59361 2019-03-23 20:41:57 +00:00
bors
f21dee2c61 Auto merge of #58929 - estebank:elide-object, r=zackmdavis
Elide object safety errors on non-existent trait function

Fix #58734.

r? @zackmdavis
2019-03-23 02:40:15 +00:00
John Kåre Alsaker
e842f570d9 Add a -Z time option which prints only passes which runs once 2019-03-20 07:54:46 +01:00
Vadim Petrochenkov
63116d313d Rename MetaItem::ident to MetaItem::path 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov
8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
Esteban Küber
d7bb98f7a1 Elide object safety errors on non-existent trait function
Fix #58734.
2019-03-15 13:26:30 -07:00