1 | # Datalog
|
2 |
|
3 | The files in this directory are [Souffle](https://souffle-lang.github.io/)
|
4 | programs. We use them for to peform dataflow analyses on the Python -> C++
|
5 | translation.
|
6 |
|
7 | See the [Souffle Language Reference](https://souffle-lang.github.io/program) for
|
8 | details on how to write datalog.
|
9 |
|
10 | ## Installing Souffle
|
11 |
|
12 | ```
|
13 | deps/from_tar.sh download-souffle
|
14 | deps/from_tar.sh extract-souffle
|
15 | deps/from_tar.sh build-souffle
|
16 | ```
|
17 |
|
18 | ## Compiling a Souffle Binary
|
19 |
|
20 | You can compile a souffle program to fast native code with the `souffle_binary`
|
21 | ninja rule. For example, `souffle_binary('mycpp/datalog/call-graph.dl')` will
|
22 | produce an executable called `_bin/tools/call-graph`.
|
23 |
|
24 | See this [page from the Souffle docs](https://souffle-lang.github.io/execute)
|
25 | for details about how to run your program.
|
26 |
|
27 | ## Our Analyses
|
28 |
|
29 | TBD
|