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

3.1 KiB

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