Files
hakorune/docs/development/current/main/00-Overview.md
nyash-codex 4e32a803a7 feat(joinir): Phase 33-22 CommonPatternInitializer & JoinIRConversionPipeline integration
Unifies initialization and conversion logic across all 4 loop patterns,
eliminating code duplication and establishing single source of truth.

## Changes

### Infrastructure (New)
- CommonPatternInitializer (117 lines): Unified loop var extraction + CarrierInfo building
- JoinIRConversionPipeline (127 lines): Unified JoinIR→MIR→Merge flow

### Pattern Refactoring
- Pattern 1: Uses CommonPatternInitializer + JoinIRConversionPipeline (-25 lines)
- Pattern 2: Uses CommonPatternInitializer + JoinIRConversionPipeline (-25 lines)
- Pattern 3: Uses CommonPatternInitializer + JoinIRConversionPipeline (-25 lines)
- Pattern 4: Uses CommonPatternInitializer + JoinIRConversionPipeline (-40 lines)

### Code Reduction
- Total reduction: ~115 lines across all patterns
- Zero code duplication in initialization/conversion
- Pattern files: 806 lines total (down from ~920)

### Quality Improvements
- Single source of truth for initialization
- Consistent conversion flow across all patterns
- Guaranteed boundary.loop_var_name setting (prevents SSA-undef bugs)
- Improved maintainability and testability

### Testing
- All 4 patterns tested and passing:
  - Pattern 1 (Simple While): 
  - Pattern 2 (With Break): 
  - Pattern 3 (If-Else PHI): 
  - Pattern 4 (With Continue): 

### Documentation
- Phase 33-22 inventory and results document
- Updated joinir-architecture-overview.md with new infrastructure

## Breaking Changes
None - pure refactoring with no API changes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-07 21:02:20 +09:00

1.1 KiB
Raw Blame History

Self Current Task — Overview (main)

目的

  • main ブランチで Core13MIR13前提の制御フローを整備し、LLVM/Cranelift(EXE)/VM に綺麗に降ろす土台を完成させる。
  • 箱言語の既存命令セットBranch/Jump/Phi 他を活かし、continue/break を新命令なしで表現する。

前提と指針

  • MIR13 前提(純化モードを含む)。
  • ループは canonical 形preheader → header → body → latch → header、exit は単一)。
  • continue/break は分岐のみで表現continue→ヘッダ/ラッチ、break→単一 exit
  • Verifier支配関係/SSA緑を最優先。postterminated 後の emit 禁止、合流点を明確化。

スコープ外

  • 新規 MIR 命令の追加。
  • try/finally と continue/break の相互作用(次段)。

JoinIR / Selfhost 関連の入口

  • JoinIR 全体のアーキテクチャと箱の関係は
    docs/development/current/main/joinir-architecture-overview.md を参照してね。
  • selfhost / .hako 側から JoinIR を使うときも、この設計を SSOT として運用する方針だよ。