Files
rose-ash/lib/datalog/scoreboard.md
giles ba60db2eef
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 1m26s
datalog: reject malformed dict body literals
A dict in a rule body that isn't `{:neg <positive-lit>}` (the only
recognised dict shape) used to silently fall through every dispatch
clause in dl-rule-check-safety, contributing zero bound variables.
The user would then see a confusing "head variable(s) X do not
appear in any positive body literal" pointing at the head — not at
the actual bug in the body. Typos like `{:negs ...}` are the typical
trigger.

dl-process-lit! now flags both:

  - a dict that lacks :neg
  - a bare number / string / symbol used as a body lit

with a clear error naming the offending literal.

1 new regression test; conformance 265/265.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 08:04:03 +00:00

421 B

datalog scoreboard

265 / 265 passing (0 failure(s)).

Suite Passed Total Status
tokenize 30 30 ok
parse 22 22 ok
unify 29 29 ok
eval 40 40 ok
builtins 24 24 ok
semi_naive 8 8 ok
negation 10 10 ok
aggregates 23 23 ok
api 22 22 ok
magic 36 36 ok
demo 21 21 ok