From e954f59052fd2aee193527a0503a8b5a8575343b Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner <nbjorner@microsoft.com> Date: Mon, 14 Jan 2019 13:50:17 -0800 Subject: [PATCH] ensure that solver objects have timeout/rlimit/ctrl-c exposed as possible parameters Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> --- src/cmd_context/context_params.cpp | 4 ++-- src/solver/solver.cpp | 9 +++++++++ src/util/params.cpp | 7 ++++++- src/util/params.h | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/cmd_context/context_params.cpp b/src/cmd_context/context_params.cpp index c0ab1e3e2..447718aa9 100644 --- a/src/cmd_context/context_params.cpp +++ b/src/cmd_context/context_params.cpp @@ -166,8 +166,8 @@ void context_params::updt_params(params_ref const & p) { } void context_params::collect_param_descrs(param_descrs & d) { - d.insert("timeout", CPK_UINT, "default timeout (in milliseconds) used for solvers", "4294967295"); - d.insert("rlimit", CPK_UINT, "default resource limit used for solvers. Unrestricted when set to 0.", "0"); + insert_rlimit(d); + insert_timeout(d); d.insert("well_sorted_check", CPK_BOOL, "type checker", "false"); d.insert("type_check", CPK_BOOL, "type checker (alias for well_sorted_check)", "true"); d.insert("auto_config", CPK_BOOL, "use heuristics to automatically select solver and configure it", "true"); diff --git a/src/solver/solver.cpp b/src/solver/solver.cpp index f8c2f8072..f3c533704 100644 --- a/src/solver/solver.cpp +++ b/src/solver/solver.cpp @@ -217,8 +217,17 @@ void solver::assert_expr(expr* f, expr* t) { assert_expr_core2(fml, a); } +static void insert_ctrl_c(param_descrs & r) { + r.insert("ctrl_c", CPK_BOOL, "enable interrupts from ctrl-c", "false"); +} + + void solver::collect_param_descrs(param_descrs & r) { r.insert("solver.enforce_model_conversion", CPK_BOOL, "(default: false) enforce model conversion when asserting formulas"); + insert_timeout(r); + insert_rlimit(r); + insert_max_memory(r); + insert_ctrl_c(r); } void solver::reset_params(params_ref const & p) { diff --git a/src/util/params.cpp b/src/util/params.cpp index 43f53514a..bfb6095d6 100644 --- a/src/util/params.cpp +++ b/src/util/params.cpp @@ -298,9 +298,14 @@ void insert_produce_proofs(param_descrs & r) { } void insert_timeout(param_descrs & r) { - r.insert("timeout", CPK_UINT, "(default: infty) timeout in milliseconds."); + r.insert("timeout", CPK_UINT, "(default: infty) timeout in milliseconds.", "4294967295"); } +void insert_rlimit(param_descrs & r) { + r.insert("rlimit", CPK_UINT, "default resource limit used for solvers. Unrestricted when set to 0.", "0"); +} + + class params { friend class params_ref; struct value { diff --git a/src/util/params.h b/src/util/params.h index 0a68a9606..5330993c1 100644 --- a/src/util/params.h +++ b/src/util/params.h @@ -139,5 +139,6 @@ void insert_max_steps(param_descrs & r); void insert_produce_models(param_descrs & r); void insert_produce_proofs(param_descrs & r); void insert_timeout(param_descrs & r); +void insert_rlimit(param_descrs & r); #endif