- This is ASE submission artifact for "Datalog-based Scalable Semantic Diffing of Concurrent Programs".
- The purpose of this is to show the validity of this work, and show the results shown in the paper.
- If you have any question, please contact to the authors.
- To check the results only, you do not have to build and run since all results are already ready (In that case, please just run the script to print tables).
@inproceedings{DBLP:conf/kbse/SungLEW18,
author = {Chungha Sung and
Shuvendu K. Lahiri and
Constantin Enea and
Chao Wang},
title = {Datalog-based scalable semantic diffing of concurrent programs},
booktitle = {Proceedings of the 33rd {ACM/IEEE} International Conference on Automated
Software Engineering, {ASE} 2018, Montpellier, France, September 3-7,
2018},
pages = {656--666},
year = {2018},
crossref = {DBLP:conf/kbse/2018},
url = {https://doi.org/10.1145/3238147.3238211},
doi = {10.1145/3238147.3238211},
timestamp = {Wed, 21 Nov 2018 12:44:20 +0100},
biburl = {https://dblp.org/rec/bib/conf/kbse/SungLEW18},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
- Under
src
, typemkdir build
. cd build
- cmake ../ && make
- Z3 is needed (tested with Z3 4.5.0)
- Python and other scripts may need to be installed.
- src: LLVM pass of our approach
- test: test programs and scripts with benchmark programs we have used for experimental table.
- sastest: instrumented test programs of the prior work used for experimental table.
- Please extract
benchmarks.tar.gz
intobenchmarks
as the size of results is big.
./run_all-small.sh 1
: run all small sized benchmarks with our approach with rank 1../run_all-small.sh 2
: run all small sized benchmarks with our approach with rank 2../run_all-large.sh 1
: run all large sized benchmarks with our approach with rank 1../run_all-mayHb.sh
: run all (small and large) benchmarks to compute mayhb relations.
./makeTable-small.sh 1
: print a result table for small sized benchmarks with rank 1../makeTable-small.sh 2
: print a result table for small sized benchmarks with rank 2../makeTable-large 1
: print a result table for large sized benchmarks with rank 1.
- We don't have all results of rank 3 since it is meaningless. Some programs do not print result for rank 2 since it does not have more than 2 read from edges.
- Also, we do not have result table for large size with rank 2, 3 since it is meangless.
./run_all.sh
: run all programs used with the prior work. The result will be saved underresult
directory under each benchmark directory.