prometeu-studio/docs/pbs/agendas/13.3. IR and Lowering Workshop 3 - Callables, Services, Contracts, and Callbacks.md

89 lines
3.1 KiB
Markdown

# PBS Frontend IR and Lowering Workshop 3
Status: Active
## Purpose
Run the third focused discussion for `13. Lowering IRBackend Specification.md` on callable categories in frontend scope:
- top-level functions,
- callbacks,
- services,
- and contracts as source-level callable surfaces.
## Why This Slice Third
Callable categories depend on the core expression/control-flow obligations from Workshop 2 and now need explicit frontend representation/rejection boundaries.
## Proposed Meeting Order
1. Reconfirm callable and identity facts already settled by syntax/static/linking specs.
2. Close frontend-lowering obligations for function and callback forms.
3. Close frontend-lowering obligations for service/contract callable surfaces.
4. Close deterministic rejection policy for unsupported callable forms.
5. Record builtin/diagnostics gate closure points for Workshop 4.
## Decisions To Produce
1. Minimum callable metadata preserved by frontend IR for each callable category.
2. V1 support map for callable categories (`supported` versus deterministic reject).
3. Required diagnostics identity for rejected callable forms.
4. Required regression fixtures for callable categories in Gate U.
## Candidate Decisions
### 1. Callable Identity Must Be Explicit In Frontend IR Contract
Candidate direction:
- callable name/category/arity/source attribution are mandatory preserved facts,
- regardless of internal object-model differences.
### 2. Callback/Service/Contract Surfaces Need Explicit V1 Status
Candidate direction:
- each callable surface is classified now as `represented` or `rejected`,
- with no silent fallback behavior.
### 3. Unsupported Callable Forms Are Deterministic Diagnostics
Candidate direction:
- unsupported callable patterns must emit stable diagnostics,
- and become mandatory regression tests.
### 4. Gate U Must Cover Callable Categories Explicitly
Candidate direction:
- representative valid+invalid fixtures per callable category are mandatory,
- including diagnostics assertions for rejected forms.
## Questions To Resolve In The Room
1. Which callable category fields are mandatory in `IRBackend` today?
2. Which callable constructs remain deferred in v1 frontend scope?
3. What is the minimum fixture set to protect callable behavior regressions?
4. Which diagnostics codes must be fixed now versus later?
## Expected Outputs
1. a decision note on callable frontend-lowering obligations,
2. a decision note on callable support/rejection map,
3. and Gate U fixture requirements for callable categories.
## Explicit Deferrals For Workshop 4
- builtin-specific lowering obligations,
- and final diagnostics/gate packaging for spec closure.
## Inputs
- `docs/pbs/specs/4. Static Semantics Specification.md`
- `docs/pbs/specs/12. Diagnostics Specification.md`
- `docs/pbs/specs/13. Lowering IRBackend Specification.md`
- `docs/general/specs/13. Conformance Test Specification.md`
- `docs/general/specs/14. Name Resolution and Module Linking Specification.md`
- `docs/pbs/agendas/13.2. IR and Lowering Workshop 2 - Control Flow, Evaluation Order, and Propagation.md`