Re-record and ratify the corpus
This commit is contained in:
parent
5e020dbee1
commit
8bbb99e7aa
167 changed files with 257 additions and 139 deletions
|
|
@ -19,7 +19,7 @@ where a different source is noted.
|
||||||
- JS interpreter: accepts (prints `dropqme` — an unknown string escape
|
- JS interpreter: accepts (prints `dropqme` — an unknown string escape
|
||||||
drops the backslash silently)
|
drops the backslash silently)
|
||||||
- ANTLR grammar: rejects (token recognition error at: '"drop\q')
|
- ANTLR grammar: rejects (token recognition error at: '"drop\q')
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 12 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 49)
|
## Divergence (fuzz seed 20260709, index 49)
|
||||||
|
|
||||||
|
|
@ -29,7 +29,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_unexpected at 1:1)
|
- JS interpreter: rejects (err_unexpected at 1:1)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 20 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 11)
|
## Divergence (fuzz seed 20260709, index 11)
|
||||||
|
|
||||||
|
|
@ -39,7 +39,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: accepts (runs)
|
- JS interpreter: accepts (runs)
|
||||||
- ANTLR grammar: rejects (1:0: token recognition error at: '"a\z')
|
- ANTLR grammar: rejects (1:0: token recognition error at: '"a\z')
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 12 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 86)
|
## Divergence (fuzz seed 20260709, index 86)
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:5)
|
- JS interpreter: rejects (err_expect at 1:5)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 21 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 247)
|
## Divergence (fuzz seed 20260709, index 247)
|
||||||
|
|
||||||
|
|
@ -59,7 +59,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 21 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 119)
|
## Divergence (fuzz seed 20260709, index 119)
|
||||||
|
|
||||||
|
|
@ -69,7 +69,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:3)
|
- JS interpreter: rejects (err_expect at 1:3)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 21 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 9)
|
## Divergence (fuzz seed 20260709, index 9)
|
||||||
|
|
||||||
|
|
@ -79,7 +79,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:3)
|
- JS interpreter: rejects (err_expect at 1:3)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 22 at cd59791
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 144)
|
## Divergence (fuzz seed 20260709, index 144)
|
||||||
|
|
||||||
|
|
@ -89,7 +89,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:5)
|
- JS interpreter: rejects (err_expect at 1:5)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 23 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 456)
|
## Divergence (fuzz seed 20260709, index 456)
|
||||||
|
|
||||||
|
|
@ -99,7 +99,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:8)
|
- JS interpreter: rejects (err_expect at 1:8)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 23 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 182)
|
## Divergence (fuzz seed 20260709, index 182)
|
||||||
|
|
||||||
|
|
@ -109,7 +109,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:8)
|
- JS interpreter: rejects (err_expect at 1:8)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 23 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 284)
|
## Divergence (fuzz seed 20260709, index 284)
|
||||||
|
|
||||||
|
|
@ -119,7 +119,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:6)
|
- JS interpreter: rejects (err_expect at 1:6)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 23 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 276)
|
## Divergence (fuzz seed 20260709, index 276)
|
||||||
|
|
||||||
|
|
@ -129,7 +129,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 23 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 427)
|
## Divergence (fuzz seed 20260709, index 427)
|
||||||
|
|
||||||
|
|
@ -139,7 +139,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 24 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 101)
|
## Divergence (fuzz seed 20260709, index 101)
|
||||||
|
|
||||||
|
|
@ -149,7 +149,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 23 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 425)
|
## Divergence (fuzz seed 20260709, index 425)
|
||||||
|
|
||||||
|
|
@ -159,7 +159,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 24 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 194)
|
## Divergence (fuzz seed 20260709, index 194)
|
||||||
|
|
||||||
|
|
@ -169,7 +169,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 23 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 212)
|
## Divergence (fuzz seed 20260709, index 212)
|
||||||
|
|
||||||
|
|
@ -179,7 +179,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 24 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 25)
|
## Divergence (fuzz seed 20260709, index 25)
|
||||||
|
|
||||||
|
|
@ -189,7 +189,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 24 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 347)
|
## Divergence (fuzz seed 20260709, index 347)
|
||||||
|
|
||||||
|
|
@ -199,7 +199,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:5)
|
- JS interpreter: rejects (err_expect at 1:5)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 21 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 52)
|
## Divergence (fuzz seed 20260709, index 52)
|
||||||
|
|
||||||
|
|
@ -209,7 +209,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: rejects (err_expect at 1:4)
|
- JS interpreter: rejects (err_expect at 1:4)
|
||||||
- ANTLR grammar: accepts (parses)
|
- ANTLR grammar: accepts (parses)
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 26 at c447eb7
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 76)
|
## Divergence (fuzz seed 20260709, index 76)
|
||||||
|
|
||||||
|
|
@ -219,7 +219,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: accepts (runs)
|
- JS interpreter: accepts (runs)
|
||||||
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
|
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 25 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 13)
|
## Divergence (fuzz seed 20260709, index 13)
|
||||||
|
|
||||||
|
|
@ -229,7 +229,7 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: accepts (runs)
|
- JS interpreter: accepts (runs)
|
||||||
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
|
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- RESOLVED by ruling 25 at ad01bbd
|
||||||
|
|
||||||
## Divergence (fuzz seed 20260709, index 29)
|
## Divergence (fuzz seed 20260709, index 29)
|
||||||
|
|
||||||
|
|
@ -239,4 +239,18 @@ where a different source is noted.
|
||||||
|
|
||||||
- JS interpreter: accepts (runs)
|
- JS interpreter: accepts (runs)
|
||||||
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
|
- ANTLR grammar: rejects (1:4: mismatched input ':' expecting {<EOF>, ';', PARALLEL, LEFTARROW, IMPLIES, OR, AND, '=', NEQ, '<', '>', LEQ, GEQ, APPROX, SIM, '+', '-', TIMES, DIV, AST, COMPOSE, DEFINITION, HANDLE, ALLOC, RELEASE, '(', '|', MIDDOT})
|
||||||
- RULING: pending (see JUDGMENT_CALLS.md)
|
- 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
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
# SURFACE — what `js/mpl.js` actually implements
|
# SURFACE — what `js/mpl.js` actually implements
|
||||||
|
|
||||||
Audited from the source of `js/mpl.js` (Stage 2, C3) and pinned by the
|
Audited from the source of `js/mpl.js` at Stage 2 (C3, head `ea66a2a`) and
|
||||||
corpus. This file describes the implemented surface — exactly, no more.
|
pinned by the corpus of that stage. **Historical record**: Stage 3 ratified
|
||||||
Nothing here is ratified; where behavior looks accidental it is flagged in
|
the 26 judgment calls (2026-07-09) and changed the surface where rulings
|
||||||
`conformance/JUDGMENT_CALLS.md`, but it is recorded as observed.
|
overrode it — rationals, boolean conditions, binding discipline, depth
|
||||||
|
limit, composition, and parser alignment. Where this file and
|
||||||
|
`JUDGMENT_CALLS.md` disagree, the rulings govern; the ratified corpus is
|
||||||
|
the executable truth.
|
||||||
|
|
||||||
## Lexer
|
## Lexer
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "example", "decision": "", "notes": "seeded from examples/01_hello_world.mpl"}
|
{"status": "ratified", "source": "example", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "seeded from examples/01_hello_world.mpl"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "example", "decision": "", "notes": "seeded from examples/02_factorial.mpl"}
|
{"status": "ratified", "source": "example", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "seeded from examples/02_factorial.mpl"}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
-- Factorial example with proper precedence
|
-- Factorial example with proper precedence
|
||||||
factorial ≜ λn∈ℕ: (n≤1 ⟹ 1) | (n×factorial(n-1));
|
factorial ≜ λn∈ℕ: (n≤1 ⟹ 1) | (n×factorial(n-1));
|
||||||
result ← factorial(5);
|
result ≜ factorial(5);
|
||||||
✎result;
|
✎result;
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "× ÷ bind tighter than + -; + - and × ÷ left-associative"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "× ÷ bind tighter than + -; + - and × ÷ left-associative"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unary minus, including doubled and against binary minus"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unary minus, including doubled and against binary minus"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
2.5
|
5/2
|
||||||
2.5
|
5/2
|
||||||
3
|
3
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "/ is an ASCII alias of ÷"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 4", "notes": "/ is an ASCII alias of ÷"}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
42
|
42
|
||||||
1.5
|
3/2
|
||||||
0.5
|
1/2
|
||||||
2
|
2
|
||||||
7
|
7
|
||||||
0.5
|
1/2
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "integral doubles display without decimal point; literals normalize"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 4", "notes": "integral doubles display without decimal point; literals normalize"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
3.75
|
15/4
|
||||||
0.30000000000000004
|
3/10
|
||||||
6
|
6
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "IEEE double arithmetic, including the 0.1+0.2 representation artifact"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 4", "notes": "IEEE double arithmetic, including the 0.1+0.2 representation artifact"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "string escapes \\n \\t \\\" \\\\ (unknown escapes like \\q diverge from the grammar — see DIVERGENCES.md, not corpus-pinnable)"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 12", "notes": "string escapes \\n \\t \\\" \\\\ (unknown escapes like \\q diverge from the grammar — see DIVERGENCES.md, not corpus-pinnable)"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "+ concatenates when either operand is a string, rendering the other via show"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 5", "notes": "+ concatenates when either operand is a string, rendering the other via show"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "non-ASCII string content passes through byte-intact"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "non-ASCII string content passes through byte-intact"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "lists display with strings quoted inside; closures display as λ"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 5", "notes": "lists display with strings quoted inside; closures display as λ"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "λ definition, display, application, multiple parameters"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 5", "notes": "λ definition, display, application, multiple parameters"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "closures capture the environment, not values at definition time"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 9", "notes": "closures capture the environment, not values at definition time"}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
x ← 10;
|
x ≜ 10;
|
||||||
f ≜ λy: x + y;
|
f ≜ λy: x + y;
|
||||||
✎ f(1);
|
✎ f(1);
|
||||||
x ← 20;
|
x ← 20;
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "curried application and λ literals as call arguments"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "curried application and λ literals as call arguments"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "binary recursion through a guarded alternative"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "binary recursion through a guarded alternative"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "linear recursion 500 deep (within the host stack)"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 10", "notes": "linear recursion 500 deep (within the host stack)"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∀ with an accumulating assignment"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "∀ with an accumulating assignment"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
t ← 0;
|
t ≜ 0;
|
||||||
∀ n ∈ [1, 2, 3, 4, 5]: t ← t + n × n;
|
∀ n ∈ [1, 2, 3, 4, 5]: t ← t + n × n;
|
||||||
✎ t;
|
✎ t;
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
6
|
⊥
|
||||||
⊥
|
⊥
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a ∀ expression yields the last body value; empty collection yields ⊥"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 2", "notes": "a ∀ expression yields the last body value; empty collection yields ⊥"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "the ∀ variable shadows per iteration and the outer binding survives"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 15", "notes": "the ∀ variable shadows per iteration and the outer binding survives"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
n ← 100;
|
n ≜ 100;
|
||||||
∀ n ∈ [1, 2]: ✎ n;
|
∀ n ∈ [1, 2]: ✎ n;
|
||||||
✎ n;
|
✎ n;
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "the canonical conditional: guarded alternatives with fallback"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 3", "notes": "the canonical conditional: guarded alternatives with fallback"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a guard that never fires, with no | fallback, surfaces as ⊥"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 3", "notes": "a guard that never fires, with no | fallback, surfaces as ⊥"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
✎((false ⟹ 1));
|
✎((false ⟹ 1));
|
||||||
x ← (false ⟹ 1);
|
x ≜ (false ⟹ 1);
|
||||||
✎ x;
|
✎ x;
|
||||||
|
|
|
||||||
1
conformance/corpus/022_guard_truthiness/expected.err
Normal file
1
conformance/corpus/022_guard_truthiness/expected.err
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
err_bool
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
one
|
|
||||||
no
|
|
||||||
num
|
|
||||||
no
|
|
||||||
no
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "guard conditions: true or non-zero number fire; strings/lists never do"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 13", "notes": "guard conditions: true or non-zero number fire; strings/lists never do"}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1 @@
|
||||||
✎((1 ⟹ "one") | "no");
|
✎((1 ⟹ "one") | "no");
|
||||||
✎((0 ⟹ "zero") | "no");
|
|
||||||
✎((2.5 ⟹ "num") | "no");
|
|
||||||
✎(("s" ⟹ "str") | "no");
|
|
||||||
✎(([1] ⟹ "list") | "no");
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "fall-through chains take the first firing arm"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 3", "notes": "fall-through chains take the first firing arm"}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,2 @@
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
3
|
|
||||||
5
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "≜ and ← both rebind freely; ← works without a prior ≜"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 16", "notes": "≜ and ← both rebind freely; ← works without a prior ≜"}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,3 @@ x ≜ 1;
|
||||||
✎ x;
|
✎ x;
|
||||||
x ← 2;
|
x ← 2;
|
||||||
✎ x;
|
✎ x;
|
||||||
x ≜ 3;
|
|
||||||
✎ x;
|
|
||||||
y ← 5;
|
|
||||||
✎ y;
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "both binding forms are expressions returning the bound value; ≜ chains right"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 16", "notes": "both binding forms are expressions returning the bound value; ≜ chains right"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "inside a λ, ← mutates the captured outer binding; ≜ creates a local one"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 9 and 16", "notes": "inside a λ, ← mutates the captured outer binding; ≜ creates a local one"}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
x ← 1;
|
x ≜ 1;
|
||||||
f ≜ λy: {x ← 99; x};
|
f ≜ λy: {x ← 99; x};
|
||||||
f(0);
|
f(0);
|
||||||
✎ x;
|
✎ x;
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a block yields its last expression; {} yields ⊥; trailing ; permitted"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 15", "notes": "a block yields its last expression; {} yields ⊥; trailing ; permitted"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "braces do NOT create a scope: bindings made inside leak out"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 15", "notes": "braces do NOT create a scope: bindings made inside leak out"}
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
{y ← 9; 0};
|
{y ≜ 9; 0};
|
||||||
✎ y;
|
✎ y;
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "line comments and nested block comments"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "line comments and nested block comments"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "⊥ displays as ⊥ and concatenates/nests as a value"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 6", "notes": "⊥ displays as ⊥ and concatenates/nests as a value"}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
42
|
42
|
||||||
1.5
|
3/2
|
||||||
s
|
s
|
||||||
true
|
true
|
||||||
false
|
false
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "one ✎ per value type"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "one ✎ per value type"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "all six comparison operators on numbers"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 8", "notes": "all six comparison operators on numbers"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "lexicographic order and structural equality on strings"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 7 and 8", "notes": "lexicographic order and structural equality on strings"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "equality is structural per type and false across types; ⊥ equals ⊥"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 7", "notes": "equality is structural per type and false across types; ⊥ equals ⊥"}
|
||||||
|
|
|
||||||
1
conformance/corpus/035_mixed_compare/expected.err
Normal file
1
conformance/corpus/035_mixed_compare/expected.err
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
err_compare
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "ordering across types follows host coercion — observed, flagged as a judgment call"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 8", "notes": "ordering across types follows host coercion — observed, flagged as a judgment call"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1 @@
|
||||||
✎(1 < "2");
|
✎(1 < "2");
|
||||||
✎("10" < 9);
|
|
||||||
✎(true < 2);
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,3 @@ true
|
||||||
false
|
false
|
||||||
true
|
true
|
||||||
false
|
false
|
||||||
false
|
|
||||||
true
|
|
||||||
false
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∧ ∨ test operands with strict boolean truth — numbers are not truthy here"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 14", "notes": "∧ ∨ test operands with strict boolean truth — numbers are not truthy here"}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,3 @@
|
||||||
✎(true ∧ false);
|
✎(true ∧ false);
|
||||||
✎(false ∨ true);
|
✎(false ∨ true);
|
||||||
✎(false ∨ false);
|
✎(false ∨ false);
|
||||||
✎(1 ∧ true);
|
|
||||||
✎(0 ∨ true);
|
|
||||||
✎(true ∧ 1);
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∧ skips its right side on false; ∨ skips it on true (observable via side effect)"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 14", "notes": "∧ skips its right side on false; ∨ skips it on true (observable via side effect)"}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
x ← 0;
|
x ≜ 0;
|
||||||
f ≜ λv: {x ← x + 1; v};
|
f ≜ λv: {x ← x + 1; v};
|
||||||
false ∧ f(true);
|
false ∧ f(true);
|
||||||
✎ x;
|
✎ x;
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "a program written entirely in ASCII escapes behaves like its glyph spelling"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "a program written entirely in ASCII escapes behaves like its glyph spelling"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∈-constraints parse (incl. supplementary-plane 𝔹) and are discarded unevaluated"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 17", "notes": "∈-constraints parse (incl. supplementary-plane 𝔹) and are discarded unevaluated"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "✎ is an expression: prints and returns its operand"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "✎ is an expression: prints and returns its operand"}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
✎(✎ 5);
|
✎(✎ 5);
|
||||||
v ← ✎ "side";
|
v ≜ ✎ "side";
|
||||||
✎ v;
|
✎ v;
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∗ (U+2217) is multiplication, same as ×"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 19", "notes": "∗ (U+2217) is multiplication, same as ×"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "calls inside list literals; λ argument"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "calls inside list literals; λ argument"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "division by zero"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 1", "notes": "division by zero"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unbound identifier"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unbound identifier"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "calling a non-closure"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "calling a non-closure"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "nullary call syntax parses; arity is checked at runtime"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 18", "notes": "nullary call syntax parses; arity is checked at runtime"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "too many arguments"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "too many arguments"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∀ over a non-list"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "∀ over a non-list"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "numeric + with a non-number, non-string operand"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "numeric + with a non-number, non-string operand"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "- is numeric only, no string analog"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "- is numeric only, no string analog"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unary minus is numeric only"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unary minus is numeric only"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "arithmetic on ⊥"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 6", "notes": "arithmetic on ⊥"}
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
err_steps
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "the 500000-step evaluation budget"}
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
l ← [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
||||||
∀ a ∈ l: ∀ b ∈ l: ∀ c ∈ l: ∀ d ∈ l: ∀ e ∈ l: ∀ f ∈ l: 0;
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "identifiers may not start with _"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "identifiers may not start with _"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "juxtaposition call f x is not a call syntax"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "juxtaposition call f x is not a call syntax"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "no ternary; conditionals are guarded alternatives"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "no ternary; conditionals are guarded alternatives"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "output is ✎ only"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "output is ✎ only"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unterminated string literal"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unterminated string literal"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unknown ASCII escape word"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unknown ASCII escape word"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unclosed brace"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unclosed brace"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
err_comment
|
err_expect
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "unterminated block comment"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "unterminated block comment: '{-' without a matching '-}' is not a comment token, so the brace lexes bare and the program fails to parse (matches the grammar's MULTILINE_COMMENT)"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "∑ is M1, not a token"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "∑ is M1, not a token"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "√ is M1, not a token"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "√ is M1, not a token"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "% is M1, not a token"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "% is M1, not a token"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "range syntax [a..b] is M1"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "range syntax [a..b] is M1"}
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"status": "unratified", "source": "coverage", "decision": "", "notes": "¬ is M1, not a token"}
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09 (Stage 3 batch — behavior blessed as observed; no single ruling)", "notes": "¬ is M1, not a token"}
|
||||||
|
|
|
||||||
0
conformance/corpus/067_empty_program/expected.out
Normal file
0
conformance/corpus/067_empty_program/expected.out
Normal file
1
conformance/corpus/067_empty_program/meta.json
Normal file
1
conformance/corpus/067_empty_program/meta.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 20", "notes": "ruling 20: the empty program is valid and silent"}
|
||||||
0
conformance/corpus/067_empty_program/program.mpl
Normal file
0
conformance/corpus/067_empty_program/program.mpl
Normal file
2
conformance/corpus/068_paren_sequence/expected.out
Normal file
2
conformance/corpus/068_paren_sequence/expected.out
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
2
|
||||||
|
6
|
||||||
1
conformance/corpus/068_paren_sequence/meta.json
Normal file
1
conformance/corpus/068_paren_sequence/meta.json
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
{"status": "ratified", "source": "coverage", "decision": "Ratified 2026-07-09, ruling 21", "notes": "ruling 21: parentheses contain one seqExpr"}
|
||||||
2
conformance/corpus/068_paren_sequence/program.mpl
Normal file
2
conformance/corpus/068_paren_sequence/program.mpl
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
✎((1; 2));
|
||||||
|
✎((x ≜ 5; x + 1));
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue