nyash-codex
d303d24b43
feat(joinir): Phase 188 JoinInlineBoundary + Pattern 1 working! 🎉
Major milestone: loop_min_while.hako outputs "0 1 2" correctly!
## JoinInlineBoundary (Option D from ChatGPT Pro design review)
- New struct for clean SSA boundary between JoinIR and host function
- JoinIR uses local ValueIds (0,1,2...) - no host ValueId dependency
- Copy injection at entry block connects host → JoinIR values
## Pattern 1 Simple While Loop
- Refactored to use pure local ValueIds
- Removed Pattern1Context dependency on host ValueIds
- Clean separation: lowerer generates, merger connects
## Key Design Principles (Box Theory)
- Box A: JoinIR Frontend (host-agnostic)
- Box B: Join→MIR Bridge (independent functions)
- Box C: JoinInlineBoundary (boundary info only)
- Box D: JoinMirInlineMerger (Copy injection)
## Files Changed
- NEW: inline_boundary.rs - JoinInlineBoundary struct
- control_flow.rs - merge with boundary, void return fix
- simple_while_minimal.rs - pure local ValueIds
- mod.rs - module export
Test: NYASH_DISABLE_PLUGINS=1 ./target/release/hakorune apps/tests/loop_min_while.hako
Output: 0\n1\n2 ✅
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 13:46:44 +09:00
..
2025-11-24 14:17:02 +09:00
2025-12-01 11:10:46 +09:00
2025-12-04 22:33:56 +09:00
2025-11-24 14:17:02 +09:00
2025-11-26 10:28:03 +09:00
2025-11-28 17:42:19 +09:00
2025-11-30 11:46:14 +09:00
2025-12-01 11:10:46 +09:00
2025-11-29 11:53:57 +09:00
2025-12-04 22:33:56 +09:00
2025-11-29 15:08:23 +09:00
2025-11-29 16:11:39 +09:00
2025-12-04 22:33:56 +09:00
2025-12-05 13:46:44 +09:00
2025-12-01 11:10:46 +09:00
2025-12-05 07:47:22 +09:00
2025-12-05 13:03:48 +09:00
2025-12-02 18:16:21 +09:00
2025-11-24 15:02:51 +09:00
2025-12-05 13:46:44 +09:00
2025-12-05 13:46:44 +09:00
2025-12-05 07:47:22 +09:00
2025-11-26 10:28:03 +09:00
2025-11-28 17:42:19 +09:00
2025-11-26 10:47:35 +09:00
2025-11-28 17:42:19 +09:00
2025-11-30 08:54:18 +09:00
2025-11-30 06:10:58 +09:00
2025-11-24 14:17:02 +09:00