Commit Graph

56 Commits

Author SHA1 Message Date
7dbc894629 docs(joinir): Phase 86 到達点 - Carrier init builder + Error tags SSOT
Phase 74-86 成果を SSOT docs に反映:
- 10-Now.md: Phase 86 achievements summary
- INDEX: carrier_init_builder, error_tags modules documented
- architecture-overview: SSOT module references added

Impact: 987/987 tests, +13 unit tests, 2 new SSOT modules
Modules: carrier_init_builder.rs, error_tags.rs

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-13 22:37:56 +09:00
624245b63c docs(joinir): Phase 78-85 Boxification Feedback Report
Comprehensive analysis of boxification patterns effectiveness.

Key Findings:
- Overall: Exceptional success  (24/25 avg rating)
- Net code reduction: -1,388 lines (Phase 78-79: -530L, Phase 85: -858L)
- 4 new Boxes: PromotedBindingRecorder, Detector/Recorder, BindingMapProvider, DebugOutputBox
- 28 new unit tests, 974/974 PASS maintained

Box Ratings (out of 25):
- PromotedBindingRecorder: 24/25 (67% wiring reduction)
- Detector/Recorder: 24/25 (60% code reduction, SRP)
- BindingMapProvider: 23/25 (80% cfg reduction)
- DebugOutputBox: 21/25 (centralized debug output)

Phase 86 Recommendations:
- GO: Carrier Initialization Builder (HIGH, 2-3h, -100L)
- GO: Remaining DebugOutputBox Migration (QUICK, 30m)
- GO: Error Message Centralization (LOW, 1-2h)
- NO-GO: Detector/Promoter Pipeline (over-abstraction risk)
- NO-GO: ScopeManager Lookup Variants (premature)

Lessons Learned:
- Single Responsibility principle validated
- Testability-first approach successful
- Low migration cost (1-2h per phase)
- Zero production risk (all dev-only/backward-compatible)

Report: phase78-85-boxification-feedback.md (~1,200 lines)
Updated: INDEX, Now, architecture-overview (Phase 85 links)
2025-12-13 21:32:35 +09:00
3ff032ead5 docs(joinir): link Phase 81 ExitLine contract SSOT
Phase 81 完了を受けて docs リンク追加:
- 01-JoinIR-Selfhost-INDEX.md: Phase 81 entry
- 10-Now.md: Phase 81 status update
- joinir-architecture-overview.md: Phase 81 ExitLine contract verification section

Phase 74-81 complete: BindingId migration + ExitLine contract verified
2025-12-13 18:46:07 +09:00
889492b617 docs(joinir): Phase 80 Tasks 80-0/80-A - Status verification + design doc
Task 80-0: Current status verification
-  970/970 lib tests PASS (production stable)
-  Core VM smoke tests PASS (json_pp_vm)
-  Phase 79 E2E tests broken (AST API mismatch, out-of-scope)
-  Pre-existing json_lint_vm failure (Pattern2 verifier, out-of-scope)
- **Conclusion**: Phase 80 has ZERO blockers

Task 80-A: SSOT design doc created
- New: docs/development/current/main/phase80-bindingid-p3p4-plan.md (336 lines)
- Pattern3/4 BindingId wiring strategy
- Implementation order: 80-B (P3) → 80-C (P4) → 80-D (E2E)
- Code examples and success metrics
- Fallback detection mechanism (existing log tags)

Design principles (consistent with Phase 74-79):
- Dev-only code (feature-gated)
- Dual-path maintained (BindingId priority + name fallback)
- Structural detection only (NO by-name branching)
- Fail-Fast error handling
- Zero production impact

Updated docs:
- 01-JoinIR-Selfhost-INDEX.md: Phase 79 Activation status
- 10-Now.md: Phase 80 tasks 80-0/80-A complete
- 20-Decisions.md: BindingId migration complete status
- joinir-architecture-overview.md: Phase 79/80 sections

Next: Task 80-B (Pattern3 BindingId registration)
2025-12-13 17:26:15 +09:00
e30116f53d feat(joinir): Phase 171-fix ConditionEnv/ConditionBinding architecture
Proper HOST↔JoinIR ValueId separation for condition variables:

- Add ConditionEnv struct (name → JoinIR-local ValueId mapping)
- Add ConditionBinding struct (HOST/JoinIR ValueId pairs)
- Modify condition_to_joinir to use ConditionEnv instead of builder.variable_map
- Update Pattern2 lowerer to build ConditionEnv and ConditionBindings
- Extend JoinInlineBoundary with condition_bindings field
- Update BoundaryInjector to inject Copy instructions for condition variables

This fixes the undefined ValueId errors where HOST ValueIds were being
used directly in JoinIR instructions. Programs now execute (RC: 0),
though loop variable exit values still need Phase 172 work.

Key invariants established:
1. JoinIR uses ONLY JoinIR-local ValueIds
2. HOST↔JoinIR bridging is ONLY through JoinInlineBoundary
3. condition_to_joinir NEVER accesses builder.variable_map

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-07 01:45:03 +09:00
d99b941218 docs: add MIR13 mode doc and set PHI-off as default; bridge lowering split (if/loop/try); llvmlite resolver stabilization; curated runner default PHI-off; refresh CURRENT_TASK.md 2025-09-17 10:58:12 +09:00