fold/third_party/souffle/VENDOR.md

29 lines
1 KiB
Markdown

# Optional vendor: Souffle
Upstream: https://github.com/souffle-lang/souffle
Pinned ref: `2.5`
Pinned commit observed: `5682a9f12e2668ecdd26348fe63cc508bc0fcf47`
License: Universal Permissive License 1.0 (UPL-1.0)
## Fold role
Fact engine for reachability, taint, call graph, and interprocedural data-flow
relations. Souffle should consume Fold MidIR facts and emit derived facts that
Z3-backed detectors can use as assumptions or prioritization hints.
## Initial integration posture
- Do not link into `fold-core` yet.
- Fetch to `third_party/souffle/src` with `scripts/vendor/fetch_analysis_libs.sh`.
- First prototype should use standalone `.dl` + TSV facts. Move to generated C++
(`souffle -g.cpp`) only after useful relations are proven.
## External docs
- C++ interface: https://souffle-lang.github.io/interface
- Execution modes: https://souffle-lang.github.io/execute
## Open checks
- Define stable MidIR IDs for functions, blocks, ops, values, and provenance.
- Add caps/profiling before any whole-project fact generation.