Gotta check them all!
  • OCaml 98.1%
  • Shell 1.7%
  • Makefile 0.2%
Find a file
2022-04-08 18:18:14 +02:00
experiments/compute_cover Experiment with more solver backends 2019-11-29 21:32:00 +01:00
lib remove cycle detection/avoidance: we now simply assume that the repository does not contain cycles 2022-04-08 18:14:45 +02:00
lib_compute_cover report.json is now a stream of json objects 2020-03-13 17:44:10 +01:00
src remove cycle detection/avoidance: we now simply assume that the repository does not contain cycles 2022-04-08 18:14:45 +02:00
vendored-opam@3821d60784 Update wrt latest opam 2022-04-08 18:13:18 +02:00
.gitignore .gitignore: ignore workdir/ (canonical name for marracheck's working directory) 2022-02-23 21:08:14 +01:00
.gitmodules rename the opam git submodule to vendored-opam 2020-09-22 23:09:42 +02:00
dune More dune trickery: use vendored_dirs 2020-09-23 00:16:06 +02:00
dune-project More dune trickery: use vendored_dirs 2020-09-23 00:16:06 +02:00
Makefile fix additional warnings + we do not need --profile=release anymore 2022-02-03 14:08:20 +01:00
marracheck.opam marracheck.opam: fix conflicting version requirements for cmdliner 2022-04-08 18:18:14 +02:00
opam-bin-cache.sh Add opam-bin-cache.sh 2019-03-11 23:26:04 +01:00
README.md README: running marracheck example 2022-03-13 23:29:04 +01:00
todo.txt more todo 2020-03-13 17:13:43 +01:00

Marracheck

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.

Build

As an opam package

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.

Local development copy

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.

External solver

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.

Running marracheck

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.)