14730c227f
feat(control_tree): add StepTreeContract and signature (dev-only)
2025-12-18 00:57:58 +09:00
9bcda215f8
refactor(joinir): split Pattern2 orchestrator into smaller steps
2025-12-18 00:44:31 +09:00
e4735f4054
refactor(control_tree): use ASTNode::span SSOT
2025-12-18 00:32:23 +09:00
67a2408da5
docs: clarify StepTree boundary (no routing)
2025-12-18 00:30:04 +09:00
3987aa5b06
refactor(joinir): drop unused break helper wrappers
2025-12-18 00:30:01 +09:00
e65bb791b9
refactor(builder): route debug logs via trace
2025-12-18 00:29:57 +09:00
2b5c141e22
feat(control_tree): add StepTree builder (dev-only)
2025-12-18 00:22:21 +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
a9f92f8f1a
refactor(joinir): add hints for Phase107/104/100 policy rejects
...
- balanced_depth_scan: missing_tail_inc, missing_return_i hints
- read_digits: missing_eos_guard, digit_set_mismatch hints
- pinned: missing_host_id hint
- Gradual migration (representative cases only)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-17 23:45:49 +09:00
2ab460f0a8
feat(joinir): error_tags freeze_with_hint
...
- Add freeze_with_hint(tag, msg, hint) API
- Format: "[joinir/<tag>] <msg> Hint: <hint>"
- Panic on empty hint (must provide actionable suggestion)
- Keep existing freeze() for backward compatibility
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-17 23:45:40 +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
27e8e0f16a
refactor(joinir): Phase 108 unify Pattern2 policy routing
2025-12-17 23:30:08 +09:00
9fa2f5a8ad
test: align Phase 107 object fixture expected output
2025-12-17 23:16:53 +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
3c1d8a824d
feat(joinir): extend balanced depth-scan policy to object family
2025-12-17 23:09:19 +09:00
09dd10349f
refactor(joinir): make Pattern2 body-local handling policy-driven
2025-12-17 23:00:26 +09:00
10a2f3b48b
refactor(joinir): centralize balanced depth-scan policy decision
2025-12-17 22:59:27 +09:00
6036627920
fix(joinir): avoid false rejects in balanced depth-scan policy
2025-12-17 22:52:29 +09:00
d42117ac5f
test: Phase 107 find_balanced_array_end fixture + smokes
2025-12-17 22:47:42 +09:00
d8ce9fdb99
fix(joinir): wire balanced depth-scan policy through Pattern2
2025-12-17 22:47:36 +09:00
9ec2e28b6a
feat(joinir): add Pattern2 post-loop early return step
2025-12-17 22:32:55 +09:00
aa29dc8085
feat(joinir): emit balanced depth-scan derived vars
2025-12-17 22:32:50 +09:00
bf80789757
feat(joinir): route balanced depth-scan via Pattern2 policy
2025-12-17 22:32:43 +09:00
f1a570fd45
feat(joinir): Phase 107 balanced depth-scan policy (analysis-only)
2025-12-17 22:25:34 +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
5f4d8ba112
refactor(joinir): Phase 106 Pattern2 step boxes
2025-12-17 22:01:19 +09:00
712e1ad755
docs: update Phase104 status and JoinIR map
2025-12-17 21:47:37 +09:00
368b363694
refactor(joinir): split Pattern2 facts from lowering orchestration
2025-12-17 21:34:11 +09:00
a05ce39a1f
test: add Phase104 json_cur read_digits fixture and smokes
2025-12-17 21:25:12 +09:00
e935b2324b
test(smokes): dedupe LLVM EXE scripts via llvm_exe_runner
2025-12-17 21:24:59 +09:00
ae2a1d4339
refactor(joinir): boxify Pattern2 routing and schedule facts
2025-12-17 21:24:46 +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
3fe92312a1
test: Phase 103 P1 if-only early return parity
2025-12-17 17:45:12 +09:00
a5cec824c2
docs: Phase 103 DONE (if-only parity smokes)
2025-12-17 17:41:10 +09:00
99e1d24eaf
test: Phase 103 if-only merge fixture + VM/LLVM smokes
2025-12-17 17:41:07 +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
5b4f9c25e4
test: Phase 102 real-app read_quoted fixture + VM/LLVM smokes
2025-12-17 16:57:11 +09:00
d859e46163
fix(llvm_py): tag stringish across copy/phi for concat
2025-12-17 16:57:06 +09:00
b7a1cc4601
test(smoke): avoid Phase100 string accumulator LLVM EXE skip via plugin cache
2025-12-17 16:38:02 +09:00
dfc01f4dc5
test: Phase 100 string accumulator fixture+smokes (VM+LLVM)
...
- Add phase100_string_accumulator_min.hako fixture
* out = out + ch string accumulation
* print(out.length()) for stable numeric output
- Add VM smoke: phase100_string_accumulator_vm.sh
- Add LLVM EXE smoke: phase100_string_accumulator_llvm_exe.sh (Phase 97 gating)
- Regression: all phase100/97/94 tests pass
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 16:33:26 +09:00
27fd9720d0
feat(joinir): string accumulator emitter (JoinIR)
...
- Add StringAccumulatorEmitter in join_ir/lowering/common/
- Emit string concat as BinOp(Add) for polymorphic VM/LLVM handling
- Ensure VM/LLVM same semantics
- Fail-Fast: RHS must be Variable (not Literal/MethodCall)
- Pattern2 wiring: string carrier昇格 + type refinement + validation
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 16:33:18 +09:00
ad072e5e09
feat(joinir): string accumulator analyzer/spec
...
- Add AccumulatorKind::{Int, String} to MutableAccumulatorSpec
- Detect string accumulator pattern: out = out + ch (ch is Variable)
- Delegate string-ish type check to existing box facts
- Unit tests for Int vs String accumulator detection
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2025-12-17 16:33:11 +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
1b83a92aed
test(llvm_py): cover duplicate incoming per pred
2025-12-17 16:12:22 +09:00