datalog: dl-set-strategy! validates known strategy values
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 24s
`dl-set-strategy!` accepted any keyword silently — typos like `:semi_naive` or `:semiNaive` were stored uninspected and the saturator then used the default. The user never learned their setting was wrong. Validator added: strategy must be one of `:semi-naive`, `:naive`, `:magic` (the values currently recognised by the saturator and magic-sets driver). Unknown values raise with a clear message that lists the accepted set. 1 regression test; conformance 276/276. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -15,7 +15,7 @@ for rose-ash data (e.g. federation graph, content relationships).
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/datalog/conformance.sh` → **275/275 across 11 suites**
|
||||
`bash lib/datalog/conformance.sh` → **276/276 across 11 suites**
|
||||
(tokenize, parse, unify, eval, builtins, semi_naive, negation, aggregates,
|
||||
api, magic, demo). Source is ~3100 LOC, tests ~2900 LOC, public API
|
||||
documented in `lib/datalog/datalog.sx`.
|
||||
@@ -320,6 +320,13 @@ large graphs.
|
||||
|
||||
_Newest first._
|
||||
|
||||
- 2026-05-11 — `dl-set-strategy!` accepted arbitrary keyword values
|
||||
silently. Typos like `:semi_naive` or `:semiNaive` were stored
|
||||
uninspected; the saturator then used the default and the user
|
||||
never learned their setting was a typo. Validator added: strategy
|
||||
must be one of `:semi-naive`, `:naive`, `:magic`. 1 regression test;
|
||||
276/276.
|
||||
|
||||
- 2026-05-11 — Anonymous-variable renamer collided with user-written
|
||||
`_anon<N>` symbols. The renamer started counter at 0 and produced
|
||||
`_anon1, _anon2, ...` unconditionally; if the user wrote
|
||||
|
||||
Reference in New Issue
Block a user