From d66abde730f70c7a278fa4fb2520239074c7134f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bobot?= <francois.bobot@cea.fr> Date: Thu, 26 Jan 2023 10:35:42 +0100 Subject: [PATCH] [Scheduler] add --no-fix-model mode Stop with steplimitreached when getting to fix-model --- colibri2/solver/scheduler.ml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/colibri2/solver/scheduler.ml b/colibri2/solver/scheduler.ml index fa881cd4a..222107b59 100644 --- a/colibri2/solver/scheduler.ml +++ b/colibri2/solver/scheduler.ml @@ -52,6 +52,12 @@ let stats_con_fix = Debug.register_stats_int "Scheduler.conflict_fix_model" let stats_step = Debug.register_stats_int "Scheduler.step" let stats_fix_model = Debug.register_stats_int "Scheduler.fix_model" +let no_fixmodel_option = + Colibri2_core.Options.register ~pp:Fmt.bool "Scheduler.fixmodel" + Cmdliner.Arg.( + value & flag + & info [ "no-fix-model" ] ~doc:"Stop at the start of FixModel") + exception Contradiction exception ReachStepLimit @@ -657,7 +663,11 @@ let run_one_step ~nodec t = Context.Ref.set t.solve_step step; make_choice t choice choices; true) - | FixModel -> run_one_step_fix_model ~nodec t + | FixModel -> + let d = Backtrackable.get_delayed t.solver_state in + if Colibri2_core.Options.get d no_fixmodel_option then + raise ReachStepLimit; + run_one_step_fix_model ~nodec t let rec flush t = try Backtrackable.flush t.solver_state -- GitLab