Conversation
456a78b to
6440fe8
Compare
|
In the end, I implemented it as a |
7e27f53 to
7723b5d
Compare
|
In the last commits, except of some refactoring, I resolved compatibility issues with MacOS and fixed some narrowing conversions of |
|
I added more comments on how the synchronization works, based on cppreference. The regression tests are unstable though (they may fail in the future), and also require large benchmarks. |
|
I moved the regression tests to a separate branch and replaced them with unit tests. |
|
I changed the behavior of With this, it was possible to include unit tests on |
I realized that now it is a bit confusing, because the behavior is different if we call
The advantage of (2) is that the semantics are clear and independent from the time it is set, as is usual for a configuration. The disadvantage is that, e.g., parsing the formula is excluded from the time limit, which may or may not be desired. (3) is a bit complicated to implement as an option in All 3 options can be addressed as separate things. The question is which of them we want. |
Currently, it actually keeps returning I checked that CVC5 nor z3 return |
|
CVC5 only supports It makes sense to me. I would not include the overall timeout in the options at all, only This would ideally also require checking the stop flag not only within the solving, but also within adding assertions and preprocessing. |
|
I reverted to the previous solution where As mentioned above, it should ideally also stop processing formulas and simplifying them once the time limit is reached, i.e., not only in the case of solving. |
It is possible to set it via API, SMT-LIB, or as a command-line parameter.
I did not implement it within the
set-optioncommand, hence withinSMTConfig, because the timeout also takes an immediate action by starting a thread, which may stop the evaluation. The configuration may even be supplied by a user externally. It is also possible to specify this command after the solver was already created, which typically happens in SMT-LIB scripts. UsingSMTConfigwould require special treatment compared to other options, that is, to run an action once the option is set.Resolves #766
We still do not support a timeout per query for incremental solving (as e.g. CVC5 does).