docs: update references after module splits

This commit is contained in:
2025-12-27 21:43:47 +09:00
parent 7ab042ca91
commit ed68e48ed1
23 changed files with 41 additions and 45 deletions

View File

@ -24,7 +24,7 @@ Related:
- 入口: `docs/development/current/main/phases/phase-284/README.md`
- P0docs-only: `docs/development/current/main/phases/phase-284/P0-INSTRUCTIONS.md`
- SSOT:
- Composition: `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- Composition: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- Terminator emission: `emit_frag()``src/mir/builder/control_flow/edgecfg/api/emit.rs`
- Frag docs: `docs/development/current/main/design/edgecfg-fragments.md`
- 進め方:

View File

@ -48,7 +48,7 @@ VM interpreter implements print/error/panic/exit dispatch in TWO locations:
**Key Files**:
- `src/mir/join_ir/lowering/normalized.rs` (1,269 lines)
- `src/mir/join_ir/lowering/merge/mod.rs` (1,072 lines)
- `src/runner/modes/common_util/resolve/strip.rs` (1,081 lines)
- `src/runner/modes/common_util/resolve/strip/mod.rs` (1,081 lines)
- `src/backend/boxes/file/handle_box.rs` (1,072 lines)
**Problem**:

View File

@ -29,7 +29,7 @@ Related:
## Root Cause Analysis
`src/runner/mir_json_emit.rs` が "use-before-def copy 回避" を目的に **copy の遅延/再配置**を行っており、
`src/runner/mir_json_emit/mod.rs` が "use-before-def copy 回避" を目的に **copy の遅延/再配置**を行っており、
依存copy dst を参照する binop 等)まで含めた正しいスケジューリングになっていなかった。
この層JSON emitterは optimizer/scheduler ではないため、順序修正を試みるより **Fail-Fast で upstream を炙り出す**のが筋。
@ -174,7 +174,7 @@ fn check_use_before_def(block: &BasicBlock) -> Result<(), String> {
## Files Modified
- `src/runner/mir_json_emit.rs`: Core fix (removed ~80 lines of reordering logic)
- `src/runner/mir_json_emit/mod.rs`: Core fix (removed ~80 lines of reordering logic)
## Box Theory Insights
@ -186,4 +186,3 @@ fn check_use_before_def(block: &BasicBlock) -> Result<(), String> {
- **Upstream** (builder.rs): Responsible for def-use order
- **Emitter** (mir_json_emit.rs): Responsible for faithful output
- **Downstream** (LLVM harness): Expects correct order from JSON

View File

@ -825,7 +825,7 @@ Pattern6/7 は **Plan lineExtractor → Normalizer → Verifier → Lowerer
- ファイル:
- `src/mir/join_ir/lowering/loop_body_local_env.rs`
- `src/mir/join_ir/lowering/update_env.rs`
- `src/mir/join_ir/lowering/carrier_update_emitter.rs`
- `src/mir/join_ir/lowering/carrier_update_emitter/mod.rs`
- `src/mir/join_ir/lowering/loop_with_break_minimal.rs`Phase 191統合
- 責務:
- **LoopBodyLocalEnv**: ループ本体で宣言された body-local 変数の名前→ValueId マッピングを管理(箱化設計)。
@ -892,14 +892,14 @@ Pattern6/7 は **Plan lineExtractor → Normalizer → Verifier → Lowerer
- ファイル:
- `src/mir/join_ir/lowering/carrier_info.rs`
- `src/mir/join_ir/lowering/loop_update_analyzer.rs`
- `src/mir/join_ir/lowering/carrier_update_emitter.rs`
- `src/mir/join_ir/lowering/carrier_update_emitter/mod.rs`
- 責務:
- ループで更新される変数carrierを検出し、UpdateExpr を保持。
- Pattern 4 では実際に更新されるキャリアだけを残す。
- **Phase 188 完了** ✅: String 更新StringAppendChar/StringAppendLiteralを UpdateRhs ベースのホワイトリストで受理し、JoinIR BinOp を emit。
- 許可: `UpdateRhs::Const`, `UpdateRhs::Variable`, `UpdateRhs::StringLiteral`
- 拒否: `UpdateRhs::Other`method call / nested BinOp 等の複雑パターンのみ)
- Pattern2/4 の can_lower() で選別、carrier_update_emitter.rs で JoinIR 生成
- Pattern2/4 の can_lower() で選別、carrier_update_emitter で JoinIR 生成
- 現状制約(重要 / PoC の前提):
- Pattern2 の「出口で値が持ち帰られる変数」は、基本的に **carrier として認識されたもの**のみが `exit_bindings` 経由で再接続される。
- 現状の carrier 認識は “mutable-acc” 形(例: `result = result + rhs`)を中心に成立しており、`result = 42` のような **direct assignment** は carrier として扱われないケースがある。

View File

@ -81,7 +81,7 @@ Phase 230 では「コードをいじらずに把握だけする」のが目的
---
## 5. carrier_update_emitter.rsCarrierUpdateEmitter
## 5. carrier_update_emitterCarrierUpdateEmitter
- 役割:
- LoopUpdateAnalyzer で分類された UpdateExpr`sum = sum + digit` など)を JoinIR 命令列に変換する。

View File

@ -96,7 +96,7 @@ Used by (10 files):
│ (827 lines) │ │ Emitter │ │ Builder │
│ │ │ (956 lines) │ │ (493 lines) │
└───────────────┘ └──────────────┘ └──────────────────┘
carrier_info.rs carrier_update_emitter.rs inline_boundary_builder.rs
carrier_info.rs carrier_update_emitter inline_boundary_builder.rs
│ │ │
│ │ │
│ ▼ │
@ -123,7 +123,7 @@ Phase 227-228 Infrastructure:
Used by (7 files):
- inline_boundary.rs
- inline_boundary_builder.rs
- carrier_update_emitter.rs
- carrier_update_emitter
- loop_update_analyzer.rs
- loop_with_break_minimal.rs
- loop_with_continue_minimal.rs
@ -204,7 +204,7 @@ loop_with_break_minimal.rs (868 lines)
├─▶ condition_lowerer.rs (condition lowering)
├─▶ carrier_info.rs (carrier management)
├─▶ carrier_update_emitter.rs (update emission)
├─▶ carrier_update_emitter (update emission)
├─▶ inline_boundary.rs (exit bindings)
├─▶ inline_boundary_builder.rs (boundary construction)
├─▶ join_value_space.rs (ValueId allocation)
@ -286,7 +286,7 @@ join_value_space.rs (431 lines)
├─▶ Pattern 4 (loop_with_continue_minimal.rs)
├─▶ condition_lowerer.rs
├─▶ expr_lowerer.rs
└─▶ carrier_update_emitter.rs
└─▶ carrier_update_emitter
API:
- alloc_local() -> ValueId
@ -487,7 +487,7 @@ Replaces 5 modules with unified API:
CarrierManagerBox (NEW)
├─▶ carrier_info.rs (existing)
├─▶ carrier_update_emitter.rs (existing)
├─▶ carrier_update_emitter (existing)
├─▶ inline_boundary.rs (existing)
└─▶ scope_manager.rs (existing, Phase 231)

View File

@ -48,7 +48,7 @@ src/mir/join_ir/lowering/
### Large Files (>500 lines)
| File | Lines | Purpose |
|------|-------|---------|
| `carrier_update_emitter.rs` | 956 | Carrier update instruction emission |
| `carrier_update_emitter` | 956 | Carrier update instruction emission |
| `loop_with_break_minimal.rs` | 868 | Pattern 2 implementation |
| `carrier_info.rs` | 827 | Carrier metadata structures |
| `expr_lowerer.rs` | 796 | Expression lowering (Phase 231) |
@ -90,7 +90,7 @@ Files matching `lower.*condition|extract.*condition`:
### 2.2 Variable/Carrier Processing (13 files)
Files matching `variable_map|carrier_info`:
- `carrier_info.rs` (827 lines) - Metadata structures
- `carrier_update_emitter.rs` (956 lines) - Update emission
- `carrier_update_emitter` (956 lines) - Update emission
- `inline_boundary.rs` (576 lines) - Boundary management
- `inline_boundary_builder.rs` (493 lines) - Builder pattern
- `scope_manager.rs` (354 lines) - Unified lookup (Phase 231)
@ -402,7 +402,7 @@ src/mir/join_ir/lowering/
2. **carrier_info.rs** (used by 7 files)
- `inline_boundary.rs`
- `inline_boundary_builder.rs`
- `carrier_update_emitter.rs`
- `carrier_update_emitter`
- `loop_update_analyzer.rs`
- All pattern implementations
@ -530,7 +530,7 @@ impl ComplexConditionLowerer {
**Files to Extend**:
- `carrier_info.rs` (827 lines) - Already has CarrierRole/CarrierInit
- `carrier_update_emitter.rs` (956 lines) - Update emission logic
- `carrier_update_emitter` (956 lines) - Update emission logic
- `inline_boundary.rs` (576 lines) - Exit binding generation
**Implementation Sketch**:

View File

@ -42,7 +42,7 @@
- **Impact**: 7 files affected
- **Effort**: Low (extends Phase 228)
- **Value**: Medium (consolidates lifecycle)
- **Files**: carrier_info.rs, carrier_update_emitter.rs, inline_boundary.rs
- **Files**: carrier_info.rs, carrier_update_emitter, inline_boundary.rs
- **Next**: Phase 245
### 3. Module Reorganization (⭐⭐)

View File

@ -138,9 +138,9 @@ if matches!(operator, BinaryOperator::Add | BinaryOperator::Subtract) {
**Exactly matches our pattern: `result = result * 10 + digit_pos`**
### 3.3 Emission Logic (carrier_update_emitter.rs)
### 3.3 Emission Logic (carrier_update_emitter)
**Location**: `/home/tomoaki/git/hakorune-selfhost/src/mir/join_ir/lowering/carrier_update_emitter.rs` (lines 139-170)
**Location**: `/home/tomoaki/git/hakorune-selfhost/src/mir/join_ir/lowering/carrier_update_emitter/mod.rs` (lines 139-170)
```rust
UpdateRhs::NumberAccumulation { base, digit_var } => {
@ -183,7 +183,7 @@ UpdateRhs::NumberAccumulation { base, digit_var } => {
-`test_analyze_number_accumulation_base2()` - binary pattern
-`test_analyze_number_accumulation_wrong_lhs()` - validation
**Existing tests** (carrier_update_emitter.rs):
**Existing tests** (carrier_update_emitter):
-`test_emit_number_accumulation_base10()` - JoinIR emission
-`test_emit_number_accumulation_digit_not_found()` - error handling
@ -375,7 +375,7 @@ jq '.functions[] | select(.name == "_atoi") | .blocks' mir.json
### Phase 190: NumberAccumulation Infrastructure
- Detection: `/src/mir/join_ir/lowering/loop_update_analyzer.rs` (lines 157-192)
- Emission: `/src/mir/join_ir/lowering/carrier_update_emitter.rs` (lines 139-170)
- Emission: `/src/mir/join_ir/lowering/carrier_update_emitter/mod.rs` (lines 139-170)
- Tests: Both files contain comprehensive unit tests
### Phase 184: UpdateEnv and LoopBodyLocal

View File

@ -535,7 +535,7 @@ Usage: ConditionEnv → is_digit_pos
- **CarrierInfo**: `src/mir/join_ir/lowering/carrier_info.rs`
- **ConditionEnv**: `src/mir/join_ir/lowering/condition_env.rs`
- **UpdateEnv**: `src/mir/join_ir/lowering/update_env.rs`
- **CarrierUpdateEmitter**: `src/mir/join_ir/lowering/carrier_update_emitter.rs`
- **CarrierUpdateEmitter**: `src/mir/join_ir/lowering/carrier_update_emitter/mod.rs`
- **LoopUpdateAnalyzer**: `src/mir/join_ir/lowering/loop_update_analyzer.rs`
### 10.3 テストファイル

View File

@ -190,7 +190,7 @@ pub struct LoopShape {
**Nesting information exists ONLY in StepTree** (AST level):
```rust
// src/mir/control_tree/step_tree.rs (line 17-25)
// src/mir/control_tree/step_tree/mod.rs (line 17-25)
pub struct StepTreeFeatures {
pub max_loop_depth: u32, // ← Detected during AST → StepTree conversion
// ...

View File

@ -122,7 +122,7 @@ Still deferred to Phase 188.3+:
- **Phase 188.1 Reality**: `docs/development/current/main/phases/phase-188.1/README.md` § Implementation Reality
- **LoopRegion Definition**: `src/mir/control_form.rs` (lines 40-62)
- **StepTreeFeatures Definition**: `src/mir/control_tree/step_tree.rs` (lines 17-25)
- **StepTreeFeatures Definition**: `src/mir/control_tree/step_tree/mod.rs` (lines 17-25)
- **LoopForm/LoopShape Definition**: `src/mir/loop_form.rs`, `src/mir/control_form.rs`
---

View File

@ -16,7 +16,7 @@ SSOT (design): `docs/development/current/main/design/edgecfg-fragments.md`
- `if_``join_frag: Frag` を受け取り、Normal が「join 以降」を表すようにする
## 主要ファイル
- `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- `src/mir/builder/control_flow/edgecfg/api/frag.rs`
- `src/mir/builder/control_flow/edgecfg/api/edge_stub.rs`
- `src/mir/builder/control_flow/edgecfg/api/verify.rs`

View File

@ -15,7 +15,7 @@ SSOT (design): `docs/development/current/main/design/edgecfg-fragments.md`
- `wires` は Jump/Return 専用のまま維持
- `src/mir/builder/control_flow/edgecfg/api/frag.rs`
- `compose::if_` が header→then/else の `BranchStub` を生成するように更新
- `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- `emit_frag(function, frag)` を追加SSOT
- `verify_frag_invariants_strict()` を最初に実行
- `wires``emit_wires()` を内部利用

View File

@ -110,7 +110,7 @@ The LLVM harness consumes MIR JSON emitted by the Rust runner.
If `TypeOp` is missing in that JSON, the harness will never see it (and the JSON can become invalid due to missing defs).
Checklist:
- `src/runner/mir_json_emit.rs` must emit `{"op":"typeop", ...}` in **both** emitters:
- `src/runner/mir_json_emit/mod.rs` must emit `{"op":"typeop", ...}` in **both** emitters:
- `emit_mir_json_for_harness` (nyash_rust::mir) ✅ already supports TypeOp
- `emit_mir_json_for_harness_bin` (crate::mir) ⚠️ ensure TypeOp is included

View File

@ -94,7 +94,7 @@ Status: ✅ done (2025-12-22)
Artifacts:
- Kernel type check helper: `crates/nyash_kernel/src/lib.rs` (`nyash.any.is_type_h`)
- LLVM TypeOp lowering: `src/llvm_py/instructions/typeop.py`
- MIR JSON emission fix (bin): `src/runner/mir_json_emit.rs` (emit `op:"typeop"`)
- MIR JSON emission fix (bin): `src/runner/mir_json_emit/mod.rs` (emit `op:"typeop"`)
- Fixture (LLVM-safe): `apps/tests/phase274_p2_typeop_primitives_only.hako`
- Smoke (LLVM): `tools/smokes/v2/profiles/integration/apps/phase274_p2_typeop_is_as_llvm.sh`

View File

@ -123,7 +123,7 @@
#### B1: Document compose.rs Entry Points
**File**: `src/mir/builder/control_flow/edgecfg/api/compose.rs`
**File**: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
**Changes Required**:
1. Add module-level documentation explaining:
@ -143,7 +143,7 @@
#### B2: Verify Composition API Implements Contract
**File**: `src/mir/builder/control_flow/edgecfg/api/compose.rs`
**File**: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
**Action**: Documentation-only verification (checklist)
@ -173,7 +173,7 @@
#### B3: Add Tests for Composition Invariants
**File**: `src/mir/builder/control_flow/edgecfg/api/compose.rs` (test module)
**File**: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs` (test module)
**Action**: Gap analysis + add tests if needed
@ -391,7 +391,7 @@ tools/smokes/v2/run.sh --profile quick
### Phase B (Code: API)
4. `src/mir/builder/control_flow/edgecfg/api/compose.rs`
4. `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
### Phase C (Code: Pattern Prep - Documentation-only)

View File

@ -9,7 +9,7 @@ Goal:
## SSOT References
- Frag/emit SSOT: `docs/development/current/main/design/edgecfg-fragments.md`
- Composition SSOT: `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- Composition SSOT: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- Plan line SSOTPattern6/7: `docs/development/current/main/phases/phase-273/README.md`
- Phase 280positioning: `docs/development/current/main/phases/phase-280/README.md`
@ -170,4 +170,3 @@ cleanup(Normal) を追加し、normalize_scan_with_init() の step back-edge を
- 新しい env var の追加はしない
- by-name hardcode での一時しのぎはしない
- `emit_frag()` 以外で terminator を生成しない

View File

@ -9,7 +9,7 @@ Goal:
## SSOT References
- Frag/emit SSOT: `docs/development/current/main/design/edgecfg-fragments.md`
- Composition SSOT: `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- Composition SSOT: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- JoinIR overview: `docs/development/current/main/joinir-architecture-overview.md`
- Plan linePattern6/7: `docs/development/current/main/phases/phase-273/README.md`
- Composition adoptionPattern6/7: `docs/development/current/main/phases/phase-281/README.md`
@ -95,7 +95,7 @@ CFG構築は以下に収束させる
- lower() は必ず re-extract して SSOT 強制(二重検証)
**SSOT 参照**:
- Frag composition: `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- Frag composition: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- Plan line: `src/mir/builder/control_flow/plan/normalizer.rs`
- Terminator 生成: `emit_frag()` (Phase 267)

View File

@ -23,7 +23,6 @@
- `docs/development/current/main/phases/phase-284/README.md`
- `docs/development/current/main/design/edgecfg-fragments.md`
- `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- `src/mir/builder/control_flow/edgecfg/api/emit.rs`
- `docs/development/current/main/phases/phase-282/README.md`

View File

@ -10,7 +10,7 @@ Status: P1 Complete (2025-12-23)
## SSOT References
- Frag/ExitKind 設計: `docs/development/current/main/design/edgecfg-fragments.md`
- Composition API: `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- Composition API: `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- Terminator emission: `src/mir/builder/control_flow/edgecfg/api/emit.rs``emit_frag()`
- Router SSOTSSOT=extract / safety valve: `docs/development/current/main/phases/phase-282/README.md`
@ -53,7 +53,7 @@ Phase 284 の完了条件は「`return` を含むケースが close-but-unsuppor
- 入口: `src/mir/builder/control_flow/joinir/patterns/router.rs`route=plan
- SSOT:
- `src/mir/builder/control_flow/plan/normalizer.rs`Frag 構築: branches/wires/exits
- `src/mir/builder/control_flow/edgecfg/api/compose.rs`(合成 SSOT
- `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`(合成 SSOT
- `src/mir/builder/control_flow/edgecfg/api/emit.rs``emit_frag()` terminator SSOT
- ここでは `return` を **Return edgeExitKind::Return**として組み立てるのが自然。

View File

@ -31,7 +31,7 @@ Phase 286 では JoinIR line を “第2の lowerer” として放置せず、*
- `src/mir/builder/control_flow/joinir/merge/mod.rs`
- Plan/Frag SSOT収束先:
- `src/mir/builder/control_flow/plan/*`
- `src/mir/builder/control_flow/edgecfg/api/compose.rs`
- `src/mir/builder/control_flow/edgecfg/api/compose/mod.rs`
- `src/mir/builder/control_flow/edgecfg/api/emit.rs`
## Scope提案

View File

@ -471,7 +471,7 @@ rg 'impl.*LogApi' --type rust
### Phase 90: Ring0 API Migration (12 locations)
**Phase 90-A: fs API (7 locations)**:
- `src/runner/modes/common_util/resolve/strip.rs`: 4 locations
- `src/runner/modes/common_util/resolve/strip/mod.rs`: 4 locations
- `src/runner/dispatch.rs`: 1 location
- `src/runner/mod.rs`: 3 locations
- Migration: `std::fs::read_to_string``ring0.fs.read_to_string`
@ -649,4 +649,3 @@ Phase 11x 以降で検討する予定だよ。Phase 112 で factory pattern に
- docs/development/current/main/phase114_fileio_trait_extension.md (新規)
- docs/development/current/main/core_boxes_design.md (Phase 114 セクション追加)
- docs/development/current/main/ring0-inventory.md (this file)