Skip to content

Commit e21a915

Browse files
committed
Merge branch 'master' into esecfse21
2 parents 4904053 + b6c24d6 commit e21a915

1 file changed

Lines changed: 28 additions & 5 deletions

File tree

INSTALL.md

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
## Installing Stack
1+
## Installation Instructions
22

33
As explained in the [REQUIREMENTS.md](REQUIREMENTS.md), the [_Stack_][stack] build system is our only installation requirement.
4+
You can install it yourself or use the [Dockerfile](Dockerfile).
5+
6+
### Option 1: Manual Setup
7+
First, please install Stack.
48
Detailed installation instructions for many operating systems are given on the respective [installation webpage][stackinstall].
59

610
- Linux: You can install stack via `curl -sSL https://get.haskellstack.org/ | sh` or `wget -qO- https://get.haskellstack.org/ | sh` (Alternatively, if you are using an Ubuntu-based distro, you can get it with apt `sudo apt-get install haskell-stack`, or `sudo pacman -S stack` if you are using an Arch-based distro).
711
Further instructions for installing stack including specific linux distributions are given [here][stackinstall].
812
- Windows 64-bit: Go to the [stack installation page][stackinstall]. Download and run the _Windows 64-bit Installer_.
913
- MacOS: Please follow the instructions on the [installation webpage][stackinstall].
1014

11-
## Running the Demo
12-
13-
After you installed stack, please open a terminal and navigate to the repository's directory (the directory containing this `INSTALL.md`).
15+
Second, please open a terminal and navigate to the repository's directory (the directory containing this `INSTALL.md`).
1416
```shell
1517
cd <path/to/this/repository>
1618
```
@@ -26,6 +28,27 @@ You can then build the library and run the demo as follows:
2628
stack run
2729
```
2830

31+
### Option 2: Setup via Dockerfile
32+
33+
First, install [Docker](https://www.docker.com/).
34+
Second, open a terminal and navigate to the repository's directory (the directory containing this `INSTALL.md`).
35+
```shell
36+
cd <path/to/this/repository>
37+
```
38+
Third, create the docker image:
39+
```shell
40+
docker build -t ftr .
41+
```
42+
You can verify that the image was created successfully by running
43+
```shell
44+
docker images
45+
```
46+
and checking that an image called `ftr` is listed.
47+
Fourth, you can run the image and thus the demo:
48+
```shell
49+
docker run -t ftr
50+
```
51+
2952
## What Is There to See
3053
Our demo runs several independent examples.
3154
Each example is separated by a red headline and consists of a series of edits applied to a source code fragment.
@@ -48,7 +71,7 @@ By default, the following examples are executed in this order:
4871
- Bob's part of the motivating example shown in Figure 3 in the paper. As the synchronisation of code and feature traces across clones is subject to future work, this example simulates how we envision the synchronisation.
4972
2. Examples of edit patterns from the evaluation (Section 5): For each pattern we show how to reproduce it in the general case and when an outer scope (eg., a method) is already assigned the target mapping. We omitted AddIfdef* as it is just a repitition of AddIfdef with arbitrary contexts and code fragments. As AddIfdefElse has to be reproduced using two variants, we need two different examples here, one for the if-branch and one for the else-branch.
5073

51-
If you see the following output after `stack run`, the build process and execution of the demo were successful.
74+
If you see the following output after `stack run` (or when running the Dockerfile), the build process and execution of the demo were successful.
5275
The colours in your terminal might deviate from the following screenshots.
5376
The following screenshots also display the entire default output of the demo in case you were not able to install the stack or get the demo running.
5477

0 commit comments

Comments
 (0)