| 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
|