主な成果: - TypeBox(型情報をBoxとして扱う)による統合ABI設計 - C ABI + Nyash ABIの完全統合仕様書作成 - 3大AI専門家(Gemini/Codex/ChatGPT5)による検証済み - ChatGPT5の10個の安全性改善提案を反映 - README.mdのドキュメント更新(全起点から到達可能) MapBox拡張: - string型キーサポート(従来のi64に加えて) - remove/clear/getOr/keysStr/valuesStr/toJson実装 - keys()/values()のランタイムシムサポート(TypeBox待ち) その他の改善: - Phase 11.9(文法統一化)ドキュメント追加 - Phase 16(FoldLang)ドキュメント追加 - 非同期タイムアウトテスト追加 - 各種ビルド警告(未使用import等)は次のリファクタリングで対応予定 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Phase 15: Nyashセルフホスティング - 71k→15k行への革命
📋 概要
NyashでNyashコンパイラを書く、完全なセルフホスティングの実現フェーズ。 内蔵Cranelift JITを活用し、外部コンパイラ依存から完全に解放される。 革命的成果:71,000行→15,000行(75%削減)
🎯 フェーズの目的
- 完全なセルフホスティング: NyashコンパイラをNyashで実装
- 外部依存の排除: gcc/clang/MSVC不要の世界
- Everything is Box哲学の完成: コンパイラもBox
- エコシステムの自立: Nyashだけで完結する開発環境
- 劇的なコード圧縮: 75%削減で保守性・可読性の革命
📊 主要成果物
コンパイラコンポーネント
- CompilerBox実装(統合コンパイラ)
- Nyashパーサー(800行目標)
- MIR Lowerer(2,500行目標)
- CraneliftBox(JITエンジンラッパー)
- LinkerBox(リンカー統合)
自動生成基盤
- boxes.yaml(Box型定義)
- externs.yaml(C ABI境界)
- semantics.yaml(MIR15定義)
- build.rs(自動生成システム)
ブートストラップ
- c0→c1コンパイル成功
- c1→c1'自己コンパイル
- パリティテスト合格
🔧 技術的アプローチ
内蔵Craneliftの利点
- 軽量: 3-5MB程度(LLVMの1/10以下)
- JIT特化: メモリ上での動的コンパイル
- Rust統合: 静的リンクで配布容易
コード削減の秘密
- Arc自動化: 明示的ロック管理不要(-30%)
- 型システム簡略化: 動的型付けの恩恵(-20%)
- エラー処理統一: Result<T,E>地獄からの解放(-15%)
- 動的ディスパッチ: match文の大幅削減(-10%)
実装例
// 71,000行のRust実装が...
box NyashCompiler {
init { parser, lowerer, backend }
compile(source) {
local ast = me.parser.parse(source)
local mir = me.lowerer.lower(ast)
return me.backend.generate(mir)
}
}
// MIR実行器も動的ディスパッチで簡潔に
box MirExecutor {
execute(inst) { return me[inst.type](inst) }
Const(inst) { me.values[inst.result] = inst.value }
BinOp(inst) { /* 実装 */ }
}
🔗 EXEファイル生成・リンク戦略
段階的アプローチ
- Phase 1: 外部リンカー(lld/gcc)利用
- Phase 2: lld内蔵で配布容易化
- Phase 3: ミニリンカー自作(究極の自立)
C ABI境界設計
- プレフィクス:
ny_v1_*で統一 - 呼出規約: Windows(fastcall) / Linux(sysv_amd64)
- 必須関数:
ny_init(),ny_fini() - 型マッピング:
ny_handle=uint64_t
🔗 関連ドキュメント
📅 実施時期
- 開始条件: Phase 10-14完了後
- 推定開始: 2026年前半
- 推定期間: 6-8ヶ月
- 早期着手: YAML自動生成は今すぐ開始可能
💡 期待される成果
- 技術的証明: 実用言語としての成熟度
- 開発効率: Nyashだけで開発完結
- 教育価値: 15,000行で読破可能なコンパイラ
- コミュニティ: 参入障壁の大幅低下
- 保守性革命: 75%削減で誰でも改造可能
🌟 夢の実現
「コンパイラもBox、リンカーもBox、すべてがBox」 「71,000行→15,000行、これが革命」
外部ツールチェーンに依存しない、真の自立したプログラミング言語へ。
数値で見る革命
- コード行数: 71,000 → 15,000行(75%削減)
- 理解容易性: 1週間で読破可能なコンパイラ
- 貢献しやすさ: 誰でも改造できる規模
- 教育的価値: 世界一シンプルな実用コンパイラ