docs(joinir): Phase 80 Tasks 80-0/80-A - Status verification + design doc
Task 80-0: Current status verification - ✅ 970/970 lib tests PASS (production stable) - ✅ Core VM smoke tests PASS (json_pp_vm) - ❌ Phase 79 E2E tests broken (AST API mismatch, out-of-scope) - ❌ Pre-existing json_lint_vm failure (Pattern2 verifier, out-of-scope) - **Conclusion**: Phase 80 has ZERO blockers Task 80-A: SSOT design doc created - New: docs/development/current/main/phase80-bindingid-p3p4-plan.md (336 lines) - Pattern3/4 BindingId wiring strategy - Implementation order: 80-B (P3) → 80-C (P4) → 80-D (E2E) - Code examples and success metrics - Fallback detection mechanism (existing log tags) Design principles (consistent with Phase 74-79): - Dev-only code (feature-gated) - Dual-path maintained (BindingId priority + name fallback) - Structural detection only (NO by-name branching) - Fail-Fast error handling - Zero production impact Updated docs: - 01-JoinIR-Selfhost-INDEX.md: Phase 79 Activation status - 10-Now.md: Phase 80 tasks 80-0/80-A complete - 20-Decisions.md: BindingId migration complete status - joinir-architecture-overview.md: Phase 79/80 sections Next: Task 80-B (Pattern3 BindingId registration)
This commit is contained in:
@ -1,9 +1,13 @@
|
||||
# Self Current Task — Decisions (main)
|
||||
|
||||
2025‑12‑13
|
||||
- JoinIR lowering の name-based 変数解決は、dev-only(`normalized_dev`)で BindingId-based に段階移行する(dual-path を維持)。
|
||||
- promoted carriers(DigitPos/Trim などの synthetic name)は、`BindingId(original) → BindingId(promoted) → ValueId(join)` の鎖で接続し、by-name ルール分岐は導入しない。
|
||||
- debug/観測は既存のフラグ(例: `NYASH_JOINIR_DEBUG`)に集約し、新しい環境変数のスパローは避ける。
|
||||
|
||||
2025‑09‑08
|
||||
- ループ制御は既存命令(Branch/Jump/Phi)で表現し、新命令は導入しない。
|
||||
- Builder に loop_ctx({head, exit})を導入し、continue/break を分岐で降ろす。
|
||||
- Verifier の支配関係/SSA を崩さないよう、単一 exit と post‑terminated 後の emit 禁止を徹底。
|
||||
- VInvoke(vector 経路)の戻り値は、短期は「既知メソッドの整数返り」を特例扱いで保持し、
|
||||
中期は nyash.toml の戻り型ヒント or NyRT シムの期待フラグで正道化。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user