Phase A cleanup - Safe deletions with zero risk: ## Deleted Files (6 files, 373 lines total) 1. Cranelift/JIT Backend (321 lines): - src/runner/modes/cranelift.rs (45 lines) - src/runner/modes/aot.rs (55 lines) - src/runner/jit_direct.rs (152 lines) - src/tests/core13_smoke_jit.rs (42 lines) - src/tests/core13_smoke_jit_map.rs (27 lines) 2. Legacy MIR Builder (52 lines): - src/mir/builder/exprs_legacy.rs - Functionality inlined into exprs.rs (control flow constructs) ## Module Reference Cleanup - src/backend/mod.rs: Removed cranelift feature gate exports - src/runner/mod.rs: Removed jit_direct module reference - src/runner/modes/mod.rs: Removed aot module reference - src/mir/builder.rs: Removed exprs_legacy module ## Impact Analysis - Build: Success (cargo build --release) - Tests: All passing - Risk Level: None (feature already archived, code unused) - Related: Phase 15 JIT archival (archive/jit-cranelift/) ## BID Copilot Status - Already removed in previous cleanup - Not part of this commit Total Reduction: 373 lines (~0.4% of codebase) Next: Phase B - Dead code investigation Related: #phase-21.0-cleanup Part of: Legacy Code Cleanup Initiative
4.3 KiB
4.3 KiB
クイック削除ガイド - 今すぐ実行可能なレガシーコード削除
即実行可能: Safe削除のみ (約3,900行削減)
🚀 実行手順 (コピペ可能)
Step 1: Cranelift/JIT削除 (約1,500行)
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行)
# アーカイブディレクトリ作成
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行)
# 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: ビルド確認
# ビルドテスト
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行)
// 削除対象
#[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
// 削除対象: --backend cranelift オプション
// "cranelift" => Backend::Cranelift, の行を削除
3. src/runner/dispatch.rs
// 削除対象: cranelift分岐
// Backend::Cranelift => { ... } の分岐を削除
4. src/mir/builder.rs
// 削除対象1: モジュール宣言
// mod exprs_legacy;
// 削除対象2: build_expression_impl_legacy() 呼び出し
// self.build_expression_impl_legacy(ast) の分岐を削除
5. src/runner/modes/mod.rs
// 削除対象
#[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: 調査が必要な項目
- JSON v1 Bridge (734行) - 使用状況確認
- Legacy Test Files (1,000行) - identical_exec系の整理
- Parser Dead Code (約500行) - 実使用確認
Phase C: Phase 16以降
- WASM Backend (3,170行) - 動作確認後アーカイブ
- Builtin Box移行 (264行) - プラグイン完全移行後
🚨 問題が発生した場合
ビルドエラー
# 変更を戻す
git restore .
git clean -fd
# 詳細レポート確認
cat docs/development/cleanup/LEGACY_CODE_INVESTIGATION_REPORT.md
テスト失敗
- 削除したファイルが実際に使用されている可能性
- 詳細レポートの「要確認 (Investigate)」セクションを参照
実行時間: 約10分 (手動編集含む) リスク: 無し (Safe削除のみ) 削減効果: 約3,900行 (4%)