mix argus.gen.dl (Panoptes v0.13.0)

Copy Markdown View Source

Writes priv/dl/base.dl and priv/dl/layer2.dl from Argus.Schema.

Fact declarations are positional: .decl remote_call(id: symbol, mod: symbol, ...) has to agree with the column order Argus.Pipeline.Emit writes. Souffle cannot check that — a field swapped between two symbol columns parses fine and silently joins the wrong values — so the declarations were the one part of the schema with no mechanical link back to it, maintained by hand in 95 places across 19 files.

mix argus.gen.dl           # rewrite the generated files
mix argus.gen.dl --check   # verify they match; exit 1 if not

--check is what the test suite runs. Editing a relation in Argus.Schema and forgetting to regenerate fails the build rather than producing facts that decode wrongly.