#include "cvc4autoconfig.h"
#include "main/main.h"
#include "main/interactive_shell.h"
+#include "main/options.h"
#include "parser/parser.h"
#include "parser/parser_builder.h"
#include "parser/parser_exception.h"
DumpChannel.getStream() << Expr::setlanguage(opts[options::outputLanguage]);
// Create the expression manager using appropriate options
+ ExprManager* exprMgr;
# ifndef PORTFOLIO_BUILD
- ExprManager* exprMgr = new ExprManager(opts);
-# else
- vector<Options> threadOpts = parseThreadSpecificOptions(opts);
- ExprManager* exprMgr = new ExprManager(threadOpts[0]);
-# endif
-
-# ifndef PORTFOLIO_BUILD
+ exprMgr = new ExprManager(opts);
pExecutor = new CommandExecutor(*exprMgr, opts);
# else
- pExecutor = new CommandExecutorPortfolio(*exprMgr, opts, threadOpts);
+ vector<Options> threadOpts = parseThreadSpecificOptions(opts);
+ if(opts[options::incrementalSolving] && !opts[options::incrementalParallel]) {
+ Warning() << "WARNING: In --incremental mode, using the sequential solver unless forced by...\n"
+ << "WARNING: ...the experimental --incremental-parallel option.\n";
+ exprMgr = new ExprManager(opts);
+ pExecutor = new CommandExecutor(*exprMgr, opts);
+ }
+ else {
+ exprMgr = new ExprManager(threadOpts[0]);
+ pExecutor = new CommandExecutorPortfolio(*exprMgr, opts, threadOpts);
+ }
# endif
Parser* replayParser = NULL;
don't share (among portfolio threads) lemmas strictly longer than N
option fallbackSequential --fallback-sequential bool :default false
Switch to sequential mode (instead of printing an error) if it can't be solved in portfolio mode
+option incrementalParallel --incremental-parallel bool :default false :link --incremental
+ Use parallel solver even in incremental mode (may print 'unknown's at times)
expert-option waitToJoin --wait-to-join bool :default true
wait for other threads to join before quitting