Conflict: Function Target vs Callable Boundary
Conflict ID: CONFLICT-FUNCTION-BOUNDARY-001 · Status: SUPERSEDED / RESOLVED ARCHITECTURAL MODEL
Question
Is every dispatchable or known guest PC a standalone callable function?
Claims in conflict
- A — naive CFG/function interpretation: every target can receive a fresh host wrapper and its own frame.
- B — bounded analyzer and synthetic regression: interior/resume entries can share a containing function’s live stack frame, while nearby addresses can still be genuinely separate callables.
Why they appeared incompatible
Target identity, callable boundary, resume entry, dispatch registration, and host emission were overloaded into one concept. That loses live guest-SP ownership and can corrupt translated control flow.
Smallest supported conclusion
Callable ownership and resumable entry identity are distinct. A recompiler must preserve the owning frame and treat dual-role cases fail-closed until execution provenance separates them.
What was superseded
The “every target is a callable function” assumption is superseded by the explicit owner/entry/dispatch model. This is an architectural correction, not a claim about PSP silicon.
Evidence: public synthetic analyzer/codegen regressions and the callable vs resume reference. Related planned work: EXP-PSPREL2-TOOLCHAIN-001 and the public codegen.py. Last reviewed: 2026-08-11.
Current source anchor — Wave 4
The public implementation context remains pinned to tools/codegen.py at main 04daf156.