Files
hakorune/docs/development/cleanup/QUICK_CLEANUP_GUIDE.md
nyash-codex 0455307418 refactor(phase-a): remove Cranelift/JIT backend legacy code (~373 lines)
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
2025-11-06 22:34:18 +09:00

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: 調査が必要な項目

  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行) - プラグイン完全移行後

🚨 問題が発生した場合

ビルドエラー

# 変更を戻す
git restore .
git clean -fd

# 詳細レポート確認
cat docs/development/cleanup/LEGACY_CODE_INVESTIGATION_REPORT.md

テスト失敗

  • 削除したファイルが実際に使用されている可能性
  • 詳細レポートの「要確認 (Investigate)」セクションを参照

実行時間: 約10分 (手動編集含む) リスク: 無し (Safe削除のみ) 削減効果: 約3,900行 (4%)