docs: add Phase 127 entry (planned)
This commit is contained in:
@ -86,19 +86,23 @@ JoinIR の箱構造と責務、ループ/if の lowering パターンを把握
|
||||
- `docs/development/current/main/phases/phase-123/README.md`
|
||||
26. Phase 124: Reads facts + Return(Variable from env)(dev-only)
|
||||
- `docs/development/current/main/phases/phase-124/README.md`
|
||||
27. Phase 125: Reads-only inputs → Normalized env(planned)
|
||||
27. Phase 125: Reads-only inputs → Normalized env(dev-only)
|
||||
- `docs/development/current/main/phases/phase-125/README.md`
|
||||
28. Phase 104: loop(true) break-only digits(VM + LLVM EXE)
|
||||
28. Phase 126: available_inputs SSOT wiring(dev-only)
|
||||
- `docs/development/current/main/phases/phase-126/README.md`
|
||||
29. Phase 127: unknown-read strict Fail-Fast(dev-only / planned)
|
||||
- `docs/development/current/main/phases/phase-127/README.md`
|
||||
30. Phase 104: loop(true) break-only digits(VM + LLVM EXE)
|
||||
- `docs/development/current/main/phases/phase-104/README.md`
|
||||
29. Phase 107: json_cur find_balanced_* depth scan(VM + LLVM EXE)
|
||||
31. Phase 107: json_cur find_balanced_* depth scan(VM + LLVM EXE)
|
||||
- `docs/development/current/main/phases/phase-107/README.md`
|
||||
30. Phase 108: Pattern2 policy router SSOT(入口の薄さを固定)
|
||||
32. Phase 108: Pattern2 policy router SSOT(入口の薄さを固定)
|
||||
- `docs/development/current/main/phases/phase-108/README.md`
|
||||
31. Phase 109: error_tags hints SSOT(Fail-Fast + hint の語彙固定)
|
||||
33. Phase 109: error_tags hints SSOT(Fail-Fast + hint の語彙固定)
|
||||
- `docs/development/current/main/phases/phase-109/README.md`
|
||||
32. MIR Builder(Context 分割の入口)
|
||||
34. MIR Builder(Context 分割の入口)
|
||||
- `src/mir/builder/README.md`
|
||||
33. Scope/BindingId(shadowing・束縛同一性の段階移行)
|
||||
35. Scope/BindingId(shadowing・束縛同一性の段階移行)
|
||||
- `docs/development/current/main/phase73-scope-manager-design.md`
|
||||
- `docs/development/current/main/PHASE_74_SUMMARY.md`
|
||||
- `docs/development/current/main/PHASE_75_SUMMARY.md`
|
||||
|
||||
@ -2,8 +2,11 @@
|
||||
|
||||
## Next: Phase 127(予定)
|
||||
|
||||
**Phase 127: TBD**
|
||||
- Phase 126 完了。次のフェーズを決定
|
||||
**Phase 127: unknown-read strict Fail-Fast(dev-only)**
|
||||
- 目的: `reads` にあるが `available_inputs` に存在しない変数を “unknown-read” として検出し、strict で Fail-Fast
|
||||
- 実装: `UnknownReadGuardBox`(builder の lowering 前にチェック、tag + 1行hint で停止)
|
||||
- fixture/smoke: `return missing_x` を strict で落とす(`[phase127/unknown_read/... ]` を固定)
|
||||
- 入口(計画): `docs/development/current/main/phases/phase-127/README.md`
|
||||
|
||||
## 2025-12-18:Phase 126 完了 ✅
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@ Related:
|
||||
- **制御の再帰合成(docs-only → dev-only段階投入)**
|
||||
- ねらい: `loop/if` ネストの "構造" を SSOT(ControlTree/StepTree)で表せるようにする
|
||||
- 注意: canonicalizer は観測/構造SSOTまで(ValueId/PHI配線は Normalized 側へ)
|
||||
- 現状: Phase 119–124(cond SSOT / facts→contract / shadow parity / JoinModule生成 / semantics / reads+return-var)まで完了
|
||||
- 次候補(Phase 125): reads-only inputs を Normalized env に載せる(return var from inputs / unknown-read capability)
|
||||
- 現状: Phase 119–126(cond SSOT / facts→contract / shadow parity / JoinModule生成 / semantics / reads+return-var / reads-only inputs / available_inputs wiring)まで完了
|
||||
- 次候補(Phase 127): unknown-read strict Fail-Fast(reads にあるが available_inputs に無い変数の検出)
|
||||
- 入口: `docs/development/current/main/design/control-tree.md`
|
||||
|
||||
## 中期(ループ在庫の残り)
|
||||
|
||||
35
docs/development/current/main/phases/phase-127/README.md
Normal file
35
docs/development/current/main/phases/phase-127/README.md
Normal file
@ -0,0 +1,35 @@
|
||||
# Phase 127: unknown-read strict Fail-Fast(planned)
|
||||
|
||||
## 目的
|
||||
|
||||
- Phase 126 で `available_inputs`(function params + CapturedEnv)を Normalized builder に配線できた。
|
||||
- 次に、`reads` に出てくるのに `writes`/`inputs` のどちらにも解決できない変数を “unknown-read” として検出し、strict では Fail-Fast にする。
|
||||
|
||||
## Scope
|
||||
|
||||
- 対象: if-only Normalized(dev-only)
|
||||
- 既定挙動は不変: `joinir_dev_enabled()` のときだけチェック・検証する
|
||||
|
||||
## 契約(SSOT)
|
||||
|
||||
- unknown-read の定義:
|
||||
- `unknown_reads = reads - (writes ∪ inputs)`
|
||||
- `writes`: StepTreeContract.writes
|
||||
- `inputs`: reads ∩ available_inputs(Phase 125/126)
|
||||
- strict(`joinir_strict_enabled()`):
|
||||
- unknown_reads が 1 つでもあれば `freeze_with_hint` で停止(hint必須・1行)
|
||||
- non-strict/dev:
|
||||
- 理由ログ(tag + count + 先頭数件)までで継続
|
||||
|
||||
## 受け入れ基準
|
||||
|
||||
- `cargo test --lib` が PASS
|
||||
- Phase 121–126 の smokes が退行しない
|
||||
- 新規 fixture(例: `return missing_x`)が strict で確実に Fail-Fast する
|
||||
|
||||
## 関連
|
||||
|
||||
- Phase 125: EnvLayout(writes + inputs)
|
||||
- `docs/development/current/main/phases/phase-125/README.md`
|
||||
- Phase 126: available_inputs SSOT wiring
|
||||
- `docs/development/current/main/phases/phase-126/README.md`
|
||||
Reference in New Issue
Block a user