Various setup for join operator
This MR contains various changes and fixes as a basis for implementing the join operator. This includes:
- a dockerfile to build a container where broom can be run without the need to install anything manually
docker build . -t broom docker run -it -v $(pwd)/src:/broom/src -v $(pwd)/scripts:/broom/scripts broom ./scripts/broom <...>
- configuration fixes so that qtest works and inline tests can be executed (
dune test
) - moved some code from
StateTable
into the new modulesEntailment
andJoin
- code to log joins (input+output) to a file, and a script to make this output a bit prettier
diff --git a/src/biabduction/Config.ml b/src/biabduction/Config.ml index d12453c..985a649 100644 --- a/src/biabduction/Config.ml +++ b/src/biabduction/Config.ml @@ -227,7 +227,7 @@ let print_contracts () = !_print_contracts let _dry_run = ref false let dry_run () = !_dry_run -let _log_joins = ref Option.none +let _log_joins = ref (Option.some "/tmp/joins") let log_joins () = !_log_joins let _use_legacy_join = ref true
./visualizeJoins.py /tmp/joins
- a config switch to switch between old and new join operator (both currently exactly the same)
→use_legacy_join
inConfig.ml
As of now, this should not change anything about the functionality.
Edited by Lukas Rysavy