fold/third_party/souffle/VENDOR.md

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

Open checks

  • Define stable MidIR IDs for functions, blocks, ops, values, and provenance.
  • Add caps/profiling before any whole-project fact generation.