Andres Notzli [Thu, 22 Dec 2016 04:03:29 +0000 (20:03 -0800)]
[LFSC] Fix memory leaks when creating CExprs
In certain cases, LFSC was creating CExprs with the single-argument
constructor, which allocates an array of one child, only to immediately
replace it with a new array (without deleting the old one).
Additionally, this commit fixes the construction of TYPE/KIND/MPZ/MPQ
expressions (the null pointer is appended automatically by the single
argument constructor, an array with two null pointer entries should not
be necessary).
Clark Barrett [Wed, 14 Dec 2016 21:45:54 +0000 (13:45 -0800)]
Merge pull request #119 from 4tXJ7f/smt_v2_5
Switch from SMT-LIB v2.0 to v2.5 for smt2 files
Andres Notzli [Wed, 14 Dec 2016 19:33:08 +0000 (11:33 -0800)]
Switch from SMT-LIB v2.0 to v2.5 for smt2 files
As mentioned in bug 741, CVC4 was parsing `.smt2` files using the
SMT-LIB v2.0 standard by default. This commit switches to v2.5.
Clark Barrett [Wed, 14 Dec 2016 19:12:58 +0000 (11:12 -0800)]
Made tear-down-incremental more like it used to be: when tear-down value
is 1, it does not automatically enable incremental mode.
Andrew Reynolds [Tue, 13 Dec 2016 21:20:58 +0000 (15:20 -0600)]
Merge pull request #118 from 4tXJ7f/fix_emp
Fix split-find-unsat-w-emp test
Clark Barrett [Mon, 12 Dec 2016 17:38:53 +0000 (09:38 -0800)]
Merge pull request #117 from 4tXJ7f/fix_order
Fix initialization order
Andres Notzli [Mon, 12 Dec 2016 09:55:36 +0000 (01:55 -0800)]
Fix split-find-unsat-w-emp test
Commit
2f2e9fcf1fbb27f8e799aeac2372c0a9113f01aa did not update the
split-find-unsat-w-emp test, this commit fixes that.
Clark Barrett [Mon, 12 Dec 2016 02:21:52 +0000 (18:21 -0800)]
Merge branch 'master' into fix_order
Clark Barrett [Mon, 12 Dec 2016 02:18:44 +0000 (18:18 -0800)]
Merge pull request #116 from 4tXJ7f/fix_mult
Fix (inactive) `MultSlice` rewrite
Tim King [Fri, 9 Dec 2016 22:28:23 +0000 (14:28 -0800)]
Fixing a use after free bug in Polynomial::denominatorLCM.
Andres Notzli [Thu, 8 Dec 2016 02:05:54 +0000 (18:05 -0800)]
Fix initialization order
This commit addresses the following warning:
```
warning: field 'd_negOne' will be initialized after field 'd_pivots'
[-Wreorder]
```
Andres Notzli [Thu, 8 Dec 2016 22:21:28 +0000 (14:21 -0800)]
Fix (inactive) `MultSlice` rewrite
The `MultSlice` rewrite was previously accepting multiplications of
three and more variables even though it was designed for multiplications
of two variables only. Fortunately, the rewrite was not actively used in
the bitvector solver. This commit strengthens the condition in
`applies()` and adds a unit test that checks that x * y * z and x * y do
not get rewritten to the same term.
ajreynol [Thu, 8 Dec 2016 18:45:59 +0000 (12:45 -0600)]
Enable remaining cardinality benchmarks
ajreynol [Thu, 8 Dec 2016 03:02:21 +0000 (21:02 -0600)]
Add missing regression
ajreynol [Wed, 7 Dec 2016 21:26:12 +0000 (15:26 -0600)]
Add sets regression, fixes bug 754. Minor fix to regexp in strings.
ajreynol [Wed, 7 Dec 2016 20:09:57 +0000 (14:09 -0600)]
Added cardinality to cvc language, fixes bug 753. Throw logic exception when using cardinality on sets with finite element type.
ajreynol [Wed, 7 Dec 2016 19:43:31 +0000 (13:43 -0600)]
Fix boolean term conversion for INST_ATTRIBUTE, fixes bug 764.
guykatzz [Wed, 7 Dec 2016 19:11:29 +0000 (11:11 -0800)]
Merge branch 'master' of https://github.com/CVC4/CVC4
guykatzz [Wed, 7 Dec 2016 19:11:11 +0000 (11:11 -0800)]
Turned off nonClausalSimplify when using fewerPreprocessingHoles.
It was turned off for unsatCores, and fewerPreprocessingHoles using the same infrastructure.
ajreynol [Wed, 7 Dec 2016 18:43:15 +0000 (12:43 -0600)]
Refactoring, generalization of bounded inference module. Simplification of rep set iterator. Disable quantifiers dynamic splitting for variables that are inferred bounded. Minor changes to fmc mbqi. Add regressions.
ajreynol [Wed, 7 Dec 2016 16:18:16 +0000 (10:18 -0600)]
Fix nf exp tracking for non-linear string equalities, fixes bug 768.
ajreynol [Tue, 6 Dec 2016 17:16:35 +0000 (11:16 -0600)]
Improve bounds for global heap in sep, refactor preprocessing. Minor improvement to sets.
Clark Barrett [Tue, 6 Dec 2016 00:07:07 +0000 (16:07 -0800)]
Added "dump=raw-benchmark" option for dumping all user commands exactly as received.
ajreynol [Sat, 3 Dec 2016 19:54:55 +0000 (13:54 -0600)]
Fix unit test for datatypes, add interface functions to datatypes.
Clark Barrett [Sat, 3 Dec 2016 00:25:26 +0000 (16:25 -0800)]
Fix for bug 734
Tim King [Fri, 2 Dec 2016 23:10:17 +0000 (15:10 -0800)]
Cleaning up Statistics::copyFrom to avoid casts.
Tim King [Fri, 2 Dec 2016 22:52:48 +0000 (14:52 -0800)]
Initializing the d_pivots variable.
Tim King [Fri, 2 Dec 2016 22:40:43 +0000 (14:40 -0800)]
Merge pull request #95 from 4tXJ7f/fix_sierra_build
Revert "Removing the CVC4_NEEDS_REPLACEMENT_FUNCTIONS guard to have a…
Clark Barrett [Fri, 2 Dec 2016 22:17:49 +0000 (14:17 -0800)]
Merge pull request #113 from 4tXJ7f/remove_extract_rule
Remove wrong `ExtractMultLeadingBit` rule
ajreynol [Fri, 2 Dec 2016 20:25:07 +0000 (14:25 -0600)]
Bug fixes and refactoring of parametric datatypes, add some regressions.
ajreynol [Fri, 2 Dec 2016 14:51:29 +0000 (08:51 -0600)]
Refactor preprocessing of models in fmf. Fix options --fmf-empty-sorts and --fmf-fun-rlv, fixes bug 723.
Andres Notzli [Fri, 14 Oct 2016 00:34:38 +0000 (17:34 -0700)]
Fix build on macOS Sierra
Before this fix, the build died with `ar: no archive members specified
when linking the empty libreplacements.la.` because macOS Sierra does
not require the replacements anymore. With this fix, `ffs.c` and
`strtok_r.c` are always getting compiled (even when they are empty) to
prevent the error. Also removed the unused
`CVC4_NEEDS_REPLACEMENT_FUNCTIONS` from `configure.ac` and added an
`#ifndef HAVE_FFS` to `ffs.c` for consistency with `strtok_r.c`.
ajreynol [Thu, 1 Dec 2016 17:37:44 +0000 (11:37 -0600)]
Fix quantifiers dynamic splitting module for incremental mode, fixes bug 765 and 763.
ajreynol [Thu, 1 Dec 2016 16:47:31 +0000 (10:47 -0600)]
Improvement and bug fix for str.indexof reduction, add regression. Other minor changes.
Andres Notzli [Wed, 30 Nov 2016 01:30:54 +0000 (17:30 -0800)]
Remove wrong `ExtractMultLeadingBit` rule
The rule `ExtractMultLeadingBit` estimated the number of leading zeros
wrong: when there were ones in the leading constant parts of the
factors, it was using the length of the non-zero part instead of the
length of the zero part. This commit includes an example for which the
previous version of the rule would cause a wrong answer.
Clark Barrett [Wed, 30 Nov 2016 23:31:50 +0000 (15:31 -0800)]
Merge pull request #115 from 4tXJ7f/bug766
Fix parsing of BVROTR by CVC parser
Clark Barrett [Wed, 30 Nov 2016 19:03:41 +0000 (11:03 -0800)]
Merge pull request #114 from 4tXJ7f/add_unit_test
Add unit test for `MultDistrib` rule
Andres Notzli [Wed, 30 Nov 2016 18:29:27 +0000 (10:29 -0800)]
Fix parsing of BVROTR by CVC parser
This commit fixes Bugzilla bug 766 as proposed by jacobly.alt@gmail.com.
Andres Notzli [Wed, 30 Nov 2016 17:03:36 +0000 (09:03 -0800)]
Add unit test for `MultDistrib` rule
This unit test checks that the issue fixed by commit
c0c424283c12cfce2874ea92188487d91acecdf3 has been resolved.
Clark Barrett [Mon, 28 Nov 2016 21:54:02 +0000 (13:54 -0800)]
Merge pull request #112 from 4tXJ7f/fix_mult_distrib
Fix `MultDistrib` rewrite rule
ajreynol [Tue, 22 Nov 2016 19:26:26 +0000 (13:26 -0600)]
Fix smt2 and cvc printers for testers when output and input languages are different.
Tim King [Tue, 22 Nov 2016 07:25:25 +0000 (23:25 -0800)]
Merge pull request #111 from 4tXJ7f/fix_test_includes
Remove unused, libstdc++-exclusive include
Andres Notzli [Tue, 22 Nov 2016 02:07:45 +0000 (18:07 -0800)]
Fix `MultDistrib` rewrite rule
The assertion in the `MultDistrib` rule would fail when doing:
```
Node expr = d_nm->mkNode(BITVECTOR_MULT, mkNode(BITVECTOR_SUB, x, y), z);
if (RewriteRule<MultDistrib>::applies(expr))
RewriteRule<MultDistrib>::apply(expr);
```
When checking which side to distribute over, the code only checked for
`BITVECTOR_PLUS` instead of `BITVECTOR_PLUS` or `BITVECTOR_SUB` in
contrast to the other conditions in
`RewriteRule<MultDistrib>::applies()` and the assert.
NOTE: I was only able to reproduce this issue when testing the rewrite
rule in isolation. The rule `SubEliminate` generally seems to turn the
`BITVECTOR_SUB` node into a `BITVECTOR_PLUS` node before the rewriter
tries `MultDistrib`.
Andres Notzli [Tue, 22 Nov 2016 01:17:05 +0000 (17:17 -0800)]
Remove unused, libstdc++-exclusive include
The file `ext/stdio_filebuf.h` does not seem to be available in libc++,
which made compilation of the unit tests for macOS unnecessarily
complicated given that it is not used anyway.
ajreynol [Mon, 21 Nov 2016 15:52:52 +0000 (09:52 -0600)]
Refactoring related to track instantiation option.
Clark Barrett [Fri, 18 Nov 2016 23:28:47 +0000 (15:28 -0800)]
Fix for unit test after changing default "all supported" logic name.
Tim King [Fri, 18 Nov 2016 23:17:31 +0000 (15:17 -0800)]
Removing some throw specifiers from OutputChannel. Fixes bug 716.
Clark Barrett [Fri, 18 Nov 2016 23:20:00 +0000 (15:20 -0800)]
Merge pull request #110 from 4tXJ7f/fix_makefiles
Fix Makefiles in test
Clark Barrett [Fri, 18 Nov 2016 23:09:07 +0000 (15:09 -0800)]
Modified a couple of regressoins to use ALL/QF_ALL instead of ALL_SUPPORTED/QF_ALL_SUPPORTED
Clark Barrett [Fri, 18 Nov 2016 23:01:59 +0000 (15:01 -0800)]
Add support for set-logic ALL, fix compiler error in GCC 6.1
Andres Notzli [Fri, 18 Nov 2016 02:24:47 +0000 (18:24 -0800)]
Fix Makefiles in test
With the recent changes to the regress tests, some of the Makefiles were
not in sync anymore. This commit fixes that.
Clark Barrett [Wed, 16 Nov 2016 23:54:48 +0000 (15:54 -0800)]
Merge pull request #108 from timothy-king/smt2-parser-exception-leaks
Adding garbage collection for the Smt2 Parser for Commands when excep…
PaulMeng [Wed, 16 Nov 2016 19:22:02 +0000 (13:22 -0600)]
Merge pull request #109 from PaulMeng/master
relational solver code refactor and bug fixes
Paul Meng [Tue, 15 Nov 2016 02:09:07 +0000 (20:09 -0600)]
relational solver code refactor and bug fixes
ajreynol [Mon, 14 Nov 2016 21:42:15 +0000 (15:42 -0600)]
Minor improvement to caching for extf bv inferences.
Tim King [Mon, 14 Nov 2016 04:34:10 +0000 (20:34 -0800)]
Adding garbage collection for the Smt2 Parser for Commands when exceptions are thrown.
Tim King [Sun, 13 Nov 2016 09:05:26 +0000 (01:05 -0800)]
Switching a large allocation to be heap allocated.
Tim King [Sun, 13 Nov 2016 08:33:40 +0000 (00:33 -0800)]
Deleting a parsed Command in the interactive_shell_black test.
Clark Barrett [Sat, 12 Nov 2016 23:27:13 +0000 (15:27 -0800)]
Merge pull request #107 from timothy-king/smt1-parser-exception-leaks
Adding garbage collection for the Smt1 Parser for Commands when…
Clark Barrett [Sat, 12 Nov 2016 23:25:42 +0000 (15:25 -0800)]
Merge pull request #106 from timothy-king/cvc-parser-exception-leaks
Adding garbage collection for the CVC Parser for Commands when except…
Clark Barrett [Sat, 12 Nov 2016 17:16:33 +0000 (09:16 -0800)]
Fixed a bug in cdhashmap in which doubly-linked list was not properly cleaned up on a call to obliterate.
Also, removed some experimental code and a unit test from cdmap_black that used it. This test created a CDList *in* context memory which seems like a very bad idea (and
it was improperly implemented resulting in a memory leak).
Tim King [Sat, 12 Nov 2016 08:05:36 +0000 (00:05 -0800)]
Adding garbage collection for the Smt1 Parser for Commands when exceptions are thrown.
Tim King [Sat, 12 Nov 2016 06:13:22 +0000 (22:13 -0800)]
Adding garbage collection for the CVC Parser for Commands when exceptions are thrown.
Tim King [Sat, 12 Nov 2016 00:44:19 +0000 (16:44 -0800)]
Merge pull request #105 from timothy-king/delete-maxed-out
Adding garbage collection of nodes with maxed out reference counts.
Tim King [Sat, 12 Nov 2016 00:25:05 +0000 (16:25 -0800)]
Deleting successfully parsed commands in the parser_black unit test.
Tim King [Sat, 12 Nov 2016 00:04:51 +0000 (16:04 -0800)]
Deleting the remaining commands in the Parser's queue within ~Parser().
Tim King [Fri, 11 Nov 2016 23:46:29 +0000 (15:46 -0800)]
Applying clang-format to parser.cpp.
Tim King [Fri, 11 Nov 2016 22:46:30 +0000 (14:46 -0800)]
Speeding up the common branches for inc().
Clark Barrett [Fri, 11 Nov 2016 22:41:51 +0000 (14:41 -0800)]
Enable eager bitblasting for QF_ABV when no stores are present.
ajreynol [Fri, 11 Nov 2016 18:59:13 +0000 (12:59 -0600)]
Add simple inferences for extended bitvector functions, add a few related options. Use bv2nat, int2bv as triggers. Add regressions.
Tim King [Thu, 10 Nov 2016 23:56:19 +0000 (15:56 -0800)]
Fixing a delete vs free mismatch in parser_builder_black.h.
Tim King [Thu, 10 Nov 2016 23:22:49 +0000 (15:22 -0800)]
Adding garbage collection of nodes with maxed out reference counts.
Tim King [Thu, 10 Nov 2016 17:40:23 +0000 (09:40 -0800)]
Added PtrCloser guards for constructNodePtr. This ensures garbage collection on type checking exceptions.
ajreynol [Thu, 10 Nov 2016 14:55:14 +0000 (08:55 -0600)]
Add option for enabling/disabling lazy extended function reduction in bitvectors.
Tim King [Thu, 10 Nov 2016 01:04:02 +0000 (17:04 -0800)]
Merge pull request #103 from timothy-king/uniq-ptr
Adds a C++05 version of unique_ptr. Used this to solve a garbage coll…
Tim King [Wed, 9 Nov 2016 22:09:25 +0000 (14:09 -0800)]
Renaming the class PtrCloser to not cause confusion with unique_ptr.
Tim King [Wed, 9 Nov 2016 21:46:43 +0000 (13:46 -0800)]
Merge branch 'master' into uniq-ptr
ajreynol [Wed, 9 Nov 2016 19:01:20 +0000 (13:01 -0600)]
Fix tptp parser memory leaks for include.
ajreynol [Tue, 8 Nov 2016 16:35:46 +0000 (10:35 -0600)]
Minor fixes related to ExtTheory + incremental, fixes bug760.
ajreynol [Tue, 8 Nov 2016 16:09:53 +0000 (10:09 -0600)]
Add a few options to separation logic and sets. Minor changes to separation logic, change syntax for empty heap constraint.
Tim King [Tue, 8 Nov 2016 00:04:57 +0000 (16:04 -0800)]
Merge pull request #104 from timothy-king/disabling-out-of-memory-tests-on-asan
Disabling out of memory tests unit tests when ASAN is enabled. ASAN f…
Tim King [Mon, 7 Nov 2016 21:38:53 +0000 (13:38 -0800)]
Disabling out of memory tests unit tests when ASAN is enabled. ASAN failures are too hard for the unit testing framework.
Tim King [Mon, 7 Nov 2016 19:44:52 +0000 (11:44 -0800)]
Changing ArrayStoreAll's constructor to delay allocation until it is done checking error conditions. This prevents a memory leak in exception throwing branches.
Tim King [Mon, 7 Nov 2016 19:10:17 +0000 (11:10 -0800)]
Fixing a memory leak in the CnfStream unit tests.
Tim King [Mon, 7 Nov 2016 18:24:11 +0000 (10:24 -0800)]
Fixing a memory leak in the eager bitblaster.
Tim King [Mon, 7 Nov 2016 06:27:00 +0000 (22:27 -0800)]
Adds a C++05 version of unique_ptr. Used this to solve a garbage collection problem caused by memory leaks of heap allocated Parsers.
Tim King [Mon, 7 Nov 2016 05:24:06 +0000 (21:24 -0800)]
Merge pull request #102 from timothy-king/node-id-eq
This switches the ZombieSet in the NodeManager to use NodeValue's id …
Tim King [Mon, 7 Nov 2016 00:05:29 +0000 (16:05 -0800)]
This switches the ZombieSet in the NodeManager to use NodeValue's id for equality comparison. The previously used function NodeValueEq incorrectly identified VARIABLE nodes as being equal. This meant that on hash collisions these nodes could leak memory.
Clark Barrett [Sat, 5 Nov 2016 14:39:09 +0000 (07:39 -0700)]
Merge pull request #101 from 4tXJ7f/fix_leak
Fix three leaks in unit tests
Andres Notzli [Sat, 5 Nov 2016 01:21:38 +0000 (18:21 -0700)]
Fix three leaks in unit tests
The `testMultipleCollection` test case was allocating a
ListenerCollection without deleting it. The helper function
`countCommands` was not deleting the `Command`s returned from
`InteractiveShell::readCommand`. In the `testEmptyFileInput` and
`testSimpleFileInput` tests, the `filename` string was not deleted. This
commit fixes all issues.
Clark Barrett [Sat, 5 Nov 2016 04:07:15 +0000 (21:07 -0700)]
Fix memory leak in node_black unit test.
ajreynol [Fri, 4 Nov 2016 21:28:20 +0000 (16:28 -0500)]
Fix a few more minor memory leaks.
ajreynol [Thu, 3 Nov 2016 22:31:05 +0000 (17:31 -0500)]
Make data points accurate in sep logic models.
ajreynol [Thu, 3 Nov 2016 20:09:12 +0000 (15:09 -0500)]
Add priorities to getNextDecision. Properly handle case for finite types + unbounded heaps in sep logic. Fix another simple memory leak in sygus.
Tim King [Thu, 3 Nov 2016 15:32:27 +0000 (08:32 -0700)]
Merge pull request #100 from 4tXJ7f/fix_context_mm_black
Fix back() of empty deque in context_mm_black test
Andres Notzli [Wed, 2 Nov 2016 23:55:37 +0000 (16:55 -0700)]
Fix back() of empty deque in context_mm_black test
The `testPushPop()` test case does a pop out of scope at the end that
lead to UB in `ContextManager::pop()` because it did a `deque::back()`
on an empty deque without checking. This commit adds an assertion in the
`ContextManager` and checks that the test case triggers the assertion.
ajreynol [Wed, 2 Nov 2016 20:02:07 +0000 (15:02 -0500)]
Add missing regression.
ajreynol [Wed, 2 Nov 2016 19:58:36 +0000 (14:58 -0500)]
Fix bug in separation logic for finite pto-data types. Minor cleanup in sep. Fix a few more memory leaks.
ajreynol [Wed, 2 Nov 2016 17:42:25 +0000 (12:42 -0500)]
Fix a few obvious memory leaks in sygus and quantifiers. Minor fix cvc3_compat.
ajreynol [Tue, 1 Nov 2016 21:47:24 +0000 (16:47 -0500)]
Minor fix to cvc3_compat.