Skip to content

Commit 0d5c027

Browse files
committed
Update SAS21 artifact description
1 parent 65eba76 commit 0d5c027

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

docs/sas21-artifact-description.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# SAS21 Artifact Description
22

3-
The artifact is a Virtual Box Image based on Ubuntu 20.04.1. The login is goblint:goblint.
3+
The artifact is a VirtualBox Image based on Ubuntu 20.04.1. The login is `goblint:goblint`.
4+
45
## Validation
56

67
### Step by Step Instructions
@@ -28,7 +29,7 @@ Navigate to the folder `~/analyzer`. All paths are given relative to it.
2829

2930

3031
### Notes
31-
* The source code for benchmarks can be found in `./../bench/pthread/` and `./../bench/svcomp/`.
32+
* The source code for benchmarks can be found in `../bench/pthread/` and `../bench/svcomp/`.
3233
* Although it takes ~25 min to run all the benchmarks, the script continually updates the results HTML. Therefore it's possible to observe the first results in the partially-filled table without having to wait for the script to finish.
3334
* If you get messages such as `dune: command not found` run `eval $(opam env)`
3435

@@ -38,7 +39,8 @@ Navigate to the folder `~/analyzer`. All paths are given relative to it.
3839
**Goblint is a general framework for Abstract Interpretation and has been used to implement a wide variety of analyses. For extending Goblint with some entirely different analysis,
3940
one can use `./src/analyses/constants.ml` as a jumping-off point showing how to specify an analysis in the framework.**
4041

41-
The following description is about how to more specifically extend one of the analyses presented in the paper at hand.
42+
The following description is specifically about extending one of the thread-modular analyses presented in the paper at hand.
43+
4244
### Implementation of Analyses in the Paper
4345
The OCaml source code for the core of the analyses is found in `./src/analyses/basePriv.ml`.
4446
Each one is an appropriately-named module, e.g. `ProtectionBasedPriv`, with the following members:
@@ -61,7 +63,7 @@ presented in the paper quickly.
6163

6264
### Step by Step Instructions to Extending these Analyses
6365

64-
1. Modify or add thread-modular analyses in `./src/analyses/basePriv.ml`. (In case of adding also add to case distinction in `priv_module`)
66+
1. Modify or add thread-modular analyses in `./src/analyses/basePriv.ml`. (In case of addition also add to a case distinction in `priv_module` at the end of this file.)
6567
2. Run `make` and `make privPrecCompare`.
6668
3. Observe updated behavior, either:
6769
* Re-run the benchmarking as described above under Validation.
@@ -73,7 +75,7 @@ presented in the paper quickly.
7375
or
7476

7577
* Run some of the regression tests in `tests/regression/13-privatized` by calling `./regtest.sh 13 xx` where `xx` is the number of the test. Especially `xx > 16` are interesting, these were added with the paper and highlight
76-
differences between different approaches. If you added a new analysis make sure to pass `--sets exp.privatization chosenname` to the script.
78+
differences between different approaches. Use the `--sets exp.privatization chosenname` option to choose which thread-modular analysis to use.
7779

7880
### Outline of how the code is structured
7981
Lastly, we give a general outline of how code in the Goblint framework is organized:

0 commit comments

Comments
 (0)