Commit Graph

2156 Commits

Author SHA1 Message Date
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