Skip to content

Commit 20551a8

Browse files
committed
Clean up rebase and comments
1 parent decc3f0 commit 20551a8

File tree

3 files changed

+25
-31
lines changed

3 files changed

+25
-31
lines changed

src/cargo/core/compiler/context/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ pub struct Context<'a, 'cfg> {
8080

8181
/// Map that tracks whether a unit completed successfully. Used in conjuction
8282
/// with the `Unit::can_fail` flag, so jobs can dynamically track at runtime
83-
/// whether their dependencies succeeded or failed. Currently used to for
83+
/// whether their dependencies succeeded or failed. Currently used for
8484
/// the Rustdoc scrape-examples feature to allow Rustdoc to proceed even if
85-
/// examples fail to scrape.
85+
/// examples fail to compile.
8686
pub completed_units: Arc<Mutex<HashMap<Metadata, bool>>>,
8787
}
8888

src/cargo/core/compiler/job_queue.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ struct DrainState<'cfg> {
126126
total_units: usize,
127127

128128
queue: DependencyQueue<Unit, Artifact, Job>,
129+
/// Dependency map that is like JobQueue::dep_map, except with Job information removed.
130+
/// Used to determine if a unit's dependencies have failed, see
131+
/// [`DrainState::spawn_work_if_possible`].
129132
dep_map: HashMap<Unit, HashSet<(Unit, Artifact)>>,
130133
messages: Arc<Queue<Message>>,
131134
/// Diagnostic deduplication support.
@@ -507,14 +510,15 @@ impl<'cfg> JobQueue<'cfg> {
507510
self.queue.queue_finished();
508511

509512
let progress = Progress::with_style("Building", ProgressStyle::Ratio, cx.bcx.config);
513+
let dep_map = self
514+
.queue
515+
.dep_map()
516+
.iter()
517+
.map(|(unit, (deps, _))| (unit.clone(), deps.clone()))
518+
.collect();
510519
let state = DrainState {
511520
total_units: self.queue.len(),
512-
dep_map: self
513-
.queue
514-
.dep_map()
515-
.iter()
516-
.map(|(unit, (deps, _))| (unit.clone(), deps.clone()))
517-
.collect(),
521+
dep_map,
518522
queue: self.queue,
519523
// 100 here is somewhat arbitrary. It is a few screenfulls of
520524
// output, and hopefully at most a few megabytes of memory for

src/cargo/core/compiler/mod.rs

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use std::ffi::{OsStr, OsString};
2828
use std::fs::{self, File};
2929
use std::io::{BufRead, Write};
3030
use std::path::{Path, PathBuf};
31-
use std::sync::{Arc, Mutex};
31+
use std::sync::Arc;
3232

3333
use anyhow::{Context as _, Error};
3434
use lazycell::LazyCell;
@@ -263,7 +263,6 @@ fn rustc(cx: &mut Context<'_, '_>, unit: &Unit, exec: &Arc<dyn Executor>) -> Car
263263
let script_metadata = cx.find_build_script_metadata(unit);
264264
let is_local = unit.is_local();
265265
let artifact = unit.artifact;
266-
let completed_units = Arc::clone(&cx.completed_units);
267266

268267
return Ok(Work::new(move |state| {
269268
// Artifacts are in a different location than typical units,
@@ -293,13 +292,7 @@ fn rustc(cx: &mut Context<'_, '_>, unit: &Unit, exec: &Arc<dyn Executor>) -> Car
293292
)?;
294293
add_plugin_deps(&mut rustc, &script_outputs, &build_scripts, &root_output)?;
295294
}
296-
add_custom_flags(
297-
&mut rustc,
298-
&script_outputs,
299-
script_metadata,
300-
completed_units,
301-
None,
302-
)?;
295+
add_custom_flags(&mut rustc, &script_outputs, script_metadata)?;
303296
}
304297

305298
for output in outputs.iter() {
@@ -712,9 +705,18 @@ fn rustdoc(cx: &mut Context<'_, '_>, unit: &Unit) -> CargoResult<Work> {
712705
&mut rustdoc,
713706
&build_script_outputs.lock().unwrap(),
714707
script_metadata,
715-
completed_units,
716-
scrape_units,
717708
)?;
709+
710+
if let Some(scrape_units) = scrape_units {
711+
let completed_units = completed_units.lock().unwrap();
712+
for (_, output_path) in scrape_units
713+
.iter()
714+
.filter(|(buildkey, _)| completed_units[*buildkey])
715+
{
716+
rustdoc.arg("--with-examples").arg(output_path);
717+
}
718+
}
719+
718720
let crate_dir = doc_dir.join(&crate_name);
719721
if crate_dir.exists() {
720722
// Remove output from a previous build. This ensures that stale
@@ -1182,8 +1184,6 @@ fn add_custom_flags(
11821184
cmd: &mut ProcessBuilder,
11831185
build_script_outputs: &BuildScriptOutputs,
11841186
metadata: Option<Metadata>,
1185-
completed_units: Arc<Mutex<HashMap<Metadata, bool>>>,
1186-
scrape_units: Option<HashMap<Metadata, PathBuf>>,
11871187
) -> CargoResult<()> {
11881188
if let Some(metadata) = metadata {
11891189
if let Some(output) = build_script_outputs.get(metadata) {
@@ -1202,16 +1202,6 @@ fn add_custom_flags(
12021202
}
12031203
}
12041204

1205-
if let Some(scrape_units) = scrape_units {
1206-
let completed_units = completed_units.lock().unwrap();
1207-
for (_, output_path) in scrape_units
1208-
.iter()
1209-
.filter(|(buildkey, _)| completed_units[*buildkey])
1210-
{
1211-
cmd.arg("--with-examples").arg(output_path);
1212-
}
1213-
}
1214-
12151205
Ok(())
12161206
}
12171207

0 commit comments

Comments
 (0)