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 | and `souffle_cpp` ninja rules. For example,
|
22 | `souffle_cpp('mycpp/datalog/call-graph.dl')` will produce C++ source at
|
23 | `prebuilt/datalog/call-graph.cc` and
|
24 | `souffle_binary('prebuilt/datalog/call-graph.cc')` will produce an executable
|
25 | called `_bin/datalog/call-graph`.
|
26 |
|
27 | See this [page from the Souffle docs](https://souffle-lang.github.io/execute)
|
28 | for details about how to run your program.
|
29 |
|
30 | ## Our Analyses
|
31 |
|
32 | TBD
|