Files
hakorune/docs/private/roadmap/phases/phase-20.28/PLAN.md

33 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase20.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 GateC paths accordingly.
2) Builder/Optimizer hardening
- Add default effects for mutating calls when JSON omits them (prevent DCE of set/delete/push/pop).
- Ensure singlepass emit order for basic blocks (no Copy defuse inversion).
- Verify with canaries: ifdiamond, phi, and set→compare dependency.
3) Core mir_call coverage
- Positive: Array(Map backed hostslot)/String day1 surface; keep Map pluginonly.
- Negative: Unsupported callee types (Closure), missing args, bad receiver — stable tags.
- Expand extern_adapter handlers to prefer HostSlot/Plugin, then ring0(Array only), else FailFast.
4) GateC 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 selfhost smoke that compiles a tiny program via lang → JSON → Core.
- Update docs: normalize policy, effects/order guarantees, bootstrap instructions.
Nicetohave (stretch)
- Reduce duplicate fallbacks by funnelling array ring0 calls through one thin helper.
- Add jq/awk minivalidator to check defbeforeuse in canary JSON.