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`
|
- `docs/development/current/main/phases/phase-123/README.md`
|
||||||
26. Phase 124: Reads facts + Return(Variable from env)(dev-only)
|
26. Phase 124: Reads facts + Return(Variable from env)(dev-only)
|
||||||
- `docs/development/current/main/phases/phase-124/README.md`
|
- `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`
|
- `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`
|
- `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`
|
- `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`
|
- `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`
|
- `docs/development/current/main/phases/phase-109/README.md`
|
||||||
32. MIR Builder(Context 分割の入口)
|
34. MIR Builder(Context 分割の入口)
|
||||||
- `src/mir/builder/README.md`
|
- `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/phase73-scope-manager-design.md`
|
||||||
- `docs/development/current/main/PHASE_74_SUMMARY.md`
|
- `docs/development/current/main/PHASE_74_SUMMARY.md`
|
||||||
- `docs/development/current/main/PHASE_75_SUMMARY.md`
|
- `docs/development/current/main/PHASE_75_SUMMARY.md`
|
||||||
|
|||||||
@ -2,8 +2,11 @@
|
|||||||
|
|
||||||
## Next: Phase 127(予定)
|
## Next: Phase 127(予定)
|
||||||
|
|
||||||
**Phase 127: TBD**
|
**Phase 127: unknown-read strict Fail-Fast(dev-only)**
|
||||||
- Phase 126 完了。次のフェーズを決定
|
- 目的: `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 完了 ✅
|
## 2025-12-18:Phase 126 完了 ✅
|
||||||
|
|
||||||
|
|||||||
@ -20,8 +20,8 @@ Related:
|
|||||||
- **制御の再帰合成(docs-only → dev-only段階投入)**
|
- **制御の再帰合成(docs-only → dev-only段階投入)**
|
||||||
- ねらい: `loop/if` ネストの "構造" を SSOT(ControlTree/StepTree)で表せるようにする
|
- ねらい: `loop/if` ネストの "構造" を SSOT(ControlTree/StepTree)で表せるようにする
|
||||||
- 注意: canonicalizer は観測/構造SSOTまで(ValueId/PHI配線は Normalized 側へ)
|
- 注意: canonicalizer は観測/構造SSOTまで(ValueId/PHI配線は Normalized 側へ)
|
||||||
- 現状: Phase 119–124(cond SSOT / facts→contract / shadow parity / JoinModule生成 / semantics / reads+return-var)まで完了
|
- 現状: Phase 119–126(cond SSOT / facts→contract / shadow parity / JoinModule生成 / semantics / reads+return-var / reads-only inputs / available_inputs wiring)まで完了
|
||||||
- 次候補(Phase 125): reads-only inputs を Normalized env に載せる(return var from inputs / unknown-read capability)
|
- 次候補(Phase 127): unknown-read strict Fail-Fast(reads にあるが available_inputs に無い変数の検出)
|
||||||
- 入口: `docs/development/current/main/design/control-tree.md`
|
- 入口: `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