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>
Phase 22: Nyash LLVM Compiler - コンパイラもBoxの世界へ
📋 概要
LLVMコンパイラ自体をNyashで実装する革命的アプローチ。 C++で最小限のグルー層(20-30関数)を作り、コンパイラロジックの大部分をNyashで記述。 究極の目標:2,500行のRust実装を100-200行のNyashで置き換える。
🎯 フェーズの目的
- 開発サイクルの革命: ビルド時間5-7分 → 即座の変更反映
- 究極のシンプルさ: Everything is Boxでコンパイラも簡潔に
- セルフホスティング深化: NyashでNyashをコンパイルする真の実現
- 保守性の劇的向上: 誰でも読める100行のコンパイラ
🤔 なぜこのアプローチか?
現在の課題(2025-09-11)
- Rust + LLVM (inkwell): 複雑で長いビルド時間
- 2,500行のコード: 理解と保守が困難
- 依存地獄: inkwellのバージョン管理
ユーザーの洞察
「MIR解釈して出力するだけなのに、メモリーリークの心配なんてあるんだろうか?」 → その通り!短命なバッチ処理にRustの複雑さは過剰。
📐 設計概要
// 究極のシンプルなLLVMコンパイラ
box LLVMCompiler {
context: LLVMContextBox
module: LLVMModuleBox
compileMir(mirJson) {
local mir = JsonBox.parse(mirJson)
mir.functions.forEach(me.compileFunction)
return me.module.emitObject()
}
}
🔗 関連ドキュメント
- Geminiとの議論 - 技術的実現可能性
- Codexとの議論 - 詳細技術分析
- 統合まとめ - 両AIの知見を統合
- 実装ロードマップ - 段階的実装計画
📅 実施時期
- 開始条件: Phase 15 LLVMバックエンド完成後
- 推定開始: 2026年後半
- 推定期間: 3-4ヶ月(PoCは数週間)
💡 期待される成果
- ビルド時間: 5-7分 → ゼロ(スクリプト実行のみ)
- コード量: 2,500行 → 100-200行(95%削減!)
- 理解容易性: 週末どころか1時間で理解可能
- 開発効率: 即座に変更・テスト可能
🌟 夢の実現
「コンパイラもBox、Everything is Box」 「2,500行→100行、これこそ革命」
最小限のC++グルーとNyashの表現力で、世界一シンプルなLLVMコンパイラへ。