120 lines
3.4 KiB
Markdown
120 lines
3.4 KiB
Markdown
# JIT→EXE実装スケジュール
|
||
|
||
## 📅 全体スケジュール(6週間)
|
||
|
||
### Week 0: 準備期間(リファクタリング待ち)
|
||
- ChatGPT5のリファクタリング完了待機
|
||
- Cranelift/lld調査・準備
|
||
- テスト環境構築
|
||
|
||
### Week 1-2: 基礎実装
|
||
- [ ] C ABIファサード実装(`ny_mir_to_obj`)
|
||
- [ ] Cranelift統合(基本的なMIR→CLIF変換)
|
||
- [ ] 簡単なプログラムでの動作確認
|
||
|
||
### Week 3: リンカー統合
|
||
- [ ] lld内蔵実装
|
||
- [ ] プラットフォーム別リンカーラッパー
|
||
- [ ] nyashrtランタイム作成
|
||
|
||
### Week 4: 最適化・改善
|
||
- [ ] プロファイルベースJIT判定
|
||
- [ ] オブジェクトファイルキャッシュ
|
||
- [ ] エラーハンドリング改善
|
||
|
||
### Week 5: 評価・ベンチマーク
|
||
- [ ] 性能測定スイート作成
|
||
- [ ] 他言語との比較
|
||
- [ ] ボトルネック分析
|
||
|
||
### Week 6: 論文執筆
|
||
- [ ] データ整理・グラフ作成
|
||
- [ ] 各セクション執筆
|
||
- [ ] レビュー・推敲
|
||
|
||
## 🔧 技術的マイルストーン
|
||
|
||
### Phase 1: Minimum Viable Compiler
|
||
```bash
|
||
# 最小動作確認
|
||
echo 'box Main { main() { print("Hello from EXE!") } }' > test.ny
|
||
nyash build test.ny --backend=cranelift
|
||
./test.exe # or ./test on Linux
|
||
```
|
||
|
||
### Phase 2: Real-World Programs
|
||
- サイコロRPGのEXE化
|
||
- 統計計算ツールのスタンドアロン化
|
||
- ベンチマークプログラムの移植
|
||
|
||
### Phase 3: Self-Hosting Preparation
|
||
- Nyashコンパイラ自身のAOTコンパイル
|
||
- ブートストラップテスト
|
||
- 配布パッケージ作成
|
||
|
||
## 📊 成功指標
|
||
|
||
### 技術的指標
|
||
- [ ] Hello WorldがEXE化できる
|
||
- [ ] 全スモークテストがAOTで通る
|
||
- [ ] JIT性能の90%以上を達成
|
||
- [ ] バイナリサイズ < 5MB
|
||
|
||
### 論文的指標
|
||
- [ ] 13命令での完全性証明
|
||
- [ ] 性能評価データ収集完了
|
||
- [ ] 関連研究との差別化明確
|
||
- [ ] 実装の再現可能性確保
|
||
|
||
## 🎯 リスクと対策
|
||
|
||
### リスク1: Cranelift API変更
|
||
- **対策**: バージョン固定、抽象化層
|
||
|
||
### リスク2: プラットフォーム依存
|
||
- **対策**: CI/CDでの継続的テスト
|
||
|
||
### リスク3: 性能目標未達
|
||
- **対策**: プロファイリング、段階的最適化
|
||
|
||
## 💡 論文投稿戦略
|
||
|
||
### 投稿先優先順位
|
||
1. **PLDI 2026** (締切: 2025年11月)
|
||
- プログラミング言語の最高峰
|
||
- JIT/AOT統合は完璧にマッチ
|
||
|
||
2. **CC 2026** (締切: 2025年10月)
|
||
- コンパイラ専門会議
|
||
- 技術的深さを評価
|
||
|
||
3. **ASPLOS 2026** (締切: 2025年8月)
|
||
- システム寄りだが可能性あり
|
||
- 性能面を強調
|
||
|
||
### 差別化ポイント
|
||
- **極小IR(13命令)**: 前代未聞のシンプルさ
|
||
- **完全自立**: 外部ツールチェーン不要
|
||
- **実証済み**: 自己ホスティング成功
|
||
- **実用性**: 実際のアプリケーションで検証
|
||
|
||
## 🚀 実装開始チェックリスト
|
||
|
||
### 環境準備
|
||
- [ ] Cranelift最新版の調査
|
||
- [ ] lldのビルド方法確認
|
||
- [ ] Windows/Linux両環境準備
|
||
|
||
### コード準備
|
||
- [ ] MIR→Cranelift変換の設計
|
||
- [ ] C ABIヘッダー作成
|
||
- [ ] テストケース整理
|
||
|
||
### ドキュメント準備
|
||
- [ ] API仕様書
|
||
- [ ] ビルド手順書
|
||
- [ ] トラブルシューティング
|
||
|
||
---
|
||
|
||
**次のステップ**: ChatGPT5のリファクタリング完了を待ちながら、Cranelift APIの学習とプロトタイプ作成を開始! |