Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 56s
dl-saturate! is now semi-naive: tracks a per-relation delta dict, and on each iteration walks every positive body-literal position, substituting the delta of its relation while joining the rest against the previous-iteration DB. Candidates are collected before mutating the DB so the "full" sides see a consistent snapshot. Rules with no positive body literal (e.g. (p X) :- (= X 5).) fall back to a one-shot naive pass via dl-collect-rule-candidates. dl-saturate-naive! retained as the reference implementation; 8 differential tests compare per-relation tuple counts on every recursive program. Switched dl-tuple-member? to indexed iteration instead of recursive rest (eliminates per-step list copy). Larger chains under bundled conformance trip O(n) membership × CPU sharing — added a Blocker to swap relations to hash-set membership.
16 lines
490 B
JSON
16 lines
490 B
JSON
{
|
|
"lang": "datalog",
|
|
"total_passed": 114,
|
|
"total_failed": 0,
|
|
"total": 114,
|
|
"suites": [
|
|
{"name":"tokenize","passed":26,"failed":0,"total":26},
|
|
{"name":"parse","passed":18,"failed":0,"total":18},
|
|
{"name":"unify","passed":28,"failed":0,"total":28},
|
|
{"name":"eval","passed":15,"failed":0,"total":15},
|
|
{"name":"builtins","passed":19,"failed":0,"total":19},
|
|
{"name":"semi_naive","passed":8,"failed":0,"total":8}
|
|
],
|
|
"generated": "2026-05-08T08:12:42+00:00"
|
|
}
|