Files
hakorune/docs/development/current/main/phases
nyash-codex 905a2b97fe refactor(mir): Extract CompilationContext from MirBuilder (Phase 136 follow-up 7/7)
## Summary
Extracted compilation-related fields into dedicated CompilationContext struct,
completing all 7 steps of the Context Box refactoring plan. This is the final
major context extraction, consolidating 15 compilation-specific fields.

## Changes
- NEW: src/mir/builder/compilation_context.rs (435 lines, 15 fields)
- Modified: src/mir/builder.rs (added compilation_ctx field + sync helpers)
- Updated: phase-136-context-box-progress.md (7/7 complete)
- Created: step-7-compilation-context-summary.md (detailed documentation)

## Extracted Fields (15 total)
- compilation_context - Box compilation context
- current_static_box - Currently compiling static box name
- user_defined_boxes - User-defined box registry
- reserved_value_ids - Reserved ValueIds (for PHI nodes)
- fn_body_ast - Function body AST (for capture analysis)
- weak_fields_by_box - Weak field registry
- property_getters_by_box - Property getter registry
- field_origin_class - Field origin tracking
- field_origin_by_box - Class-level origin
- static_method_index - Static method index
- method_tail_index - Method tail fast lookup
- method_tail_index_source_len - Source size snapshot
- type_registry - Unified type information
- current_slot_registry - Function-scope SlotRegistry
- plugin_method_sigs - Plugin method signatures

## Tests
- cargo test --release --lib: 1029/1033 passed (4 pre-existing failures)
- phase135_trim_mir_verify.sh: PASS
- Backward compatibility: 100% maintained (deprecated fields synced)

## Phase 136 Context Extraction: Complete! 

Total: 7 contexts, 36 fields extracted, 1086 lines of new modules
-  Step 1: TypeContext (3 fields, 130 lines)
-  Step 2: CoreContext (5 fields, 112 lines)
-  Step 3: ScopeContext (7 fields, 141 lines)
-  Step 4: BindingContext (1 field, 63 lines)
-  Step 5: VariableContext (1 field, 85 lines)
-  Step 6: MetadataContext (4 fields, 120 lines)
-  Step 7: CompilationContext (15 fields, 435 lines)

## Next Phase: Legacy Field Removal
Phase 2 will remove all 36 deprecated fields from MirBuilder,
eliminating 469 deprecation warnings and reducing builder.rs from
1472 → ~800-900 lines (500-600 line reduction).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-15 22:17:38 +09:00
..

Phase ドキュメント

このフォルダは、実装フェーズPhase 131, Phase 33 等)ごとの詳細記録を保管します。

現在の Phase

  • Phase 132: Exit Values Parity (VM == LLVM)
  • Phase 133: Promoted carrier join_idTrim修正
  • Phase 134: Plugin loader best-effort loading
  • Phase 135: ConditionLoweringBox allocator SSOTValueId 衝突の根治)
  • Phase 136: ValueId allocator SSOT 徹底(残存 value_gen.next() 掃討)

Phase フォルダ構成(推奨)

phases/phase-131/
├── README.md                          (Phase 全体概要)
├── 131-03-llvm-lowering-inventory.md (LLVM 部分のテスト・検証)
├── 131-11-case-c-summary.md          (Case C 実装サマリー)
└── phase131-11-case-c-root-cause-analysis.md (根本原因分析)

参照方法

  1. 現在の Phase を知りたい../10-Now.md
  2. 該当 Phase を詳しく知りたい → フォルダを開く
  3. 設計背景を知りたい../design/
  4. 調査ログを見たい../investigations/

Phase 命名規則

  • ファイル名: phase-<N>-<title>/ (例: phase-131/)
  • 文書名: <N>-<NN>-<topic>.md (例: 131-11-case-c-summary.md)
    • Phase 番号で自然にソート可能
    • 同一 Phase 内で段階的に追跡可能

作成ルールSSOT

詳しくは ../DOCS_LAYOUT.md を参照。

  • 置き場所: phases/phase-<N>/ 配下のみ
  • 内容: Phase の実装記録・進捗・チェックリスト・検証結果
  • 避けるべき: 複数 Phase で参照される設計・アーキテクチャ(→ design/ へ)

最終更新: 2025-12-15