Repository navigation
jSMTLIB 0.14.0
Changes since the 0.13.0 release.
Time limits
- New
IResponse.IFactory#timeout(). A solver ended by its whole-run time limit
(SMT.Configuration#timeoutTotal) now answerstimeout()for the command that
hit the limit and for every later one. z3 (-T:) answerstimeoutand exits;
cvc5 (--tlimit) reports on stderr and aborts; each adapter recognizes its own
solver's report (isTimeLimitResponse). The limit runs on the wall clock, so it
can end a solver between commands; the next request -- includingget-value
and the other commands that send directly -- then recovers the report from the
process's unread output (SolverProcess#unreadOutput).
(OpenJML/OpenJML#1029) - z3: a query stopped by the per-query limit reports reason
timeout, as cvc5
does, where z3 4.16/5.1 in incremental mode saycanceled.
(OpenJML/OpenJML#1022) - yices2's
--timeoutapplies percheck-sat(observed with 2.7.0);
smtinterpol and alt-ergo apply the limit per query; bitwuzla's whole-run
report is unverified.
Solver adapters and API
- cvc5 is stopped after a parse error: when run interactively it neither
processes further input nor reliably exits, so later commands orexit()
waited forever.requireOptionEnabledreports a failedget-optionquery as
that error, not as the option being off. Solver_z3_4_3.get_valuereturns structured values like the other adapters,
so z3 4.3 prints model values exactly as newer z3 versions do.Parser.parseScriptreports a missing closing parenthesis instead of looping.- The command line exits with code 2 for a crash (an uncaught exception),
distinct from 1 for rejected input, also when several files are processed.
Logics report
logics-report.py, a manual all-platform tool:
- Combines the probe results of every platform into one report, with a
cross-platform consistency check, a(default)row andALL, and outputs as
Markdown (CI summary), LaTeX (the tutorial's "SMT-LIB Logics supported by
solvers" appendix) and HTML (the published page). - Probe fixes: stdin is closed, alt-ergo is invoked with its SMT-LIB front end,
theset-logicresponse is graded rather than the last line, partial output
is kept on a probe timeout, a solver that times out on three consecutive rows
is no longer probed, and an unusable binary is reported once rather than as
45 disagreements.
Tests
- New:
WholeRunTimeoutTests,ImmediateExitSolverStoppedAfterErrorBugTest,
ParseScriptMissingCloseParenBugTest. - Goldens updated for the version bump and z3 4.3's
get-valueformat. - Full suite: OK (11262 tests); CI passes on all five platforms.