5c42481b414760699fffe2751d16879ed484d7da
[cvc5.git] / NEWS
1 This file contains a summary of important user-visible changes.
2
3 Changes since 1.3
4 =================
5
6 * Timed statistics are now properly updated even on process abort.
7 * By default, CVC4 builds in "production" mode (optimized, with fewer
8 internal checks on). The common alternative is a "debug" build, which
9 is much slower. CVC4 also builds with GPL dependences by default now
10 (if those libraries are available), as this is the best-performing
11 version of CVC4. However, the new configure option "--bsd" disables
12 these GPL dependences and builds the best-performing BSD-licenced version
13 of CVC4.
14
15 Changes since 1.2
16 =================
17
18 New features:
19 * SMT-LIB-compliant support for abs, to_real, to_int, is_int, which were
20 previously missing
21 * New bv2nat/int2bv operators for bitvector/integer inter-compatibility.
22 * Support in linear logics for /, div, and mod by constants (with the
23 --rewrite-divk command line option).
24 * Parsing support for TPTP's TFF and TFA formats.
25 * A new theory of strings: word (dis-)equations, length constraints,
26 regular expressions.
27 * Increased compliance to SMT-LIBv2, numerous bugs and usability issues
28 resolved.
29 * New :command-verbosity SMT option to silence success and error messages
30 on a per-command basis, and API changes to Command infrastructure to
31 support this.
32
33 Behavioral changes:
34 * It is no longer permitted to request model or proof generation if there's
35 been an intervening push/pop.
36 * User-defined symbols (define-funs) are no longer reported in the output
37 of get-model commands.
38 * Exit codes are now more standard for UNIX command-line tools. Exit code
39 zero means no error---but the result could be sat, unsat, or unknown---and
40 nonzero means error.
41
42 API changes:
43 * Expr::substitute() now capable of substituting operators (e.g.,
44 function symbols under an APPLY_UF)
45 * Numerous improvements to the Java language bindings
46
47 Changes since 1.1
48 =================
49
50 * Real arithmetic now has three simplex solvers for exact precision linear
51 arithmetic: the classical dual solver and two new solvers based on
52 techniques for minimizing the sum of infeasibilities. GLPK can now be used
53 as a heuristic backup to the exact precision solvers. GLPK must be enabled
54 at configure time. See --help for more information on enabling these solvers.
55 * added support for "bit0" and "bit1" bitvector constants in SMT-LIB v1.2
56 * support for theory "alternates": new ability to prototype new decision
57 procedures that are selectable at runtime
58 * various bugfixes
59
60 Changes since 1.0
61 =================
62
63 * bit-vector solver now has a specialized decision procedure for unsigned bit-
64 vector inequalities
65 * numerous important bug fixes, performance improvements, and usability
66 improvements
67 * support for multiline input in interactive mode
68 * Win32-building support via mingw
69 * SMT-LIB get-model output now is easier to machine-parse: contains (model...)
70 * user patterns for quantifier instantiation are now supported in the
71 SMT-LIBv1.2 parser
72 * --finite-model-find was incomplete when using --incremental, now fixed
73 * the E-matching procedure is slightly improved
74 * Boolean terms are now supported in datatypes
75 * tuple and record support have been added to the compatibility library
76 * driver verbosity change: for printing all commands as they're executed, you
77 now need verbosity level >= 3 (e.g., -vvv) instead of level 1 (-v). This
78 allows tracing the solver's activities (with -v and -vv) without having too
79 much output.
80 * to make CVC4 quieter in abnormal (e.g., "warning" conditions), you can
81 use -q. Previously, this would silence all output (including "sat" or
82 "unsat") as well. Now, single -q silences messages and warnings, and
83 double -qq silences all output (except on exception or signal).
84
85 -- Morgan Deters <mdeters@cs.nyu.edu> Thu, 05 Dec 2013 14:22:26 -0500