33 lines
1.5 KiB
Markdown
33 lines
1.5 KiB
Markdown
# Phase‑20.28 — Execution Plan
|
||
|
||
Milestones
|
||
|
||
1) Normalize policy (SSOT)
|
||
- Define when Method/ModuleFunction → Extern applies.
|
||
- plugins=ON: apply SSOT mapping; prepend receiver for Method forms.
|
||
- plugins=OFF: do not normalize Method/Constructor; let method_router/builtin/ring0 run.
|
||
- Document the decision table and update Gate‑C paths accordingly.
|
||
|
||
2) Builder/Optimizer hardening
|
||
- Add default effects for mutating calls when JSON omits them (prevent DCE of set/delete/push/pop).
|
||
- Ensure single‑pass emit order for basic blocks (no Copy def‑use inversion).
|
||
- Verify with canaries: if‑diamond, phi, and set→compare dependency.
|
||
|
||
3) Core mir_call coverage
|
||
- Positive: Array(Map backed host‑slot)/String day‑1 surface; keep Map plugin‑only.
|
||
- Negative: Unsupported callee types (Closure), missing args, bad receiver — stable tags.
|
||
- Expand extern_adapter handlers to prefer HostSlot/Plugin, then ring0(Array only), else Fail‑Fast.
|
||
|
||
4) Gate‑C parity and profile
|
||
- file/pipe × plugins ON/OFF: quiet/noise and rc mapping symmetry.
|
||
- Bootstrap profile doc: deterministic toggles, plugin policy (force/auto), using/macro guards.
|
||
|
||
5) Smokes and docs
|
||
- Add minimal self‑host smoke that compiles a tiny program via lang → JSON → Core.
|
||
- Update docs: normalize policy, effects/order guarantees, bootstrap instructions.
|
||
|
||
Nice‑to‑have (stretch)
|
||
- Reduce duplicate fallbacks by funnelling array ring0 calls through one thin helper.
|
||
- Add jq/awk mini‑validator to check def‑before‑use in canary JSON.
|
||
|