95c9394396
docs: Phase 122 plan (if-only emit)
2025-12-18 04:48:49 +09:00
2a53f87d10
docs: Phase 121 DONE (StepTree→Normalized shadow parity for if-only)
2025-12-18 04:40:53 +09:00
8d930d2dcc
docs: Phase 121 StepTree→Normalized shadow plan
2025-12-18 04:27:30 +09:00
9d5e58305e
docs: Phase 120 DONE
2025-12-18 04:19:48 +09:00
4e863c7cd8
docs: Phase 120 StepTree facts/contract SSOT
2025-12-18 04:16:04 +09:00
708accc853
docs: Phase 119 DONE
2025-12-18 04:09:47 +09:00
84d63ac11b
docs: Phase 119 StepTree cond SSOT (AST handle)
2025-12-18 04:03:50 +09:00
5091cda9cb
docs: Phase 118 DONE (loop+if merge parity)
2025-12-18 03:43:16 +09:00
2c7f5f7a5e
docs: Phase 117 DONE
...
Phase 117: if-only nested-if + call merge parity completed.
**Documentation**:
- docs/development/current/main/phases/phase-117/README.md (complete)
- docs/development/current/main/10-Now.md (updated with Phase 117 entry)
- docs/development/current/main/01-JoinIR-Selfhost-INDEX.md (added Phase 117 to index)
**Phase 117 Summary**:
- Verified nested if-only (inner if + outer else) with call merge
- Pattern: 3 call sites (f(1), f(2), f(3)) merge to single variable
- VM/LLVM EXE parity: both produce identical output "2\n3\n4"
- Regression: Phase 116 maintained
**Technical Details**:
- JoinIR Pattern3 (if-only) nested structure validation
- Call merge across nested control flow
- PHI node generation for nested branches
- LLVM EXE plugin integration (StringBox, IntegerBox, ConsoleBox)
**Next Steps**:
Phase 118+ will address more complex nested patterns (if-else nested, loop-if combinations).
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 02:55:14 +09:00
f63b5c3c64
docs: fix INDEX numbering + refresh backlog after Phase 116
...
- Fixed INDEX numbering: 24/25 → 28/29 (was duplicated after Phase 116 additions)
- Updated Backlog: next candidate Phase 114 → Phase 117 (nested if + call merge)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 02:52:01 +09:00
8440550b2f
docs: Phase 116 DONE
...
Phase 116 完了ドキュメント化
## 更新内容
### Phase 116 README
- 背景: LLVM fragile pattern(keep+call merge)
- 実装内容: fixture, VM smoke, LLVM EXE smoke
- 検証コマンド
- 技術的詳細: JoinIR Pattern 1, PHI接続
- Lessons Learned: Box-First原則, Fail-Fast原則
### 10-Now.md
- Phase 116 完了エントリ追加
- 入口: `docs/development/current/main/phases/phase-116/README.md`
### 01-JoinIR-Selfhost-INDEX.md
- Phase 116 を JoinIR Phase リストに追加
- 番号の重複を修正(18-27に整理)
## 成果物
✅ 片側元値保持、片側call結果のmergeパターンをVM/LLVM両方で固定
✅ output_validator.sh, llvm_exe_runner.sh 活用で統一的なテスト基盤
✅ 回帰防止: Phase 115 維持確認
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 02:39:44 +09:00
0a29f1443e
test: Phase 115 if-only call result merge parity (VM + LLVM EXE)
...
Phase 115実装 - if分岐内での関数呼び出し結果をマージするパターンを固定
**実装内容**:
- Fixture: phase115_if_only_call_merge_min.hako (expected: 2, 3)
- if/else両分岐で関数呼び出し f() の結果を変数 v に代入
- if後にマージされた v を使用(LLVM EXE でのPHI node生成を検証)
- VM smoke: phase115_if_only_call_merge_vm.sh
- NYASH_DISABLE_PLUGINS=1 HAKO_JOINIR_STRICT=1 で実行
- LLVM EXE smoke: phase115_if_only_call_merge_llvm_exe.sh
- llvm_exe_runner.sh を利用した標準パリティ検証
**検証結果**:
- VM test: PASS ✅
- LLVM EXE test: PASS ✅
- Phase 114 regression: PASS ✅
**箱化モジュール化の観点**:
- 単一責任: 各smokeは1パターンのみ検証(call result merge)
- 分離: VM/LLVM EXEで独立したテスト(llvm_exe_runner.sh経由)
- Fail-Fast: HAKO_JOINIR_STRICT=1 で不正な制御フローを即座に検出
**関連**:
- Phase 103: If-Only基本パリティ(制御フロー基礎)
- Phase 113: If-Only部分代入パリティ(変数マージ)
- Phase 114: If-Only return+post パリティ(early returnとpost-if文)
- Phase 115: If-Only call result merge パリティ(関数呼び出し結果マージ) ← 今回
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 02:32:08 +09:00
97675b4035
docs: Phase 114 DONE
...
Phase 114完了に伴うドキュメント更新:
- 30-Backlog.md: Phase 114の次候補から完了済みに移行
- design/control-tree.md: Phase 110-112の進捗反映
- design/README.md, joinir-design-map.md, phases/README.md: マイナー更新
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 02:19:41 +09:00
80be814fa4
test: Phase 114 if-only return+post parity (VM + LLVM EXE)
...
Phase 114 validates that if-only lowering correctly handles cases with:
- Early return in the if-only branch
- Post-if statements that execute on the else path
- Different return values from each path
Fixture: apps/tests/phase114_if_only_return_then_post_min.hako
- Expected output: 7\n2
- f(1): condition true → early return 7
- f(0): condition false → x=1+1=2, return 2
Testing:
- VM backend: phase114_if_only_return_then_post_vm.sh ✅
- LLVM EXE backend: phase114_if_only_return_then_post_llvm_exe.sh ✅
- Regression: Phase 103/113 maintained ✅
Implementation: No new code required - validates existing if-only
exit line routing and post-if statement processing.
Documentation:
- docs/development/current/main/phases/phase-114/README.md
- Updated: 10-Now.md, 01-JoinIR-Selfhost-INDEX.md
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 02:18:57 +09:00
70fe0da549
docs: Phase 113 if-only partial assign parity
...
- Create phases/phase-113/README.md (background, fixed pattern, verification)
- Update 10-Now.md with Phase 113 completion
- Update 01-JoinIR-Selfhost-INDEX.md with Phase 113 entry
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 01:58:56 +09:00
7829b23cf4
docs: note Phase 110-112 control_tree status
...
- Update 10-Now.md with Phase 112 completion
- Note: StepTree capability guard (strict-only) implemented
- Note: Default behavior unchanged, only affects HAKO_JOINIR_STRICT=1
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-18 01:39:06 +09:00
14730c227f
feat(control_tree): add StepTreeContract and signature (dev-only)
2025-12-18 00:57:58 +09:00
67a2408da5
docs: clarify StepTree boundary (no routing)
2025-12-18 00:30:04 +09:00
b32480823d
docs: add ControlTree/StepTree SSOT
2025-12-18 00:14:04 +09:00
a27e3ce908
docs: Phase 109 DONE
...
- Create phases/phase-109/README.md
- Update 10-Now.md with completion report
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-17 23:45:55 +09:00
23e7f4629f
docs: Phase 109 plan (error_tags hints SSOT)
...
- Add hint policy to joinir-design-map.md
- Document format: [joinir/<category>/<tag>] <msg> Hint: <hint>
- Establish SSOT for error messages
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-17 23:45:32 +09:00
46c924ac6d
docs: add Phase 108 entry
2025-12-17 23:30:13 +09:00
6a21382d44
docs: add Phase 107 to Now/INDEX and backlog
2025-12-17 23:15:57 +09:00
3c934dc69d
test: Phase 107 add find_balanced_object_end fixture + smokes
2025-12-17 23:12:49 +09:00
d42117ac5f
test: Phase 107 find_balanced_array_end fixture + smokes
2025-12-17 22:47:42 +09:00
97c65a9e6f
docs: Phase 107 plan (find_balanced_array_end)
2025-12-17 22:21:42 +09:00
af3b851984
docs: add Phase 107 prep for find_balanced
2025-12-17 22:01:23 +09:00
712e1ad755
docs: update Phase104 status and JoinIR map
2025-12-17 21:47:37 +09:00
a05ce39a1f
test: add Phase104 json_cur read_digits fixture and smokes
2025-12-17 21:25:12 +09:00
950560a3d9
test(joinir): Phase 104 read_digits loop(true) parity
2025-12-17 18:29:27 +09:00
ce501113a7
docs: Phase 103 P1 DONE (early return)
2025-12-17 17:45:16 +09:00
a5cec824c2
docs: Phase 103 DONE (if-only parity smokes)
2025-12-17 17:41:10 +09:00
935d475882
docs: Phase 103 plan (if-only parity baseline)
2025-12-17 17:39:12 +09:00
733b4fa950
docs: Phase 102 entry (real-app regression smokes)
2025-12-17 16:57:15 +09:00
bad8ee1571
docs: Phase 100 P3 string accumulator contract
...
- Add P3 section to phases/phase-100/README.md
- Document allowed form: out = out + ch (Variable RHS only)
- List Fail-Fast cases (Literal RHS, MethodCall RHS, non-string-ish)
- Add example with length-based output
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 16:33:03 +09:00
0ea2b7d2cb
fix(llvm_py): stabilize PHI incoming selection (no overwrite by failed candidate)
2025-12-17 16:12:16 +09:00
61c9d7929c
docs: Phase 100 P2.1 - LLVM EXE parity for mutable accumulator
...
- Update phases/phase-100/README.md with LLVM EXE smoke note
- Update 10-Now.md with P2.1 short report
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 06:31:21 +09:00
b45035597d
docs: Phase 100 P2 mutable accumulator contract
...
- Add P2 section to phases/phase-100/README.md
- Document allowed form: s = s + x (x must be read-only)
- List Fail-Fast cases (reversed ops, complex RHS, multiple updates)
- Add example with numeric output
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 06:10:26 +09:00
682fc11f7c
docs: Phase 100 P1 pinned receiver integration tests complete
...
- Update docs/development/current/main/phases/phase-100/README.md
* Document P1 implementation and pinned receiver example
- Update docs/development/current/main/10-Now.md
* Add Phase 100 P1 completion short report
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2025-12-17 05:43:54 +09:00
692d44da62
docs: Phase 100 rollout plan (Pinned then mutable carrier)
2025-12-17 05:18:09 +09:00
8ab95666c8
docs: Phase 100 pinned read-only captures plan
2025-12-17 05:03:07 +09:00
90a8f1650d
docs: Phase 99 notes and indices
...
Trim/escape実コード寄り強化の記録:
- phase-96: 3ケース追記
- phase-95: 末尾バックスラッシュ扱い追記
- phase-99: 新規README作成
- 10-Now.md: Phase 99短報追加
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 04:26:23 +09:00
6d73fc3404
feat(llvm): Phase 97 Box/Policy refactoring complete
...
Box化完了:
- CallRoutePolicyBox: Call routing SSoT
- PrintArgMarshallerBox: Print marshalling SSoT
- TypeFactsBox: Type propagation SSoT
- PhiSnapshotPolicyBox: PHI contract SSoT
- PluginErrorContext: Structured error reporting
📋 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 04:14:26 +09:00
1a0d9ce8a0
docs: add Phase 97 LLVM EXE parity entry
2025-12-17 02:26:42 +09:00
bc1a09f2c3
fix(joinir): Phase 96 next_non_ws break condition SSOT
2025-12-17 01:59:21 +09:00
db4453eb3c
test: strengthen phase96 next_non_ws fixture
2025-12-17 01:35:43 +09:00
ba87afd35c
test: add phase96 trim loop fixture and smoke
2025-12-17 01:25:06 +09:00
5b4de7b495
docs: add phase95 json_loader escape entry
2025-12-17 01:01:16 +09:00
7ab459503b
feat(joinir): Phase 94 - P5b escape full E2E (derived ch + +1/+2)
2025-12-17 00:59:33 +09:00
93e62b1433
docs(phase93): Phase 93 P0完了記録 & ドキュメント整理
...
## 追加
- docs/development/current/main/phases/phase-93/README.md
- Phase 93 P0 (ConditionOnly Derived Slot) 完了記録
- 実装内容・テスト結果の詳細
## 更新
- CURRENT_TASK.md: Phase 93 P0完了に伴う更新
- 10-Now.md: 現在の進捗状況更新
- 30-Backlog.md: Phase 92/93関連タスク整理
- phase-91/92関連ドキュメント: historical化・要約化
## 削減
- 735行削減(historical化により詳細をREADMEに集約)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-16 23:30:39 +09:00