Added getting started guide. authored by René Schöne's avatar René Schöne
- also fixed tables for gitlab
# Installation
## Docker
- Build the docker image with the Dockerfile contained in the `docker` directory
- Run the image
## Local installation
- (tested on Fedora 22)
- Download and install [Racket](https://racket-lang.org/download/) and optionally [Larceny](http://www.larcenists.org/)
- Clone the [racr repo](https://github.com/christoff-buerger/racr.git)
- Install racr using `install-libraries.bash`
- Let scheme IDE know about racr
- Racket: Create a symlink in `$RACKET_INSTALL_DIR/collects` pointing to `$RACR_REPO/racr/racket-bin/racr`
- Install [Fabric](http://www.fabfile.org/)
- best installed using `pip install fabric`
# Using racr-mquat
- to build the project for Racket, use `make` (prefered if you changed the source files and want to recompile just the affected files)
- alternatively use `fab install.racket` to unconditionally build everything for Racket
- everything else is guided by fabric
- to list all possible commands, use `fab -l`
- to get a description of a task, use `fab -d <TASKNAME>`
## Generell workflow for executing measurements
- Optional: check `ilp-measurements.scm` to contain the correct experiments to run (usually the case, if the file was not changed)
- Run `fab properties.check` to see the current experiment settings
- Optional: run `fab properties.setup` to change all properties or `fab properties.setup:<NAME>` to change a specific property
- Start the measurements with `fab measure.racket` (\*) or `fab measure.larceny` (\*) using Racket or Larceny, respectively
- Optional: run `fab measure.sol` (\*) to run the solver
- this uses `glpsol` and will fail, if it's not installed
- this requires to run a measurement beforehand with the properties `measure.lp.write = 1`, i.e., some ILP files to operate on
- Run `fab measure.conflate-results` to update the conflated result files
- Run `fab measure.distinction-of-changes` to create result files split by strategy found in directory `profiling/splitted`
- Optional: Rerun notebook to update diagrams using `runipy ilp-measurement.ipynb`
(\*) For these tasks, there are variants with "-n" append taking as first parameter the number of repetitions