! opts[options::threadArgv].empty() ) {
throw OptionException("Thread options cannot be used with sequential CVC4. Please build and use the portfolio binary `pcvc4'.");
}
-# else
- if( opts[options::checkProofs] ) {
- throw OptionException("Cannot run portfolio in check-proofs mode.");
- }
# endif
progName = opts[options::binary_name].c_str();
pExecutor = new CommandExecutor(*exprMgr, opts);
# else
vector<Options> threadOpts = parseThreadSpecificOptions(opts);
+ bool useParallelExecutor = true;
+ // incremental?
if(opts.wasSetByUser(options::incrementalSolving) &&
opts[options::incrementalSolving] &&
!opts[options::incrementalParallel]) {
Notice() << "Notice: In --incremental mode, using the sequential solver unless forced by...\n"
<< "Notice: ...the experimental --incremental-parallel option.\n";
- exprMgr = new ExprManager(opts);
- pExecutor = new CommandExecutor(*exprMgr, opts);
- } else {
+ useParallelExecutor = false;
+ }
+ // proofs?
+ if(opts[options::checkProofs]) {
+ if(opts[options::fallbackSequential]) {
+ Warning() << "Warning: Falling back to sequential mode, as cannot run portfolio in check-proofs mode.\n";
+ useParallelExecutor = false;
+ }
+ else {
+ throw OptionException("Cannot run portfolio in check-proofs mode.");
+ }
+ }
+ // pick appropriate one
+ if(useParallelExecutor) {
exprMgr = new ExprManager(threadOpts[0]);
pExecutor = new CommandExecutorPortfolio(*exprMgr, opts, threadOpts);
+ } else {
+ exprMgr = new ExprManager(opts);
+ pExecutor = new CommandExecutor(*exprMgr, opts);
}
# endif
! expr "$CVC4_REGRESSION_ARGS $command_line" : '.*--incremental' &>/dev/null &&
! expr "$CVC4_REGRESSION_ARGS $command_line" : '.*--unconstrained-simp' &>/dev/null &&
! expr " $CVC4_REGRESSION_ARGS $command_line" : '.* -[a-zA-Z]*i' &>/dev/null &&
+ ! expr "$BINARY" : '.*pcvc4' &>/dev/null &&
! expr "$benchmark" : '.*\.sy$' &>/dev/null; then
# later on, we'll run another test with --check-proofs on
check_proofs=true
! expr "$CVC4_REGRESSION_ARGS $command_line" : '.*--incremental' &>/dev/null &&
! expr "$CVC4_REGRESSION_ARGS $command_line" : '.*--unconstrained-simp' &>/dev/null &&
! expr " $CVC4_REGRESSION_ARGS $command_line" : '.* -[a-zA-Z]*i' &>/dev/null &&
+ ! expr "$BINARY" : '.*pcvc4' &>/dev/null &&
! expr "$benchmark" : '.*\.sy$' &>/dev/null; then
# later on, we'll run another test with --check-unsat-cores on
check_unsat_cores=true