183 lines
4.3 KiB
Markdown
183 lines
4.3 KiB
Markdown
|
|
# クイック削除ガイド - 今すぐ実行可能なレガシーコード削除
|
||
|
|
|
||
|
|
**即実行可能**: Safe削除のみ (約3,900行削減)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 実行手順 (コピペ可能)
|
||
|
|
|
||
|
|
### Step 1: Cranelift/JIT削除 (約1,500行)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd /home/tomoaki/git/hakorune-selfhost
|
||
|
|
|
||
|
|
# Cranelift JITファイル削除
|
||
|
|
rm src/runner/modes/cranelift.rs
|
||
|
|
rm src/runner/modes/aot.rs
|
||
|
|
rm src/runner/jit_direct.rs
|
||
|
|
|
||
|
|
# Cranelift JITテスト削除
|
||
|
|
rm src/tests/core13_smoke_jit.rs
|
||
|
|
rm src/tests/core13_smoke_jit_map.rs
|
||
|
|
|
||
|
|
# backend/mod.rsのcranelift参照削除 (手動編集)
|
||
|
|
echo "⚠️ src/backend/mod.rs の29-52行を手動削除してください"
|
||
|
|
|
||
|
|
# cli/args.rsのcranelift参照削除 (手動編集)
|
||
|
|
echo "⚠️ src/cli/args.rs の --backend cranelift オプションを削除してください"
|
||
|
|
|
||
|
|
# runner/dispatch.rsのcranelift分岐削除 (手動編集)
|
||
|
|
echo "⚠️ src/runner/dispatch.rs のcranelift分岐を削除してください"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 2: BID Copilotアーカイブ (約1,900行)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# アーカイブディレクトリ作成
|
||
|
|
mkdir -p archive/bid-copilot-prototype
|
||
|
|
|
||
|
|
# BID Copilotコード移動
|
||
|
|
git mv src/bid-codegen-from-copilot archive/bid-copilot-prototype/
|
||
|
|
git mv src/bid-converter-copilot archive/bid-copilot-prototype/
|
||
|
|
|
||
|
|
# 確認
|
||
|
|
ls -la archive/bid-copilot-prototype/
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 3: 明確なDead Code削除 (約500行)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Legacy MIR Expression削除
|
||
|
|
rm src/mir/builder/exprs_legacy.rs
|
||
|
|
|
||
|
|
# src/mir/builder.rsから参照削除 (手動編集)
|
||
|
|
echo "⚠️ src/mir/builder.rs の exprs_legacy モジュール宣言を削除してください"
|
||
|
|
|
||
|
|
# src/mir/builder.rs の build_expression_impl_legacy() 呼び出し削除
|
||
|
|
echo "⚠️ src/mir/builder.rs の build_expression_impl_legacy() を削除してください"
|
||
|
|
```
|
||
|
|
|
||
|
|
### Step 4: ビルド確認
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# ビルドテスト
|
||
|
|
cargo build --release
|
||
|
|
|
||
|
|
# テスト実行
|
||
|
|
cargo test
|
||
|
|
|
||
|
|
# LLVMビルドテスト
|
||
|
|
cargo build --release --features llvm
|
||
|
|
|
||
|
|
# スモークテスト
|
||
|
|
./tools/smokes/v2/run.sh --profile quick
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 手動編集が必要なファイル
|
||
|
|
|
||
|
|
### 1. `src/backend/mod.rs` (削除: 29-52行)
|
||
|
|
|
||
|
|
```rust
|
||
|
|
// 削除対象
|
||
|
|
#[cfg(feature = "cranelift-jit")]
|
||
|
|
pub mod cranelift;
|
||
|
|
#[cfg(feature = "cranelift-jit")]
|
||
|
|
pub use cranelift::{
|
||
|
|
compile_and_execute as cranelift_compile_and_execute,
|
||
|
|
compile_to_object as cranelift_compile_to_object,
|
||
|
|
};
|
||
|
|
```
|
||
|
|
|
||
|
|
### 2. `src/cli/args.rs`
|
||
|
|
|
||
|
|
```rust
|
||
|
|
// 削除対象: --backend cranelift オプション
|
||
|
|
// "cranelift" => Backend::Cranelift, の行を削除
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. `src/runner/dispatch.rs`
|
||
|
|
|
||
|
|
```rust
|
||
|
|
// 削除対象: cranelift分岐
|
||
|
|
// Backend::Cranelift => { ... } の分岐を削除
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. `src/mir/builder.rs`
|
||
|
|
|
||
|
|
```rust
|
||
|
|
// 削除対象1: モジュール宣言
|
||
|
|
// mod exprs_legacy;
|
||
|
|
|
||
|
|
// 削除対象2: build_expression_impl_legacy() 呼び出し
|
||
|
|
// self.build_expression_impl_legacy(ast) の分岐を削除
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5. `src/runner/modes/mod.rs`
|
||
|
|
|
||
|
|
```rust
|
||
|
|
// 削除対象
|
||
|
|
#[cfg(feature = "cranelift-jit")]
|
||
|
|
pub mod aot;
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ 削除確認チェックリスト
|
||
|
|
|
||
|
|
- [ ] `cargo build --release` が成功
|
||
|
|
- [ ] `cargo test` がパス
|
||
|
|
- [ ] `cargo build --release --features llvm` が成功
|
||
|
|
- [ ] `./tools/smokes/v2/run.sh --profile quick` がパス
|
||
|
|
- [ ] `git status` で削除ファイル確認
|
||
|
|
- [ ] 手動編集箇所の確認完了
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 削減結果
|
||
|
|
|
||
|
|
| カテゴリ | 削減行数 |
|
||
|
|
|---------|---------|
|
||
|
|
| Cranelift/JIT | 約1,500行 |
|
||
|
|
| BID Copilot | 約1,900行 |
|
||
|
|
| Dead Code | 約500行 |
|
||
|
|
| **合計** | **約3,900行** |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🔍 次のステップ (調査後削除)
|
||
|
|
|
||
|
|
### Phase B: 調査が必要な項目
|
||
|
|
1. **JSON v1 Bridge** (734行) - 使用状況確認
|
||
|
|
2. **Legacy Test Files** (1,000行) - identical_exec系の整理
|
||
|
|
3. **Parser Dead Code** (約500行) - 実使用確認
|
||
|
|
|
||
|
|
### Phase C: Phase 16以降
|
||
|
|
1. **WASM Backend** (3,170行) - 動作確認後アーカイブ
|
||
|
|
2. **Builtin Box移行** (264行) - プラグイン完全移行後
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚨 問題が発生した場合
|
||
|
|
|
||
|
|
### ビルドエラー
|
||
|
|
```bash
|
||
|
|
# 変更を戻す
|
||
|
|
git restore .
|
||
|
|
git clean -fd
|
||
|
|
|
||
|
|
# 詳細レポート確認
|
||
|
|
cat docs/development/cleanup/LEGACY_CODE_INVESTIGATION_REPORT.md
|
||
|
|
```
|
||
|
|
|
||
|
|
### テスト失敗
|
||
|
|
- 削除したファイルが実際に使用されている可能性
|
||
|
|
- 詳細レポートの「要確認 (Investigate)」セクションを参照
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**実行時間**: 約10分 (手動編集含む)
|
||
|
|
**リスク**: 無し (Safe削除のみ)
|
||
|
|
**削減効果**: 約3,900行 (4%)
|