Skip to main content
Print

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.

Table of Contents