Skip to content

Various setup for join operator

Lukas Rysavy requested to merge join-switch into master

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 modules Entailment and Join
  • 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
    Then, use ./visualizeJoins.py /tmp/joins
  • a config switch to switch between old and new join operator (both currently exactly the same)
    use_legacy_join in Config.ml

As of now, this should not change anything about the functionality.

Edited by Lukas Rysavy

Merge request reports