Repository navigation
Backend coverage: extend CC/MIR and representation rows to the full source surface #101
Copy link
Copy link
Open
Labels
area:backendBackend: CC, MIR, Wasm encoding, WIT/ABI, WASIBackend: CC, MIR, Wasm encoding, WIT/ABI, WASIenhancementNew feature or requestNew feature or requestgate:L2Blocks module, import, export and name resolution (D-04 L2)Blocks module, import, export and name resolution (D-04 L2)gate:L5Blocks type classes and instances (D-04 L5)Blocks type classes and instances (D-04 L5)gate:L6/M7Blocks runtime and the standard library (D-04 L6, M7)Blocks runtime and the standard library (D-04 L6, M7)gate:M8Blocks the warning and optimization gates (D-04 M8-W, M8-O)Blocks the warning and optimization gates (D-04 M8-W, M8-O)
Milestone
Description
Part of #78 (Phase 5). A tracking issue for the backend rows that are Partial on coverage rather than on design. Everything here depends on Phases 2-4 landing first, because the source forms must exist before the backend can be exercised on them.
Rows and what each needs
| Row | Current evidence | What is missing |
|---|---|---|
BE-01 ANF |
Bootstrap expression set | Extend to every frontend expression form. Ascription, guards, multi-scrutinee case, and operator aliases all land new Core shapes that CC must order explicitly. |
BE-02 Closures |
Top-level functions, local lambdas, scalar/aggregate/generic captures, adapters, annotated rank-N parameters | Remaining partial applications; the FE-16 Contravariant function-capture case is still blocked on runtime closure capture. |
BE-03 MIR/CFG |
Verified tag Switch, typed blocks, merge diamonds |
General control flow beyond enum-tag dispatch. Guards are the forcing case: a guarded alternative is a filter, so it needs a merge structure the current Switch cannot express. |
BE-04 Primitives |
Int, Number, Boolean, Char, String, Unit, the current closure ABI |
Official-suite evidence and the remaining literal semantics. |
BE-05 Nullary ADT tags |
Integer tags, br_table, executed |
Case lowering beyond nullary enums. |
BE-06 Field-bearing ADTs |
Wasm GC structs, restricted nested constructor patterns, coverage analysis with non-exhaustive witnesses and source-spanned redundancy | Shared decision lowering, recursive/polymorphic/mixed-field layouts. Multi-field constructor patterns (#85) land here. |
BE-08 Parameterized ADTs |
GA-01..GA-20 verified | Coverage beyond the accepted generic aggregate slice. |
BE-09/BE-10 Records, arrays |
Closed concrete and canonical generic forms | Open rows and variants; broader source-path coverage. |
BE-13/BE-14 Encoding, validation |
ENC-01..ENC-11 verified | The remaining MIR instruction forms. |
Method
Each row moves with source tests plus runtime execution, per its acceptance record. A row that has only fixtures is not done — CC, MIR, PM, OPT, ENC, DR, PE, SP, DICT, and GA all already have Verified records, and those records distinguish source tests from fixtures. Keep that distinction.
Acceptance
Every in-scope passing file for an implemented feature compiles, validates, and runs, per the runtime scoreboard from #93.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:backendBackend: CC, MIR, Wasm encoding, WIT/ABI, WASIBackend: CC, MIR, Wasm encoding, WIT/ABI, WASIenhancementNew feature or requestNew feature or requestgate:L2Blocks module, import, export and name resolution (D-04 L2)Blocks module, import, export and name resolution (D-04 L2)gate:L5Blocks type classes and instances (D-04 L5)Blocks type classes and instances (D-04 L5)gate:L6/M7Blocks runtime and the standard library (D-04 L6, M7)Blocks runtime and the standard library (D-04 L6, M7)gate:M8Blocks the warning and optimization gates (D-04 M8-W, M8-O)Blocks the warning and optimization gates (D-04 M8-W, M8-O)
Activity