1 KiB
1 KiB
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-coreyet. - Fetch to
third_party/souffle/srcwithscripts/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.