🌟 Phase 12.7文法改革に基づくドキュメント更新 - init {} → field: TypeBox 個別フィールド宣言形式 - init() → birth() コンストラクタ統一 - pack() → 廃止(birth()に統一) - public {}/private {} → 個別フィールド修飾子 - override → 廃止(メソッド定義はシンプルに) 📚 更新したドキュメント - CLAUDE.md: メイン開発ガイド - docs/quick-reference/syntax-cheatsheet.md: 構文早見表 - docs/reference/language/LANGUAGE_REFERENCE_2025.md: 言語リファレンス - docs/development/roadmap/phases/phase-15/README.md: Phase 15計画 🔧 VMリファクタリング準備 - vm_methods.rs: VMメソッド呼び出しの分離 - plugin_loader.rs → plugin_loader/: ディレクトリ構造化 - mir/builder/exprs.rs: 式ビルダー分離 📝 新規ドキュメント追加 - 論文戦略・ロードマップ - Phase 15セルフホスティング準備資料 - Codex Androidセットアップガイド ビルドは正常に通ることを確認済み!🎉 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
149 lines
4.2 KiB
Plaintext
149 lines
4.2 KiB
Plaintext
Phase 15 自己ホスティング準備メモ - 箱積み上げ戦略
|
||
=================================================
|
||
Date: 2025-09-03
|
||
Author: Claude + にゃ
|
||
|
||
■ 基本理念:箱を下にして積み重ねる
|
||
=====================================
|
||
|
||
フォールバック不要、Rust依存なし(EXEライブラリのみ)
|
||
一度置いた箱は動かさない
|
||
下の箱が安定なら、上も安定
|
||
複雑さは敵、シンプルさは友
|
||
|
||
■ 基礎Box群の階層構造
|
||
======================
|
||
|
||
第1層(最下層):これがないと何も始まらない
|
||
├── MemoryBox // メモリ管理
|
||
├── StringBox // 文字列処理
|
||
├── ArrayBox // 配列操作
|
||
├── MapBox // 連想配列
|
||
└── ErrorBox // エラー処理
|
||
|
||
第2層:言語処理の基礎
|
||
├── TokenBox // 字句解析
|
||
├── ASTBox // 構文木
|
||
├── SymbolBox // シンボルテーブル
|
||
└── ScopeBox // スコープ管理
|
||
|
||
第3層:コンパイラコア
|
||
├── ParserBox // パーサー
|
||
├── MIRBox // 中間表現(13命令)
|
||
├── OptimizerBox // 最適化
|
||
└── GeneratorBox // コード生成
|
||
|
||
第4層:実行系
|
||
├── InterpreterBox // インタープリター
|
||
├── VMBox // 仮想マシン
|
||
├── JITBox // JITコンパイラ(Cranelift)
|
||
└── LinkerBox // リンカー(lld)
|
||
|
||
■ 準備期間の研究項目
|
||
====================
|
||
|
||
1. 依存関係マップ作成
|
||
- 何が何に依存?
|
||
- 最小限の依存で最大の効果
|
||
- 循環依存の排除
|
||
|
||
2. インターフェース設計
|
||
- 全Boxの共通プロトコル
|
||
- 入力/出力の標準化
|
||
- エラー処理の統一
|
||
|
||
3. ビルド順序の科学
|
||
- Day 1: 基礎Box群
|
||
- Day 2: 言語処理層
|
||
- Day 3: コンパイラ層
|
||
- 完成まで一直線
|
||
|
||
4. 最小ブートストラップセット
|
||
- 自分自身をコンパイルできる最小構成
|
||
- 必須機能の特定
|
||
- 段階的な機能追加
|
||
|
||
■ 箱の品質保証原則
|
||
==================
|
||
|
||
1. 単体で完結 - 他に依存しすぎない
|
||
2. 明確な責務 - 1つの箱は1つの仕事
|
||
3. テスト可能 - 単独で動作確認
|
||
4. 不変インターフェース - 一度決めたら変更なし
|
||
|
||
■ 実装戦略
|
||
==========
|
||
|
||
1. Rust実装の機能分解(Box単位)
|
||
2. 各Boxの仕様書作成
|
||
3. テストケースの移植計画
|
||
4. Box間プロトコル設計
|
||
5. 最小実装から始める
|
||
6. 増分的に機能追加
|
||
|
||
■ 成功の鍵
|
||
==========
|
||
|
||
- 準備こそすべて
|
||
- 急いで実装より、じっくり設計
|
||
- 箱を積み重ねれば必ず頂上に到達
|
||
- フォールバックなし、後戻りなし、前進あるのみ
|
||
|
||
■ 革新的アイデア
|
||
================
|
||
|
||
1. BoxDNA設計書
|
||
- 各Boxの入力/出力/依存を明文化
|
||
- 遺伝子のように継承・組み合わせ
|
||
|
||
2. 増分コンパイル対応
|
||
- 変更部分だけ再コンパイル
|
||
- 開発効率の向上
|
||
|
||
3. 可視化ツール
|
||
- 進捗の見える化
|
||
- 依存関係の図示
|
||
|
||
■ 数値目標
|
||
==========
|
||
|
||
- 80,000行 → 20,000行(75%削減)
|
||
- MIR13命令で全機能実現
|
||
- ビルド時間:1分以内
|
||
- テストカバレッジ:90%以上
|
||
|
||
■ コンテキスト圧縮対策
|
||
======================
|
||
|
||
1. ANCP活用(Phase 12.7)
|
||
- 90%圧縮でAIコンテキスト節約
|
||
- [ANCP仕様書](../../phase-12.7/ancp-specs/ANCP-Token-Specification-v1.md)
|
||
|
||
2. モジュール分割開発
|
||
- 各Boxを独立して開発
|
||
- 統合は最後に実施
|
||
|
||
3. AI協調開発
|
||
- Claude:実装担当
|
||
- ChatGPT5:リファクタリング
|
||
- Gemini:レビュー
|
||
- Codex:デバッグ支援
|
||
|
||
■ 関連ドキュメント
|
||
==================
|
||
|
||
- [自己ホスティングlld戦略](self-hosting-lld-strategy.md)
|
||
- [Phase 15 README](README.md)
|
||
- [Phase 12.7 ANCP](../../phase-12.7/)
|
||
- [MIR13命令セット](../../../../reference/mir/INSTRUCTION_SET.md)
|
||
|
||
■ 次のアクション
|
||
================
|
||
|
||
1. このメモをベースに詳細設計
|
||
2. Box依存関係グラフの作成
|
||
3. 最小実装セットの確定
|
||
4. 各Boxの仕様書ドラフト
|
||
|
||
=====================================
|
||
「箱を積み上げて、世界一美しいコンパイラを作るにゃ!」 |