Unify condition lowering logic across Pattern 2/4 with trait-based API. New infrastructure: - condition_lowering_box.rs: ConditionLoweringBox trait + ConditionContext (293 lines) - ExprLowerer implements ConditionLoweringBox trait (+51 lines) Pattern migrations: - Pattern 2 (loop_with_break_minimal.rs): Use trait API - Pattern 4 (loop_with_continue_minimal.rs): Use trait API Benefits: - Unified condition lowering interface - Extensible for future lowering strategies - Clean API boundary between patterns and lowering logic - Zero code duplication Test results: 911/911 PASS (+2 new tests) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Status: Historical
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コンパイラへ。