Skip to content

Commit a9f0314

Browse files
typelessclaude
andcommitted
Collapse build_targets into build_subset delegation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent bdff58a commit a9f0314

1 file changed

Lines changed: 2 additions & 38 deletions

File tree

src/exec/scheduler.cpp

Lines changed: 2 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,7 @@ auto Scheduler::execute_parallel(
690690
auto finished_count = std::size_t { 0 };
691691
auto failed = false;
692692

693-
// Pre-compute source/output roots for execute_job_pre/post
693+
// Pre-compute source/output roots for job preparation
694694
auto source_root_sv = pool.get(impl_->options.source_root);
695695
auto output_root_sv = pool.get(impl_->options.output_root);
696696
auto output_root_prefix = pool.get(pup::path::relative(output_root_sv, source_root_sv));
@@ -1186,43 +1186,7 @@ auto Scheduler::build_targets(
11861186
Vec<NodeId> const& target_ids
11871187
) -> Result<BuildStats>
11881188
{
1189-
auto start_time = pup::SteadyClock::time_point { pup::SteadyClock::now() };
1190-
impl_->cancelled = false;
1191-
impl_->stats = BuildStats {};
1192-
1193-
// Collect all commands needed to build these targets via reverse traversal
1194-
auto required_cmds = collect_required_commands(graph, target_ids);
1195-
1196-
// Build all jobs, then filter to required commands
1197-
auto all_jobs = build_job_list(graph);
1198-
if (!all_jobs) {
1199-
return pup::unexpected<Error>(all_jobs.error());
1200-
}
1201-
1202-
auto jobs = filter_jobs(*all_jobs, required_cmds);
1203-
impl_->stats.total_jobs = jobs.size();
1204-
impl_->stats.skipped_jobs = all_jobs->size() - jobs.size();
1205-
1206-
if (jobs.empty()) {
1207-
auto end_time = pup::SteadyClock::time_point { pup::SteadyClock::now() };
1208-
impl_->stats.total_time = std::chrono::duration_cast<std::chrono::milliseconds>(
1209-
end_time - start_time
1210-
);
1211-
return impl_->stats;
1212-
}
1213-
1214-
auto exec_result = execute_parallel(jobs, graph);
1215-
1216-
auto end_time = pup::SteadyClock::time_point { pup::SteadyClock::now() };
1217-
impl_->stats.total_time = std::chrono::duration_cast<std::chrono::milliseconds>(
1218-
end_time - start_time
1219-
);
1220-
1221-
if (!exec_result && !impl_->options.keep_going) {
1222-
return pup::unexpected<Error>(exec_result.error());
1223-
}
1224-
1225-
return impl_->stats;
1189+
return build_subset(graph, collect_required_commands(graph, target_ids));
12261190
}
12271191

12281192
auto Scheduler::filter_jobs(

0 commit comments

Comments
 (0)