mpl/conformance/DIVERGENCES.md
2026-07-10 00:00:10 -04:00

5.8 KiB

DIVERGENCES — where the two parsers disagree

Each entry is a minimized program that one parser accepts and the other rejects (JS = the parse phase of js/mpl.js; ANTLR = the grammar via ./gradlew parseCheck). Divergences are recorded, never auto-fixed — which parser is right is a ratification question for Stage 3. Rulings happen in JUDGMENT_CALLS.md.

Entries below are appended by conformance/harness/fuzz.mjs (deterministic: seed and index reproduce the original program), except where a different source is noted.

Divergence (found during C3 corpus construction)

✎ "drop\qme";
  • JS interpreter: accepts (prints dropqme — an unknown string escape drops the backslash silently)
  • ANTLR grammar: rejects (token recognition error at: '"drop\q')
  • RESOLVED by ruling 12 at ad01bbd

Divergence (fuzz seed 20260709, index 49)


  • JS interpreter: rejects (err_unexpected at 1:1)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 20 at ad01bbd

Divergence (fuzz seed 20260709, index 11)

"a\zb"
  • JS interpreter: accepts (runs)
  • ANTLR grammar: rejects (1:0: token recognition error at: '"a\z')
  • RESOLVED by ruling 12 at ad01bbd

Divergence (fuzz seed 20260709, index 86)

((f);)
  • JS interpreter: rejects (err_expect at 1:5)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 21 at ad01bbd

Divergence (fuzz seed 20260709, index 247)

(42;)
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 21 at ad01bbd

Divergence (fuzz seed 20260709, index 119)

(a;)
  • JS interpreter: rejects (err_expect at 1:3)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 21 at ad01bbd

Divergence (fuzz seed 20260709, index 9)

(f∘g)
  • JS interpreter: rejects (err_expect at 1:3)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 22 at cd59791

Divergence (fuzz seed 20260709, index 144)

({"",(a)})
  • JS interpreter: rejects (err_expect at 1:5)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 23 at ad01bbd

Divergence (fuzz seed 20260709, index 456)

({"a b",2})
  • JS interpreter: rejects (err_expect at 1:8)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 23 at ad01bbd

Divergence (fuzz seed 20260709, index 182)

({(007),true})
  • JS interpreter: rejects (err_expect at 1:8)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 23 at ad01bbd

Divergence (fuzz seed 20260709, index 284)

({(1),⊥})
  • JS interpreter: rejects (err_expect at 1:6)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 23 at ad01bbd

Divergence (fuzz seed 20260709, index 276)

({5,"a b"})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 23 at ad01bbd

Divergence (fuzz seed 20260709, index 427)

({b:y})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 24 at ad01bbd

Divergence (fuzz seed 20260709, index 101)

({c,0.5})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 23 at ad01bbd

Divergence (fuzz seed 20260709, index 425)

({g:⊥})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 24 at ad01bbd

Divergence (fuzz seed 20260709, index 194)

({x,(5)})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 23 at ad01bbd

Divergence (fuzz seed 20260709, index 212)

({y:"hi"})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 24 at ad01bbd

Divergence (fuzz seed 20260709, index 25)

({y:0})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 24 at ad01bbd

Divergence (fuzz seed 20260709, index 347)

({{},{}})
  • JS interpreter: rejects (err_expect at 1:5)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 21 at ad01bbd

Divergence (fuzz seed 20260709, index 52)

({λ})
  • JS interpreter: rejects (err_expect at 1:4)
  • ANTLR grammar: accepts (parses)
  • RESOLVED by ruling 26 at c447eb7

Divergence (fuzz seed 20260709, index 76)

λ(b):(42)
  • JS interpreter: accepts (runs)
  • ANTLR grammar: rejects (1:4: mismatched input ':' expecting {, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
  • RESOLVED by ruling 25 at ad01bbd

Divergence (fuzz seed 20260709, index 13)

λ(f):42
  • JS interpreter: accepts (runs)
  • ANTLR grammar: rejects (1:4: mismatched input ':' expecting {, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
  • RESOLVED by ruling 25 at ad01bbd

Divergence (fuzz seed 20260709, index 29)

λ(y):f
  • JS interpreter: accepts (runs)
  • ANTLR grammar: rejects (1:4: mismatched input ':' expecting {, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
  • RESOLVED by ruling 25 at ad01bbd

Divergence (fuzz seed 20260710, index 178 — found during Stage 3 A7)

({-42})
  • JS interpreter: rejected (err_comment — the lexer committed '{-' to a comment even without a terminator)
  • ANTLR grammar: accepts (MULTILINE_COMMENT requires its '-}'; '{' lexes as a brace, so this is a block containing -42)
  • RESOLVED by grammar alignment (decision: the grammar is the syntax truth) at f5e8407 — no ruling needed; found by the fresh fuzz seed and fixed before commit