summaryrefslogtreecommitdiff
path: root/src/smt/dump.h
AgeCommit message (Collapse)Author
2020-09-22Update copyright header script to support CMake and Python files (#5067)Mathias Preiner
This PR updates the update-copyright.pl script to also update/add copyright headers to CMake specific files. It further fixes a small typo in the header.
2020-09-18Fix muzzled builds (#5093)Andres Noetzli
Commit 2c2f05c moved some function definitions from dump.h to dump.cpp, which is good. However, the corresponding definitions for muzzled builds weren't moved, so muzzled builds defined the operator << multiple times. This made our nightly competition build fail. This commit fixes the issue by moving the alternative definitions to the source file as well.
2020-09-16Dump commands in internal code using command printing functions. (#5040)Abdalrhman Mohamed
This is work towards migrating commands to the new API. Internal code that creates command objects just for dumping is replaced with direct calls to functions that print the those commands.
2020-09-02Introduce an internal version of Commands. (#4988)Abdalrhman Mohamed
This PR is a step towards the migration of Commands to the public API. Node versions of some Commands are introduced for internal use (as necessary). The DumpManager is refactored to make use of those commands.
2020-08-13More basic fix for dumping synth-fun (#4886)Andrew Reynolds
The commit (079a04b) appears to have broken the nightlies due to compile issues related a necessary addition to the Dump class (so that std::string could be printing on Dump streams). This changes the temporary solution so that we simply print a string on the standard output, when the Dump is enabled. This is required for temporarily keeping dump=raw-benchmark working for synth-fun commands.
2020-08-12Refactor functions that print commands (Part 1) (#4869)Abdalrhman Mohamed
This PR is a step towards migrating commands to the Term/Sort level. The functions for printing synth-fun command and its grammar were modified to remove their dependency on command objects and use nodes instead of exprs and types. Similar changes to other functions that print commands will follow.
2020-06-16Update copyright headers.Aina Niemetz
2019-09-06Remove portfolio (#3236)Andrew Reynolds
2019-04-24Do not use __ prefix for header guards. (#2974)Mathias Preiner
Fixes 2887.
2019-03-26Update copyright headers.Aina Niemetz
2018-09-17Remove broken dumping support from portfolio build (#2470)Andres Noetzli
Dumping support for portfolio builds was introduced in 84f26af22566f7c10dea45b399b944cb50b5e317 but as far as I can tell, the implementation has already been problematic in the original implementation. The current implementation has the following issues: - Dumping with a portfolio build (even when using the single threaded executable) results in a segfault. The reason is that the DumpChannel variable is declared as an `extern` and exists for the duration of the program. The problem is that it stores a `CommandSequence`, which indirectly may store nodes. When shutting down CVC4, the destructor of `DumpC` is called, which destroys the `CommandSequence`, which results in a segfault because the `NodeManager` does not exist anymore. The node manager is (indirectly) owned and destroyed by the `api::Solver` object. - Additionally, adding commands to the `CommandSequence` is not thread safe (it just calls `CommandSequence::addCommand()`, which in turn pushes back to a vector [0] (which is not thread safe [1]). A single instance of `DumpChannel` is shared among all threads (it is not declared `thread_local` [2]). - The `CommandSequence` in `DumpC` was not used in the original implementation and is still unused on master. The original commit mentions that the portfolio build stores the commands in the `CommandSequence` but not why. This commit removes the `CommandSequence` and related methods from `DumpC` to avoid the issue when destroying `DumpChannel`. It disables dumping for portfolio builds and adds a check at configure-time that not both options have been enabled simultaneously. Given that the option was not functional previously, the problematic implementation, and the fact that the dump of multiple threads wouldn't be very useful, disabling dumping for portfolio builds is unlikely to be problem. An improvement that could be made is to disable dumping support only for the pcvc4 binary and while enabling it for the single-threaded version, even when using `--with-portfolio`. However, we currently do not have the infrastructure for that (we use the same libcvc4 library for both binaries). [0] https://github.com/CVC4/CVC4/blob/c2111c86973b8a80e20a3fdf3cbd0b2ff0dc7010/src/smt/command.cpp#L756 [1] https://en.cppreference.com/w/cpp/container [2] https://github.com/CVC4/CVC4/blob/c2111c86973b8a80e20a3fdf3cbd0b2ff0dc7010/src/smt/dump.h#L117
2018-06-25Updated copyright headers.Aina Niemetz
2018-01-15Removing more miscellaneous throw specifiers. (#1509)Tim King
Removing more miscellaneous throw specifiers. Also fixing the spelling of amount in several places.
2017-07-07Update copyright headers.Mathias Preiner
2016-04-20update from the masterPaulMeng
2016-02-02Moving dump.*, command.*, model.*, and ite_removal.* from smt_util/ to smt/. ↵Tim King
Breaking an edge between the sat solver and command.h.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback