Compiler Status: Full pipeline runs (Tokenizer -> Parser -> Semantic -> Preprocessor -> Codegen).
Current Test Status: check with PYTHONPATH=. uv run pytest --tb=no -q.
Examples: 36/36 pass end-to-end compile + build + run + output verification.
- Labeled loops —
outer: while,outer: for,outer: for-inwithbreak outer/continue outerin both Zig and C backends. - Slice expressions in C backend —
arr[1..4]on arrays and slices, including indexing andfor-inover slices. - Type checker: slice and index validation —
visit_slice_exprreturnsSliceType;visit_index_exprrejects non-integer indices. matchexpressions are type-checked and participate in expression typing.@type_set(...)parses in value context.- Generic arithmetic and generic local literal initialization are relaxed where valid.
- Generic struct literal field checks substitute concrete type arguments.
- Field access resolves concrete struct layout for generic instances.
- Match semantics now enforce:
- pattern type compatibility with the scrutinee,
- bool/enum exhaustiveness (or explicit
else/ wildcard), - wildcard pattern parsing (
case _:), - return-path correctness for exhaustive enum/bool
matchwithoutelse.
-
fallstatement semanticsfallis parsed (NodeKind.FALL) but not yet validated or lowered in semantic/codegen passes.
-
Advanced match diagnostics
- No overlap/redundancy diagnostics for case patterns.
- No unreachable-branch detection for wildcard-first or fully-covered prior patterns.
-
Memory/lifetime model
- Current validation covers basic
delreference checks. - Ownership/borrow-style lifetime guarantees are not implemented.
- Current validation covers basic
-
Generic constraint internals
- Inline type-set constraint resolution in
src/generics.pyis still placeholder-level (resolve_generic_constraint).
- Inline type-set constraint resolution in
-
Backend semantic parity hardening
- Core conformance is green, but differential/backend-equivalence checks should be expanded and kept mandatory for new language features.
- Package ecosystem, registry/distribution workflows, and broader tooling are intentionally secondary to language-core correctness.