Files
hakorune/docs/private/roadmap/phases/phase-20.14/INDEX.md

214 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 20.14 — 脱Rust最終段階フロントエンド完全統合
## 🎯 目的
Phase 20.13で確立したScript-built EXE基盤を活用し、**Rust依存の最終的削減**を実現する。
### 具体的目標
1. **Runner/Loader/VMフロントエンドをHakoruneスクリプトEXEで完全置換**
2. **Rustカーネルを最小限CABIレイヤーのみに縮小**
3. **Single EXE デプロイメントの完成**
4. **Hakorune Native実行環境の確立**
---
## 📋 現状分析 (Phase 20.13 からの移行)
### Phase 20.13 の成果(現状確定)
-**Script-built EXEインフラゲート**: runner_front / loader_front / vm_frontscript 経路)
-**OK/NOOP/FAIL の短文契約** と採用adoptロジックRunner=CliGroups、Loader=ENV、VM=stdout
-**Strictモード開発者向け**: 未知キーの FailFastrunner 既定、loader/vm は HAKO_FRONT_STRICT=1
-**One Binary 方針の確立**: 将来は内蔵AOTへ集約、現状はゲートで切替script↔lang
### Phase 20.14 での発展(提案・段階導入)
- 🔥 **Rust層の段階的削減**(フロントエンド中心。カーネルは維持)
- 🔥 **Lang内蔵AOTフロントの導入**: 既定OFFゲートで順次切替script→lang
- 🔥 **Single EXE 体験を保ったままの移行**(外部置換は開発用途に限定)
---
## 🏗️ アーキテクチャ設計
### 最終目標アーキテクチャ(方針)
```
┌─────────────────────────────────────┐
│ Hakorune EXE (Native) │
│ ┌─────────────┬─────────────────┐ │
│ │ Front-end │ Kernel │ │
│ │ (Hakorune) │ (C-ABI) │ │
│ │ ┌─────────┐ │ ┌─────────────┐ │ │
│ │ │ Runner │ │ │ Memory │ │ │
│ │ │ Loader │ │ │ FFI │ │ │
│ │ │ VM │ │ │ Diagnostics│ │ │
│ │ │ Linker │ │ │ OS Interface│ │ │
│ │ └─────────┘ │ └─────────────┘ │ │
│ └─────────────┴─────────────────┘ │
└─────────────────────────────────────┘
```
### Phase遷移マップ
| Phase | Rust依存度 | Hakorune化 | 状態 |
|------|-----------|-----------|------|
| 20.12 | 85% | Frontendスクリプト化 | ✅完了 |
| 20.13 | 50% | Frontend EXE化 | ✅完了 |
| **20.14** | **低減** | **Frontend統合を段階導入** | 🎯提案 |
| 20.15 | 5% | カーネル最小化 | 予定 |
---
## 📅 実行計画 (4週間)
### Week 1: Frontend統合強化
- **P0**: Runner_front実装強化 (Phase 20.13継承)
- **P1**: Loader_frontポリシー拡充
- **P2**: VM_front軽量化最適化
- **P3**: 統合テストインフラ構築
### Week 2: Rust層削減第一段階提案・既定OFF
- **P0**: Parserレイヤーの移行検討既定OFFのゲートで試験。既存挙動は維持
- **P1**: MIR Builder依存削減
- **P2**: Plugin Manager移行
- **P3**: エラーハンドリング統合
### Week 3: Native実行環境確立
- **P0**: CABIカーネル整備
- **P1**: Memory Manager統合
- **P2**: FFI Binding最適化
- **P3**: OS Interface抽象化
### Week 4: Single EXE完成
- **P0**: Full Integration Testing
- **P1**: Performance Validation
- **P2**: Deployment Pipeline
- **P3**: Documentation Complete
---
## 🔧 技術仕様
### Frontend EXE 仕様(概念・.hako
```hako
// runner_front.hako - 統合エントリーポイント(概念スケッチ)
static box RunnerFront {
config: ConfigBox
policy: PolicyBox
execute(args: ArrayBox) {
// Phase 20.13から継承・強化
local mode = me.policy.detect_mode(args)
return me.dispatch(mode, args)
}
}
```
### CABI カーネル仕様(草案・提案)
```c
// hakorune_kernel.h - 最小限のCインターフェース
typedef struct {
void* memory_base;
void* ffi_table;
void* diagnostics;
} hakorune_kernel_t;
// 4つの核関数のみ
hakorune_kernel_t* hakorune_init();
int hakorune_execute(hakorune_kernel_t*, const char* script);
void* hakorune_alloc(hakorune_kernel_t*, size_t size);
void hakorune_cleanup(hakorune_kernel_t*);
```
---
## 🎯 成功基準Phase 20.14
### 機能的成功
-**Frontend EXE群がすべてHakoruneで実装**
-**Rust依存がCABIカーネルのみ (target <10,000 LOC)**
-**Single EXEで完結 (外部DLL不要)**
### 性能的成功
-**Phase 20.12 性能維持 (±10%)**
-**起動時間 < 100ms (Cold Start)**
-**メモリ使用量 < 50MB (Base Execution)**
### 品質的成功
-**Quick smokes 100% PASS**
-**Integration tests 95%+ PASS**
-**Zero critical bugs in production**
---
## 🔍 リスク管理
### 主要リスク(現状の制約を考慮)
1. **Performance Regression**: Frontend EXE化のオーバーヘッド
2. **Compatibility Issues**: 既存スクリプトとの互換性
3. **Debugging Complexity**: 多層化のデバッグ困難
### 緩和策
1. **性能**: リグレッションテスト + 最適化バッファ
2. **互換性**: 後方互換レイヤー + 段階的移行
3. **デバッグ**: 統合デバッグパイプライン + 詳細ログ
---
## 📚 関連ドキュメント
### 親フェーズ
- [Phase 20.13 README](../phase-20.13/README.md) - Script-built EXE基盤
- [Phase 20.12b README](../phase-20.12b/README.md) - スクリプト化基盤
### 技術資料
- [Front-end Overview Guide](../../../guides/tools/front-exe-overview.md)
- [C-ABI Kernel Specification](../../../reference/c-abi-kernel.md)
- [Performance Benchmarks](../../../development/performance/phase-20-benchmarks.md)
---
## 🚀 開始手順
### 環境準備(現行ゲート)
```bash
# フロントscript経路の確認開発用
SMOKES_ENABLE_FRONT_EXE=1 tools/smokes/v2/run.sh --profile quick --filter 'front_.*_vm\.sh$'
# Lang内蔵AOTゲートの有効化現行はプレースホルダ挙動
export HAKO_RUNNER_USE_LANG_EXE=1
export HAKO_LOADER_USE_LANG_EXE=1
export HAKO_VM_USE_LANG_EXE=1
```
### エントリー実行(例)
```bash
# ランナーを lang 内蔵frontに切替して通常実行標準的な .hako ファイル)
HAKO_RUNNER_USE_LANG_EXE=1 ./target/release/hakorune examples/hello.hako
# Script front と連携OKペイロード注入
HAKO_RUNNER_USE_SCRIPT_EXE=1 HAKO_RUNNER_FRONT_FORCE=ok \
HAKO_RUNNER_FRONT_PAYLOAD='{"stdout":"adopt","backend":"vm"}' \
./target/release/hakorune examples/hello.hako
```
---
## 📚 関連ドキュメント
### 📋 移行計画
- [TRANSITION_PLAN.md](TRANSITION_PLAN.md) - Phase 20.13からの移行詳細(本書は提案/ドラフト。ゲート配下で段階導入)
### 📊 詳細分析
- [RUST_MINIMIZATION_ANALYSIS.md](RUST_MINIMIZATION_ANALYSIS.md) - 統計的分析と削減ポテンシャル
### 🎯 今後の展開
- **Phase 20.15**: Core削減強化 (75%削減目標) → `../phase-20.15/`
- **Phase 20.16**: 究極的最小化 (93%削減目標) → `../phase-20.16/`
- **Phase 20.17**: Full SelfHostingSpec/ABI Freeze v1`../phase-20.17/`
---
**開発開始**: 2025-10-27
**完了予定**: 2025-11-24
**担当**: Claude/Human協調開発