Skip to content

Commit 2946a9a

Browse files
authored
Adds show search space stats support to resolvo solver (#1267)
Signed-off-by: David Gilligan-Cook <dcook@imageworks.com>
1 parent cd3318f commit 2946a9a

File tree

1 file changed

+24
-1
lines changed
  • crates/spk-solve/src/solvers/resolvo

1 file changed

+24
-1
lines changed

crates/spk-solve/src/solvers/resolvo/mod.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ mod spk_provider;
1919
use std::borrow::Cow;
2020
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
2121
use std::sync::Arc;
22+
use std::time::Instant;
2223

2324
use pkg_request_version_set::{SpkSolvable, SyntheticComponent};
2425
use spk_provider::SpkProvider;
@@ -41,7 +42,7 @@ use spk_solve_validation::{Validators, default_validators};
4142
use spk_storage::RepositoryHandle;
4243

4344
use crate::solver::Solver as SolverTrait;
44-
use crate::{DecisionFormatter, Error, Result, SolverExt, SolverMut};
45+
use crate::{DecisionFormatter, Error, Result, SolverExt, SolverMut, show_search_space_stats};
4546

4647
#[cfg(test)]
4748
#[path = "resolvo_tests.rs"]
@@ -443,6 +444,28 @@ impl SolverMut for Solver {
443444
if formatter.settings.show_solution {
444445
println!("{output}");
445446
}
447+
448+
// Equivalent to DecisionFormatter's show_search_space_info() for the StepSolver
449+
if formatter.settings.show_search_space_size {
450+
tracing::info!("Calculating search space stats. This may take some time...");
451+
let start = Instant::now();
452+
453+
let initial_requests = self
454+
.get_pkg_requests()
455+
.iter()
456+
.map(|r| r.pkg.to_string())
457+
.collect::<Vec<String>>();
458+
459+
show_search_space_stats(
460+
&initial_requests,
461+
&solution,
462+
&self.repos,
463+
formatter.settings.verbosity,
464+
)
465+
.await?;
466+
tracing::info!("That took {} seconds", start.elapsed().as_secs_f64());
467+
}
468+
446469
Ok(solution)
447470
}
448471

0 commit comments

Comments
 (0)