Files
hakorune/docs/archive/roadmap/phases/phase-19
nyash-codex 811dfebf98 fix(joinir): Phase 241-EX - Remove hardcoded 'sum' check from Pattern3
Remove legacy hardcoded 'sum' carrier validation that was blocking
array_filter patterns with different accumulator names (e.g., 'out').

Before: Pattern3 required carrier named 'sum' to exist
After: Pattern3 uses carrier_info generically (any carrier name works)

Test results:
- phase49_joinir_array_filter_smoke: PASS 
- phase49_joinir_array_filter_fallback: PASS 
- phase49_joinir_array_filter_ab_comparison: PASS 
- Full suite: 909/909 PASS, 0 FAIL

Also: Archive old roadmap documentation (67k lines moved to docs/archive/)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 00:48:42 +09:00
..

Phase 19: LoopForm ⇄ Core13 PoC と検証・ゼロコストCI

目的Why

  • Phase18 の設計を具体化し、限定範囲で LoopForm ⇄ Core13 の往復を成立させる。
  • 可逆性と“ゼロコスト退化”の検証を自動化CIし、設計の健全性を継続的に保証する。

やることPoC

  • 変換: lower_loop(ast) -> LoopModule(限定サブセット)
  • 実行: interp-loop(限定サブセット)
  • ラウンドトリップ: LoopForm -> Core13Core13 -> LoopForm退化ScopeLoopは等価

検証と禁則CI

  • 可逆性テスト: 値・分岐・fini順序・効果が一致。
  • ゼロコスト条件: 退化ScopeLoopの Core13 で “余計な ExternCall/alloc がゼロ”。
    • 手順: IR差分/統計で call/alloc 新規発生が無いことをチェック。
    • 将来: AOT/ASM差分の軽量比較変換に伴う命令増なし

LoopBox最小・非既定

  • 目的: 第一級ループとして外部へ渡す/中断再開/反射トレース時のみ具現化。
  • API: birth/next/signal/fini + TypeOp is_signal_kind + unwrap_*。
  • 既定: feature off本体は退化ScopeLoopで十分

段階的導入

  • M1: 退化ScopeLoopの往復可逆性テスト + ゼロコストCIIR差分
  • M2: LoopBox最小実装 + verifybirth→(next)*→fini 一回性)
  • M3: NDJSON拡張trace/ping/subscribeと観測ポイント

アウトオブスコープPhase19

  • 最適化・高度なスケジューリングPhase20+

備考

  • 例外は Result分岐で統一引き続き
  • ASTは単一・IR分岐のまま維持