3.0 KiB
3.0 KiB
PBS Frontend IR and Lowering Workshop 2
Status: Active
Purpose
Run the second focused discussion for 13. Lowering IRBackend Specification.md on frontend-lowering obligations for:
- expression evaluation order,
- branching behavior,
- and propagation-related constructs at frontend IR boundary.
Why This Slice Second
After Workshop 1 closes contract/preconditions, this workshop closes construct-level obligations that must be testable in frontend scope.
Proposed Meeting Order
- Reconfirm preserved obligations from Workshop 1.
- Close once-only evaluation obligations in frontend IR terms.
- Close branch and abrupt-completion representation obligations.
- Close propagation construct obligations (
optional,result,!,handle) at frontend boundary. - Record callable-category leftovers for Workshop 3.
Decisions To Produce
- Which evaluation-order guarantees must remain explicit in frontend IR obligations.
- Which branch/abrupt-completion facts are mandatory in v1 frontend lowering.
- Which propagation constructs are in-scope versus deterministic rejection in v1 slice.
- Which diagnostics are required when unsupported propagation constructs are used.
Candidate Decisions
1. Frontend Lowering Must Preserve Once-Only Evaluation Facts
Candidate direction:
- source-observable single-evaluation points are preserved as explicit lowering obligations,
- independent of one exact IR node taxonomy.
2. Branching Obligations Are Normative At Frontend Boundary
Candidate direction:
- selected/non-selected branch semantics remain explicit in frontend lowering contract,
- with no implicit permissive fallbacks.
3. Propagation Constructs Have Explicit V1 Status
Candidate direction:
- each construct is marked
supported in v1 frontend loweringordeterministic reject, - and this status is mirrored in Gate U fixtures.
4. Diagnostics Identity Must Be Stable For Unsupported Forms
Candidate direction:
- unsupported forms emit stable code/severity/primary attribution,
- so regression tests can lock behavior.
Questions To Resolve In The Room
- Which propagation constructs are fully represented now versus deferred?
- What minimum frontend IR evidence is enough to prove evaluation-order obligations?
- Which failures should be classified as parse/static errors versus lowering errors?
- Which fixture shapes are mandatory for Gate U here?
Expected Outputs
- a decision note on expression/control-flow lowering obligations,
- a decision note on propagation status map (support/reject),
- and fixture targets for frontend conformance tests.
Explicit Deferrals For Workshop 3
- callable-category representation details,
- and service/contract/callback-specific obligations.
Inputs
docs/pbs/specs/9. Dynamic Semantics Specification.mddocs/pbs/specs/12. Diagnostics Specification.mddocs/pbs/specs/13. Lowering IRBackend Specification.mddocs/general/specs/13. Conformance Test Specification.mddocs/pbs/agendas/archive/13.1. IR and Lowering Workshop 1 - Lowering Contract and IR Status.md