Files
rose-ash/lib/prolog/scoreboard.md
giles 537e2cdb5a
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
sub_atom/5 (non-det substring) + aggregate_all/3 (count/bag/sum/max/min/set)
Adds two new builtins to lib/prolog/runtime.sx:

- sub_atom/5: non-deterministic substring enumeration. Iterates all
  (start, length) pairs over the atom string, tries to unify Before,
  Length, After, SubAtom for each candidate. Uses CPS loop helpers
  pl-substring, pl-sub-atom-try-one!, pl-sub-atom-loop!. Fixed trail
  undo semantics: only undo on backtrack (k returns false), not on success.

- aggregate_all/3: collects all solutions via pl-collect-solutions then
  reduces. Templates: count, bag(T), sum(E), max(E), min(E), set(T).
  max/min fail on empty; count/bag/sum/set always succeed.

New test suite lib/prolog/tests/string_agg.sx: 25 tests, all passing.
Total conformance: 496/496.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 13:50:13 +00:00

981 B

Prolog scoreboard

496 / 496 passing (0 failure(s)). Generated 2026-04-25T13:49:43+00:00.

Suite Passed Total Status
parse 25 25 ok
unify 47 47 ok
clausedb 14 14 ok
solve 62 62 ok
operators 19 19 ok
dynamic 11 11 ok
findall 11 11 ok
term_inspect 14 14 ok
append 6 6 ok
reverse 6 6 ok
member 7 7 ok
nqueens 6 6 ok
family 10 10 ok
atoms 34 34 ok
query_api 16 16 ok
iso_predicates 29 29 ok
meta_predicates 25 25 ok
list_predicates 33 33 ok
meta_call 15 15 ok
set_predicates 15 15 ok
char_predicates 27 27 ok
io_predicates 24 24 ok
assert_rules 15 15 ok
string_agg 25 25 ok

Run bash lib/prolog/conformance.sh to refresh. Override the binary with SX_SERVER=path/to/sx_server.exe bash ….