You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: INSTALL.md
+28-5Lines changed: 28 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,18 @@
1
-
## Installing Stack
1
+
## Installation Instructions
2
2
3
3
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.
4
8
Detailed installation instructions for many operating systems are given on the respective [installation webpage][stackinstall].
5
9
6
10
- 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).
7
11
Further instructions for installing stack including specific linux distributions are given [here][stackinstall].
8
12
- Windows 64-bit: Go to the [stack installation page][stackinstall]. Download and run the _Windows 64-bit Installer_.
9
13
- MacOS: Please follow the instructions on the [installation webpage][stackinstall].
10
14
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`).
14
16
```shell
15
17
cd<path/to/this/repository>
16
18
```
@@ -26,6 +28,27 @@ You can then build the library and run the demo as follows:
26
28
stack run
27
29
```
28
30
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
+
29
52
## What Is There to See
30
53
Our demo runs several independent examples.
31
54
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:
48
71
- 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.
49
72
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.
50
73
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.
52
75
The colours in your terminal might deviate from the following screenshots.
53
76
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.
0 commit comments