2025-12-11 00:33:04 +09:00
|
|
|
|
Status: Historical
|
|
|
|
|
|
|
2025-11-06 22:34:18 +09:00
|
|
|
|
# Hakorune Legacy Code Investigation Report
|
|
|
|
|
|
|
|
|
|
|
|
**調査日**: 2025-11-06
|
|
|
|
|
|
**Phase**: 20.46 (Phase 21.0完成後)
|
|
|
|
|
|
**調査対象**: 削除可能なレガシーコード、デッドコード、不要な機能
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📊 Executive Summary
|
|
|
|
|
|
|
|
|
|
|
|
- **総Rustファイル数**: 618ファイル
|
|
|
|
|
|
- **#[allow(dead_code)]**: 76箇所
|
|
|
|
|
|
- **レガシーコード推定**: 約10,000行 (全体の約10%)
|
|
|
|
|
|
- **削除推奨**: 約5,000〜7,000行 (段階的削除)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🎯 カテゴリ別分析
|
|
|
|
|
|
|
|
|
|
|
|
### 1. ⚠️ Cranelift/JITバックエンド (高優先度・Safe削除)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: Phase 15でアーカイブ済み (`archive/jit-cranelift/`)
|
|
|
|
|
|
**問題**: 本体コードに参照が残存
|
|
|
|
|
|
|
|
|
|
|
|
#### 影響範囲
|
|
|
|
|
|
- **参照ファイル数**: 27ファイル
|
|
|
|
|
|
- **feature gate**: `cranelift-jit` (Cargo.tomlで既にコメントアウト済み)
|
|
|
|
|
|
- **推定削除可能行数**: 約1,500〜2,000行
|
|
|
|
|
|
|
|
|
|
|
|
#### 主要ファイル
|
|
|
|
|
|
|
|
|
|
|
|
##### 削除推奨 (Safe)
|
|
|
|
|
|
```
|
|
|
|
|
|
src/runner/modes/cranelift.rs (46行) - Safe削除
|
|
|
|
|
|
src/runner/modes/aot.rs (66行) - Safe削除 (cranelift feature依存)
|
|
|
|
|
|
src/runner/jit_direct.rs (推定200行) - Safe削除
|
|
|
|
|
|
|
|
|
|
|
|
src/tests/core13_smoke_jit.rs (約100行) - Safe削除
|
|
|
|
|
|
src/tests/core13_smoke_jit_map.rs (約100行) - Safe削除
|
|
|
|
|
|
src/tests/identical_exec*.rs (7ファイル) - feature gateで無効化済み
|
|
|
|
|
|
src/tests/policy_mutdeny.rs (206行) - 一部cranelift依存
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
##### 要検証 (Investigate)
|
|
|
|
|
|
```
|
|
|
|
|
|
src/backend/mod.rs:29-52 - cranelift再エクスポート (削除可能)
|
|
|
|
|
|
src/backend/aot/ - AOTコンパイル機能 (WASM依存, 要確認)
|
|
|
|
|
|
src/runner/dispatch.rs - cranelift分岐 (削除可能)
|
|
|
|
|
|
src/cli/args.rs - --backend cranelift オプション (削除可能)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 推奨アクション
|
|
|
|
|
|
1. **Phase 1**: feature gate確認・テストファイル削除 (Safe, 約500行)
|
|
|
|
|
|
2. **Phase 2**: runner/modesのcranelift.rs削除 (Safe, 約200行)
|
|
|
|
|
|
3. **Phase 3**: backend/mod.rs再エクスポート削除 (Safe, 約30行)
|
|
|
|
|
|
4. **Phase 4**: 残存参照の完全削除 (要テスト, 約1,000行)
|
|
|
|
|
|
|
|
|
|
|
|
**削除時影響**: 無し (feature既に削除済み、ビルドエラーなし)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 🌐 WASMバックエンド (低優先度・要確認)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: Feature-gated (`wasm-backend`), 使用頻度不明
|
|
|
|
|
|
|
|
|
|
|
|
#### 影響範囲
|
|
|
|
|
|
- **ディレクトリ**: `src/backend/wasm/`, `src/backend/wasm_v2/`, `src/backend/aot/`
|
|
|
|
|
|
- **総行数**: 約3,170行
|
|
|
|
|
|
- **ディスクサイズ**: 140KB
|
|
|
|
|
|
- **参照ファイル数**: 8ファイル
|
|
|
|
|
|
|
|
|
|
|
|
#### 主要ファイル
|
|
|
|
|
|
```
|
|
|
|
|
|
src/backend/wasm/codegen.rs (851行)
|
|
|
|
|
|
src/backend/wasm/memory.rs (426行)
|
|
|
|
|
|
src/backend/wasm/runtime.rs (369行)
|
|
|
|
|
|
src/backend/aot/executable.rs (301行)
|
|
|
|
|
|
src/backend/wasm_v2/* (約250行)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 判定: **Risky** - 現時点では保持推奨
|
|
|
|
|
|
|
|
|
|
|
|
**理由**:
|
|
|
|
|
|
- CLAUDE.mdで「⚠️ WASM機能: レガシーインタープリター削除により一時無効」と記載
|
|
|
|
|
|
- 将来的なWASM対応の可能性あり
|
|
|
|
|
|
- Phase 21.0完成後の方針次第
|
|
|
|
|
|
|
|
|
|
|
|
**推奨アクション**:
|
|
|
|
|
|
1. 使用状況調査 (WASMバックエンド実際に動作するか?)
|
|
|
|
|
|
2. 動作しない場合: `archive/wasm-backend/`に移動
|
|
|
|
|
|
3. 動作する場合: ドキュメント整備・テスト追加
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 🗂️ BID Copilot Modules (中優先度・Safe削除)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: 未使用プロトタイプ (READMEで「現在は使用していない」と明記)
|
|
|
|
|
|
|
|
|
|
|
|
#### 影響範囲
|
|
|
|
|
|
- **ディレクトリ**: `src/bid-codegen-from-copilot/`, `src/bid-converter-copilot/`
|
|
|
|
|
|
- **総行数**: 約1,894行
|
|
|
|
|
|
- **ディスクサイズ**: 124KB
|
|
|
|
|
|
- **総ファイル数**: 13ファイル
|
|
|
|
|
|
|
|
|
|
|
|
#### 詳細
|
|
|
|
|
|
|
|
|
|
|
|
##### bid-codegen-from-copilot/ (88KB, 9ファイル)
|
|
|
|
|
|
```
|
|
|
|
|
|
schema.rs (約300行)
|
|
|
|
|
|
codegen/generator.rs (推定500行)
|
|
|
|
|
|
codegen/targets/wasm.rs (詳細実装)
|
|
|
|
|
|
codegen/targets/{vm,llvm,python,ts}.rs (スタブ)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**用途**: 将来的なプラグイン多言語対応
|
|
|
|
|
|
**判定**: **Safe削除** - `archive/bid-copilot-prototype/`に移動
|
|
|
|
|
|
|
|
|
|
|
|
##### bid-converter-copilot/ (36KB, 4ファイル)
|
|
|
|
|
|
```
|
|
|
|
|
|
tlv.rs (TLVエンコード/デコード)
|
|
|
|
|
|
types.rs (BID型定義)
|
|
|
|
|
|
error.rs (BIDエラー型)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**用途**: 将来的なnyash2.toml実装時に活用予定
|
|
|
|
|
|
**判定**: **Safe削除** - 汎用性高いが現在未使用、`archive/bid-converter/`に移動
|
|
|
|
|
|
|
|
|
|
|
|
#### 推奨アクション
|
|
|
|
|
|
1. **Phase 1**: `archive/bid-copilot-prototype/`にディレクトリごと移動
|
|
|
|
|
|
2. **Phase 2**: `src/lib.rs`のコメント削除 (現在はモジュール宣言なし)
|
|
|
|
|
|
3. **影響**: 無し (既に未使用、インポート0)
|
|
|
|
|
|
|
|
|
|
|
|
**削減見込み**: 約1,900行
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 📄 JSON v1 Bridge (中優先度・要確認)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: 使用状況不明
|
|
|
|
|
|
|
|
|
|
|
|
#### 影響範囲
|
|
|
|
|
|
- **ファイル**: `src/runner/json_v1_bridge.rs` (734行)
|
|
|
|
|
|
- **#[allow(dead_code)]**: `try_parse_v1_to_module()` 関数
|
|
|
|
|
|
|
|
|
|
|
|
#### コード抜粋
|
|
|
|
|
|
```rust
|
|
|
|
|
|
#[allow(dead_code)]
|
|
|
|
|
|
pub fn try_parse_v1_to_module(json: &str) -> Result<Option<MirModule>, String> {
|
|
|
|
|
|
// MIR JSON v1スキーマパース
|
|
|
|
|
|
// 最小限のサポート: const, copy, ret
|
|
|
|
|
|
}
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 判定: **Investigate** - 使用確認が必要
|
|
|
|
|
|
|
|
|
|
|
|
**調査項目**:
|
|
|
|
|
|
1. JSON v1を出力するコードは存在するか?
|
|
|
|
|
|
2. テストで使用されているか?
|
|
|
|
|
|
3. JSON v0 bridgeで代替可能か?
|
|
|
|
|
|
|
|
|
|
|
|
**推奨アクション**:
|
|
|
|
|
|
1. **Phase 1**: 使用状況調査 (grep検索・テスト実行)
|
|
|
|
|
|
2. **Phase 2**: 未使用なら`archive/json-v1-bridge.rs`に移動
|
|
|
|
|
|
3. **Phase 3**: 使用中なら機能追加 or ドキュメント整備
|
|
|
|
|
|
|
|
|
|
|
|
**削減見込み**: 約700行 (未使用の場合)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 5. 🔧 #[allow(dead_code)] マーカー (高優先度・段階削除)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: 76箇所存在
|
|
|
|
|
|
|
|
|
|
|
|
#### 主要カテゴリ
|
|
|
|
|
|
|
|
|
|
|
|
##### PyVM/JSON v0 Bridge (保持推奨)
|
|
|
|
|
|
```
|
|
|
|
|
|
src/runner/modes/common_util/pyvm.rs - PyVMハーネス (セルフホスト専用)
|
|
|
|
|
|
src/runner/modes/common_util/exec.rs - 実行ユーティリティ
|
|
|
|
|
|
```
|
|
|
|
|
|
**判定**: **保持** - Phase 15セルフホスティングで使用中
|
|
|
|
|
|
|
|
|
|
|
|
##### Legacy Expression/Type Check
|
|
|
|
|
|
```
|
|
|
|
|
|
src/mir/builder/exprs_legacy.rs:6 - build_expression_impl_legacy()
|
|
|
|
|
|
src/mir/verification/legacy.rs:6 - check_no_legacy_ops()
|
|
|
|
|
|
src/mir/builder/utils.rs - 旧型チェック関数
|
|
|
|
|
|
```
|
|
|
|
|
|
**判定**: **Safe削除** - Phase 15でCore-13/14/15に統一済み
|
|
|
|
|
|
|
|
|
|
|
|
##### Parser関連
|
|
|
|
|
|
```
|
|
|
|
|
|
src/parser/common.rs - unknown_span() 等
|
|
|
|
|
|
src/parser/sugar.rs - 旧シュガー構文
|
|
|
|
|
|
src/parser/declarations/*/validators.rs - 古いバリデーター
|
|
|
|
|
|
```
|
|
|
|
|
|
**判定**: **Investigate** - 実際の使用状況確認が必要
|
|
|
|
|
|
|
|
|
|
|
|
##### Box Factory Deprecated
|
|
|
|
|
|
```
|
|
|
|
|
|
src/box_factory/builtin_impls/*.rs - 18箇所のDEPRECATEDマーカー
|
|
|
|
|
|
```
|
|
|
|
|
|
**判定**: **Risky** - プラグイン移行戦略次第 (後述)
|
|
|
|
|
|
|
|
|
|
|
|
#### 推奨アクション
|
|
|
|
|
|
1. **Phase 1**: 明確に未使用な関数削除 (約20箇所, Safe)
|
|
|
|
|
|
2. **Phase 2**: Legacy MIR関連削除 (約10箇所, Safe)
|
|
|
|
|
|
3. **Phase 3**: Parser関連の実使用確認・削除 (約15箇所, Investigate)
|
|
|
|
|
|
4. **Phase 4**: 残存コードのリファクタリング (約30箇所, Risky)
|
|
|
|
|
|
|
|
|
|
|
|
**削減見込み**: 約500〜1,000行
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 6. ⚠️ Builtin Box DEPRECATED (低優先度・Phase戦略依存)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: プラグイン移行計画中
|
|
|
|
|
|
|
|
|
|
|
|
#### 影響範囲
|
|
|
|
|
|
- **ディレクトリ**: `src/box_factory/builtin_impls/`
|
|
|
|
|
|
- **総行数**: 約264行
|
|
|
|
|
|
- **DEPRECATEDマーカー**: 18箇所
|
|
|
|
|
|
|
|
|
|
|
|
#### 対象Box
|
|
|
|
|
|
```
|
|
|
|
|
|
console_box.rs - ⚠️ nyash-console-plugin推奨 (既存)
|
|
|
|
|
|
string_box.rs - ⚠️ nyash-string-plugin推奨
|
|
|
|
|
|
array_box.rs - ⚠️ nyash-array-plugin推奨
|
|
|
|
|
|
bool_box.rs - ⚠️ nyash-bool-plugin推奨 (未作成)
|
|
|
|
|
|
integer_box.rs - ⚠️ nyash-integer-plugin推奨
|
|
|
|
|
|
map_box.rs - ⚠️ nyash-map-plugin推奨
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 判定: **Risky** - Phase 15.5-B戦略次第
|
|
|
|
|
|
|
|
|
|
|
|
**理由**:
|
|
|
|
|
|
- CLAUDE.mdで「2本柱体制: Core Box統一化完了」と記載
|
|
|
|
|
|
- プラグイン移行は段階的実施中
|
|
|
|
|
|
- 削除すると既存コードが大量に壊れる可能性
|
|
|
|
|
|
|
|
|
|
|
|
**推奨アクション**:
|
|
|
|
|
|
1. **現状**: DEPRECATEDマーカーは保持
|
|
|
|
|
|
2. **Phase 15.5-B完了後**: プラグイン移行状況確認
|
|
|
|
|
|
3. **Phase 16**: builtin→plugin完全移行計画策定
|
|
|
|
|
|
4. **Phase 17**: builtinコード削除
|
|
|
|
|
|
|
|
|
|
|
|
**削減見込み**: 約200〜300行 (Phase 16以降)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 7. 🧪 Legacy Test Files (中優先度・Safe削除)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: Feature-gatedで無効化済み
|
|
|
|
|
|
|
|
|
|
|
|
#### 影響範囲
|
|
|
|
|
|
- **総数**: 7ファイル (cranelift依存)
|
|
|
|
|
|
- **推定行数**: 約1,000〜1,500行
|
|
|
|
|
|
|
|
|
|
|
|
#### 主要ファイル
|
|
|
|
|
|
```
|
|
|
|
|
|
src/tests/core13_smoke_jit.rs (#[cfg(feature = "cranelift-jit")])
|
|
|
|
|
|
src/tests/core13_smoke_jit_map.rs (#[cfg(feature = "cranelift-jit")])
|
|
|
|
|
|
src/tests/identical_exec.rs (一部cranelift依存)
|
|
|
|
|
|
src/tests/identical_exec_collections.rs
|
|
|
|
|
|
src/tests/identical_exec_instance.rs
|
|
|
|
|
|
src/tests/identical_exec_string.rs
|
|
|
|
|
|
src/tests/policy_mutdeny.rs (206行, 一部cranelift)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 判定: **Safe削除** - feature削除済み
|
|
|
|
|
|
|
|
|
|
|
|
**推奨アクション**:
|
|
|
|
|
|
1. **Phase 1**: cranelift feature完全依存ファイル削除 (5ファイル)
|
|
|
|
|
|
2. **Phase 2**: identical_exec系の整理 (4ファイル, 一部保持?)
|
|
|
|
|
|
3. **Phase 3**: policy_mutdeny.rsの分割 (cranelift部分のみ削除)
|
|
|
|
|
|
|
|
|
|
|
|
**削減見込み**: 約1,000行
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
### 8. 🐍 PyVM References (保持推奨)
|
|
|
|
|
|
|
|
|
|
|
|
**状態**: JSON v0 Bridge・セルフホスト専用
|
|
|
|
|
|
|
|
|
|
|
|
#### 影響範囲
|
|
|
|
|
|
- **参照数**: 102箇所
|
|
|
|
|
|
- **主要用途**: Phase 15セルフホスティング
|
|
|
|
|
|
|
|
|
|
|
|
#### 主要ファイル
|
|
|
|
|
|
```
|
|
|
|
|
|
src/runner/modes/pyvm.rs - PyVM実行モード
|
|
|
|
|
|
src/runner/json_v0_bridge/ - JSON v0→MIR変換
|
|
|
|
|
|
src/llvm_py/pyvm/ - Python VM実装
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### 判定: **保持** - Phase 15現役使用中
|
|
|
|
|
|
|
|
|
|
|
|
**理由**:
|
|
|
|
|
|
- CLAUDE.mdで「PyVM特化保持 (JSON v0ブリッジ・using処理のみ)」と明記
|
|
|
|
|
|
- Phase 15.5-Bセルフホスティング実装で必須
|
|
|
|
|
|
- 削除不可
|
|
|
|
|
|
|
|
|
|
|
|
**推奨アクション**: なし (現状維持)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📈 削減見込みサマリー
|
|
|
|
|
|
|
|
|
|
|
|
| カテゴリ | 推定行数 | 削除難易度 | 優先度 | 削減見込み |
|
|
|
|
|
|
|---------|---------|-----------|-------|----------|
|
|
|
|
|
|
| Cranelift/JIT | 1,500〜2,000行 | Safe | 高 | 1,500行 |
|
|
|
|
|
|
| WASM Backend | 3,170行 | Risky | 低 | 0行 (保持) |
|
|
|
|
|
|
| BID Copilot | 1,894行 | Safe | 中 | 1,900行 |
|
|
|
|
|
|
| JSON v1 Bridge | 734行 | Investigate | 中 | 700行? |
|
|
|
|
|
|
| #[allow(dead_code)] | 500〜1,000行 | Mixed | 高 | 500行 |
|
|
|
|
|
|
| Builtin Box | 264行 | Risky | 低 | 0行 (Phase 16) |
|
|
|
|
|
|
| Legacy Tests | 1,000行 | Safe | 中 | 1,000行 |
|
|
|
|
|
|
| PyVM | N/A | N/A | N/A | 0行 (保持) |
|
|
|
|
|
|
| **合計** | **約9,000行** | - | - | **約5,600行** |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🎯 段階的削除計画
|
|
|
|
|
|
|
|
|
|
|
|
### Phase A: 安全削除 (即実行可能)
|
|
|
|
|
|
**推定削減**: 約2,500行
|
|
|
|
|
|
|
|
|
|
|
|
1. **Cranelift JITファイル削除**
|
|
|
|
|
|
- `src/runner/modes/cranelift.rs`
|
|
|
|
|
|
- `src/runner/jit_direct.rs`
|
|
|
|
|
|
- `src/tests/core13_smoke_jit*.rs` (2ファイル)
|
|
|
|
|
|
|
|
|
|
|
|
2. **BID Copilotアーカイブ**
|
|
|
|
|
|
- `src/bid-codegen-from-copilot/` → `archive/`
|
|
|
|
|
|
- `src/bid-converter-copilot/` → `archive/`
|
|
|
|
|
|
|
|
|
|
|
|
3. **明確なDead Code削除**
|
|
|
|
|
|
- `#[allow(dead_code)]`で未使用確認済み関数 (約20箇所)
|
|
|
|
|
|
|
|
|
|
|
|
**リスク**: 無し (feature削除済み、未使用コード)
|
|
|
|
|
|
|
|
|
|
|
|
### Phase B: 調査後削除 (1週間)
|
|
|
|
|
|
**推定削減**: 約1,500行
|
|
|
|
|
|
|
|
|
|
|
|
1. **JSON v1 Bridge調査**
|
|
|
|
|
|
- 使用状況確認 (grep + テスト実行)
|
|
|
|
|
|
- 未使用なら削除 or アーカイブ
|
|
|
|
|
|
|
|
|
|
|
|
2. **Legacy Test Files整理**
|
|
|
|
|
|
- `identical_exec*.rs` 系統の再評価
|
|
|
|
|
|
- cranelift依存部分の削除
|
|
|
|
|
|
|
|
|
|
|
|
3. **Parser関連Dead Code**
|
|
|
|
|
|
- 実使用確認後、未使用関数削除
|
|
|
|
|
|
|
|
|
|
|
|
**リスク**: 低 (調査後判断)
|
|
|
|
|
|
|
|
|
|
|
|
### Phase C: 段階的削除 (Phase 16以降)
|
|
|
|
|
|
**推定削減**: 約1,600行
|
|
|
|
|
|
|
|
|
|
|
|
1. **WASM Backend評価**
|
|
|
|
|
|
- 動作確認 → 動作しないならアーカイブ
|
|
|
|
|
|
|
|
|
|
|
|
2. **Builtin Box移行**
|
|
|
|
|
|
- Phase 15.5-B完了後
|
|
|
|
|
|
- プラグイン移行戦略確定後
|
|
|
|
|
|
|
|
|
|
|
|
**リスク**: 中 (Phase戦略依存)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🚨 削除時の注意点
|
|
|
|
|
|
|
|
|
|
|
|
### 1. Feature Gate確認
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 削除前に必ず確認
|
|
|
|
|
|
cargo build --release # デフォルト
|
|
|
|
|
|
cargo build --release --features llvm # LLVM
|
|
|
|
|
|
cargo test # テスト通過確認
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. Archive戦略
|
|
|
|
|
|
削除ではなく **アーカイブ** を推奨:
|
|
|
|
|
|
```
|
|
|
|
|
|
archive/
|
|
|
|
|
|
├── jit-cranelift/ (既存)
|
|
|
|
|
|
├── bid-copilot-prototype/ (新規)
|
|
|
|
|
|
├── bid-converter/ (新規)
|
|
|
|
|
|
├── json-v1-bridge/ (新規)
|
|
|
|
|
|
└── wasm-backend/ (Phase C)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. Git履歴保持
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# ファイル削除時はgit mvを使用 (履歴保持)
|
|
|
|
|
|
git mv src/runner/modes/cranelift.rs archive/jit-cranelift/runner_modes_cranelift.rs
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 4. ドキュメント更新
|
|
|
|
|
|
- CLAUDE.md
|
|
|
|
|
|
- README.md
|
|
|
|
|
|
- 削除理由を CHANGELOG.md に記録
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📋 推奨実行順序
|
|
|
|
|
|
|
|
|
|
|
|
### 今すぐ実行 (Safe削除)
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 1. Cranelift JIT削除
|
|
|
|
|
|
rm src/runner/modes/cranelift.rs
|
|
|
|
|
|
rm src/runner/jit_direct.rs
|
|
|
|
|
|
rm src/tests/core13_smoke_jit*.rs
|
|
|
|
|
|
|
|
|
|
|
|
# 2. BID Copilotアーカイブ
|
|
|
|
|
|
mkdir -p archive/bid-copilot-prototype
|
|
|
|
|
|
git mv src/bid-codegen-from-copilot archive/bid-copilot-prototype/
|
|
|
|
|
|
git mv src/bid-converter-copilot archive/bid-copilot-prototype/
|
|
|
|
|
|
|
|
|
|
|
|
# 3. ビルド確認
|
|
|
|
|
|
cargo build --release
|
|
|
|
|
|
cargo test
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 1週間以内 (調査後削除)
|
|
|
|
|
|
1. JSON v1 Bridge使用状況調査
|
|
|
|
|
|
2. Legacy Test Files整理
|
|
|
|
|
|
3. Parser Dead Code削除
|
|
|
|
|
|
|
|
|
|
|
|
### Phase 16以降 (戦略確定後)
|
|
|
|
|
|
1. WASM Backend評価・アーカイブ
|
|
|
|
|
|
2. Builtin Box→Plugin完全移行
|
|
|
|
|
|
3. 残存Legacy MIR削除
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📊 Impact Analysis
|
|
|
|
|
|
|
|
|
|
|
|
### 削除後の効果
|
|
|
|
|
|
- **コードベース削減**: 約5,600行 (約6%)
|
|
|
|
|
|
- **保守性向上**: レガシーコード除去で可読性向上
|
|
|
|
|
|
- **ビルド時間短縮**: 未使用コード削除で微減
|
|
|
|
|
|
- **Phase 15集中**: セルフホスティング開発に集中可能
|
|
|
|
|
|
|
|
|
|
|
|
### リスク評価
|
|
|
|
|
|
- **Phase A (Safe削除)**: リスク無し
|
|
|
|
|
|
- **Phase B (調査後削除)**: 低リスク
|
|
|
|
|
|
- **Phase C (Phase 16以降)**: 中リスク (戦略依存)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 🔍 補足調査項目
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 追加調査が必要な項目
|
|
|
|
|
|
- [ ] JSON v1 Bridgeの実使用確認
|
|
|
|
|
|
- [ ] WASM Backendの動作確認
|
|
|
|
|
|
- [ ] identical_exec系テストの保持必要性
|
|
|
|
|
|
- [ ] Parser関連Dead Codeの実使用状況
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 今回調査対象外
|
|
|
|
|
|
- `crates/`ディレクトリ (別途調査推奨)
|
|
|
|
|
|
- `apps/`ディレクトリ (スクリプト例・テストケース)
|
|
|
|
|
|
- `tools/`ディレクトリ (ビルドスクリプト)
|
|
|
|
|
|
- Pythonコード (`src/llvm_py/`)
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 📝 結論
|
|
|
|
|
|
|
|
|
|
|
|
### 即実行推奨
|
|
|
|
|
|
✅ **Cranelift/JIT削除** (1,500行, Safe)
|
|
|
|
|
|
✅ **BID Copilotアーカイブ** (1,900行, Safe)
|
|
|
|
|
|
✅ **明確なDead Code削除** (500行, Safe)
|
|
|
|
|
|
|
|
|
|
|
|
**合計削減見込み**: 約3,900行 (即実行可能)
|
|
|
|
|
|
|
|
|
|
|
|
### 段階的実施
|
|
|
|
|
|
🔍 **JSON v1 Bridge調査** (700行?, 1週間)
|
|
|
|
|
|
🔍 **Legacy Test Files整理** (1,000行, 1週間)
|
|
|
|
|
|
⏳ **WASM Backend評価** (3,170行, Phase C)
|
|
|
|
|
|
⏳ **Builtin Box移行** (264行, Phase 16)
|
|
|
|
|
|
|
|
|
|
|
|
**追加削減見込み**: 約1,700〜5,000行 (段階的)
|
|
|
|
|
|
|
|
|
|
|
|
### 総削減見込み
|
|
|
|
|
|
**5,600〜8,900行** (6〜9%) の削減が可能
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
**調査担当**: Claude Code
|
|
|
|
|
|
**次のアクション**: Phase A (Safe削除) の実行
|