Note: this is at the moment still a WIP project that is developed erratically when the authors find time to do so.
Design notes (in French): marracheck-design-notes.
To just obtain the marracheck
binary, pinning the repository using opam should work.
opam pin add marracheck.dev https://github.com/Armael/marracheck.git
Afterwards, one still needs to install separately the external solver, see instructions below.
After cloning this repository, run:
git submodule update --init --recursive # fetch the vendored copy of the opam libs that we use
opam install --deps-only . # or, to create a fresh local switch: opam switch create --deps-only . ocaml-base-compiler.4.09.1
dune build
dune exec -- src/marracheck.exe --help
# (right now the only interesting marracheck command is `run`)
Then, install the external solver; see instructions below.
Right now marracheck needs an extra external solver to be installed and
available in the $PATH
. This is obviously not ideal and will be improved in
the future.
Instructions:
git clone https://github.com/sbjoshi/Open-WBO-Inc
cd Open-WBO-Inc
make r
This will build an open-wbo-inc_release
binary, that you need to copy
somewhere where it can be found through $PATH
.
Finally, marracheck requires an opam repository available locally (for example
with git clone https://github.com/ocaml/opam-repository
). Then marracheck
can be run with:
dune exec -- src/marracheck.exe run \
/path/to/opam-repository \
/path/to/marracheck-state \
ocaml-base-compiler.4.13.1
This will attempt to compile all versions of all packages compatible with ocaml
4.13.1. The /path/to/marracheck-state
directory will contain a binary
cache
directory of the packages, a standard opamroot
, and a switches
directory that tracks the progress of marracheck. The behavior of opam invoked
by marracheck can be configured with environment variables (see
opam env --help
for a full list.)