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`.
This commit is contained in:
parent
91d5b764ea
commit
7bcb0cffb6
10 changed files with 85 additions and 25 deletions
|
@ -300,7 +300,7 @@ impl CodegenBackend for LlvmCodegenBackend {
|
|||
sess: &Session,
|
||||
dep_graph: &DepGraph,
|
||||
outputs: &OutputFilenames,
|
||||
) -> Result<(), ErrorReported>{
|
||||
) -> Result<(), ErrorReported> {
|
||||
use rustc::util::common::time;
|
||||
let (codegen_results, work_products) =
|
||||
ongoing_codegen.downcast::
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue