|
|
fb256670a1
|
fix(json_v0): Phase 25.1c/k - loop body local変数のPHI生成を追加
BreakFinderBox._find_loops/2 等で、loop body 内で新規宣言された
local 変数(header_pos, next_i 等)が loop header に戻った時に
undefined になる SSA バグを修正。
変更内容:
- body_vars から base_vars にない変数を検出
- それらに対する IncompletePhi を header に追加
- backedge_to_cond 判定を拡張(Branch にも対応)
- break があるループでは latch が Branch 終端になるため
- トレースログ追加(HAKO_LOOP_PHI_TRACE=1)
根本原因:
prepare_loop_variables_with() は preheader の変数のみを対象とし、
loop body 内で新規宣言された変数を PHI に含めていなかった。
修正効果:
- BreakFinderBox._find_loops/2 の ValueId(172) undefined 解決見込み
- FuncScannerBox.scan_all_boxes/1 も同様のパターンで修正される
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-11-19 20:33:24 +09:00 |
|
|
|
0996090d6d
|
ssot(cf): bridge set_branch/set_jump/insert_phi adopted across expr/ternary/match/try_catch/loop; builder emission compare/branch/jump delegate to cf_common; add canaries (ternary/match); docs: note cf_common adoption
|
2025-11-04 21:33:09 +09:00 |
|
|
|
44a5158a14
|
hv1: early-exit at main (no plugin init); tokenizer: Stage-3 single-quote + full escapes (\/ \b \f \' \r fix); builder: route BinOp via SSOT emit_binop_to_dst; hv1 verify canary route (builder→Core); docs: phase-20.39 updates
|
2025-11-04 20:46:43 +09:00 |
|
|
|
06a729ff40
|
vm(hako): add v1 reader/dispatcher (flagged), commonize mir_call handler, share block scan; smokes: add v1 hakovm canary; docs: 20.37/20.38 plans, OOB policy; runner: v1 hakovm toggle; include SKIP summary
|
2025-11-03 23:21:48 +09:00 |
|
|
|
a1d5b82683
|
runner: introduce CoreExecutor box for JSON→exec; wire Gate‑C pipe to CoreExecutor. Stage‑B bundling: duplicate name Fail‑Fast + mix canary; add Core Map/String positive smokes; add Gate‑C budget opt‑in canary; docs: Exit Code Policy; apply child_env in PyVM common util.
|
2025-11-02 15:43:43 +09:00 |
|
|
|
64d7003249
|
bridge(loop): exit PHI を SSOT へ統一(break/continue スナップショットの stack 化)+ ループ比較スモーク(bridge)追加\n\n- lowering.rs: ループ用 break/continue スナップショットを thread-local stack で管理(push/pop/record)\n- loop_.rs: continue/break スナップを取り込み、seal_incomplete_phis_with・build_exit_phis_with に委譲\n- smokes: bridge_loop_sum/break/continue を opt-in 追加(SMOKES_ENABLE_LOOP_BRIDGE=1)
|
2025-11-01 16:56:26 +09:00 |
|
|
|
5e07e03dd5
|
bridge(loop): JSON v0 ループ降下を phi_core SSOT に寄せる(ヘッダPHIを委譲)+ 最小スモーク追加\n\n- json_v0_bridge/lowering/loop_.rs: LoopPhiOps アダプタを実装し、prepare/seal を使用(preheader Copy/seed → latch 合流)\n- 既存の手書きPHI生成/更新を撤退(重複を排除)\n- quick/core/loops/bridge_loop_sum_vm.sh: opt-in カナリア(SMOKES_ENABLE_LOOP_BRIDGE=1)
|
2025-11-01 16:45:27 +09:00 |
|
|
|
eef6fca8cd
|
docs(loops): LoopForm SSOT設計ノートを追加し、Bridge側ループ降下にPHI到達検証を導入(debug時)。\n\n- 新規: docs/development/architecture/loops/loopform_ssot.md\n- 修正: src/runner/json_v0_bridge/lowering/loop_.rs に debug_verify_phi_inputs 呼び出しを追加\n- 方針: Direct MIR は既に phi_core を使用。Bridge は段階的に LoopPhiOps アダプタでSSOTに寄せる
|
2025-11-01 16:37:16 +09:00 |
|
|
|
01b4417c5d
|
docs(llvm/vm): 静的Box(self)規約を明文化 + Bridgeトグル追記; Gate‑C/Core 現状反映; CURRENT_TASK 更新。\n\n- 新規: docs/development/architecture/llvm/static_box_singleton.md\n- 追記: lang/src/vm/README.md に self 先頭規約/互換トグルを明記\n- 追記: CURRENT_TASK に本更新を記録\n- phase-20.33/CHECKLIST にドキュメント完了チェックを追加\n- bak フォルダはリポジトリ直下に存在せず(削除対象なし)\n\n併せて未コミット差分をスナップショット(Rust 層の前作業含む)
|
2025-11-01 16:31:48 +09:00 |
|
|
|
b9340a1b19
|
refactor(mir): Phase 6-2 - Apply helper methods to reduce ~28 lines in JSON v0 Bridge
**Phase 6-2完了:ヘルパーメソッド適用で28行削減達成!**
## 📊 削減実績
- **loop_.rs**: 8行→1行(7行削減) - PHI更新ループ統一
- **if_else.rs**: 6行→1行(5行削減) - Branch終端設定統一
- **try_catch.rs**: 8箇所×2-3行(16行削減) - Jump終端設定統一
- **合計**: ~28行削減
## 🔧 適用内容
### 1. loop_.rs - PHI更新の統一化
- **Before**: 手動でPHI命令を検索してinputs.push()
- **After**: `bb.update_phi_input(phi_dst, (bend, latch_val))?`
### 2. if_else.rs - Branch終端設定の統一化
- **Before**: if-let-Some + bb.set_terminator(Branch {...})
- **After**: `f.set_branch_terminator(cur, cval, then_bb, else_bb)?`
### 3. try_catch.rs - Jump終端設定の統一化(8箇所)
- **Before**: if-let-Some + bb.set_terminator(Jump {...})
- **After**: `f.set_jump_terminator(bb_id, target)?`
## ✅ テスト結果
- `loop_min_while.nyash`: ✅ PASS(0,1,2出力)
- `loop_phi_one_sided.nyash`: ✅ PASS(ArrayBox警告のみ)
- ビルド: ✅ 88 warnings(既存レベル)
## 🎯 Phase 6進捗
- **Phase 6-1**: ✅ ヘルパーメソッド追加(+46行)
- **Phase 6-2**: ✅ ヘルパー適用(-28行)
- **実質削減**: -28行(基盤整備込み)
## 📋 次のステップ
- **Phase 6-3**: BranchMergeBuilder pattern(~100行削減見込み)
- **Phase 6-4**: 全体統合・最終テスト
Related: Phase 1-5(3,824行削減)に続く段階的リファクタリング
🐱 にゃーん!実用化成功!
|
2025-11-01 15:23:28 +09:00 |
|
|
|
09149be41a
|
feat: フェーズM.2完了 - JSON v0 Bridge層PHI統一でno_phi完全撤廃
- strip_phi_functions()削除: 40行の複雑なPHI→edge-copy後処理撤廃
- JSON v0 Bridge 8箇所のno_phi分岐完全削除:
- try_catch.rs: 3箇所統一
- ternary.rs, peek.rs, expr.rs, loop_.rs: 各1-2箇所統一
- config::env::mir_no_phi()大幅簡略化: 40行→8行、phi-legacy依存除去
- 未使用コード削除: PHI_ON_GATED_WARNED static、mir_no_phiフィールド
- 未使用import削除: HashSet、collect_phi_incoming_if_reachable
効果: フェーズM+M.2で推定500行超削減、MIR層PHI完全統一達成
Phase 15セルフホスティング80k→20k行圧縮の主要基盤完成
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-23 07:41:08 +09:00 |
|
|
|
951a050592
|
selfhost: introduce using-based imports for compiler/parser/tools; keep includes temporarily. llvm: add PHI wiring JSON trace + unit/integration tests; fast test suite extended. runner: split selfhost helpers, small cleanups.
|
2025-09-18 13:35:38 +09:00 |
|
|
|
2720884a20
|
bridge/json_v0: split expr lowering; add Ternary/Peek lowering + AST; selfhost Peek JSON emit; add selfhost Peek smoke; warning cleanup in lowering/optimizer/verification
- Split expr lowering into ; route calls from stmt lowering
- Implement ternary/peek lowering (MIR13 PHI-off=Copy, PHI-on=Phi)
- Extend JSON v0 AST (ExprV0::{Ternary,Peek}, PeekArmV0)
- Selfhost parser_box: emit Peek JSON; add Stage-2 'Peek basic' smoke
- Reduce warnings: remove unused imports/vars in several modules
- current_task: update plan for legacy VM/Interpreter offboarding
|
2025-09-17 11:45:57 +09:00 |
|
|
|
d99b941218
|
docs: add MIR13 mode doc and set PHI-off as default; bridge lowering split (if/loop/try); llvmlite resolver stabilization; curated runner default PHI-off; refresh CURRENT_TASK.md
|
2025-09-17 10:58:12 +09:00 |
|