You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
27
27
returns, linked-list traversal, iterative binary-tree traversal, and string
28
28
utilities; tightened example catalog copy where language support is still
29
29
status-only.
30
+
- Added a selected Zig/C backend parity verifier that compiles, builds, runs,
31
+
and compares non-example smoke programs across both native backends.
30
32
31
33
## [0.3.0] - 2026-05-07
32
34
@@ -48,7 +50,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
48
50
- Expanded `scripts/verify_error_stages.py` and `test/test_error_stage_matrix.py` so deferred semantic errors are checked across all semantic-capable modes and human/JSON output.
14. Installed CLI entrypoint (`a7`) is wired through `pyproject.toml`.
29
29
15. Debug/release example artifact verification is available through `scripts/build_examples.py`.
30
-
16.`run_all_tests.sh` includes C backend verification, both example E2E verifiers, debug/release artifact builds, the error-stage matrix, docs style checks, and full pytest.
30
+
16.`run_all_tests.sh` includes C backend verification, both example E2E verifiers, selected Zig/C parity smoke checks, debug/release artifact builds, the error-stage matrix, docs style checks, and full pytest.
31
31
17. Local file-based imports now fail closed during semantic analysis instead of swallowing module loading failures.
32
32
18. Zig unsupported expression fallbacks now fail as compiler-side codegen errors instead of generated `@compileError` expressions.
33
33
19.`fall` now fails closed with a semantic error instead of being ignored or reaching backend output.
Copy file name to clipboardExpand all lines: docs/SPEC.md
+16-4Lines changed: 16 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -617,8 +617,8 @@ break
617
617
// Continue to next iteration
618
618
continue
619
619
620
-
// Break/continue with label
621
-
outer: for i := 0; i < 10; i += 1 {
620
+
// Break/continue with loop label
621
+
@outer for i := 0; i < 10; i += 1 {
622
622
for j := 0; j < 10; j += 1 {
623
623
if condition {
624
624
break outer
@@ -627,6 +627,10 @@ outer: for i := 0; i < 10; i += 1 {
627
627
}
628
628
```
629
629
630
+
Loop labels use `@name` directly before a loop statement. The old
631
+
`name: for ...` spelling is rejected because `name:` is reserved for typed
632
+
bindings, fields, and case-like syntax.
633
+
630
634
Semantic validation reports unreachable statements that appear later in the same block after `ret`, a valid `break` or `continue`, `fall`, or an `if`/`match` statement whose branches all terminate.
631
635
632
636
---
@@ -1905,8 +1909,8 @@ break
1905
1909
// Continue to next iteration
1906
1910
continue
1907
1911
1908
-
// Break/continue with label
1909
-
outer: for i := 0; i < 10; i += 1 {
1912
+
// Break/continue with loop label
1913
+
@outer for i := 0; i < 10; i += 1 {
1910
1914
for j := 0; j < 10; j += 1 {
1911
1915
if condition {
1912
1916
break outer
@@ -1915,6 +1919,10 @@ outer: for i := 0; i < 10; i += 1 {
1915
1919
}
1916
1920
```
1917
1921
1922
+
Loop labels use `@name` directly before a loop statement. The old
1923
+
`name: for ...` spelling is rejected because `name:` is reserved for typed
1924
+
bindings, fields, and case-like syntax.
1925
+
1918
1926
Semantic validation reports unreachable statements that appear later in the same block after `ret`, a valid `break` or `continue`, `fall`, or an `if`/`match` statement whose branches all terminate.
0 commit comments