nyash-codex
f42fcd33b4
refactor(joinir,smokes): Task 2,3,4 - instruction_rewriter boxification + OutputContract unification
Task 2: instruction_rewriter 分箱化
- Extract k_exit special case logic into TailCallLoweringPolicyBox
- Separate detect/collect/transform concerns into dedicated policy box
- Rewriter becomes pure transformation engine
- Added 5 unit tests for exit edge normalization
- New file: src/mir/builder/control_flow/joinir/merge/tail_call_lowering_policy.rs (212 lines)
Changes:
- instruction_rewriter.rs: Delegate k_exit detection to policy box (-50 lines)
- merge_result.rs: Add MirMergeResult struct for intermediate results
- Single responsibility principle: each box handles one concern
Task 3 & 4: smokes runner 改善
- Unify exit_code and numeric output verification into check_output_contract()
- Add require_joinir_dev() helper for dev-only fixture setup
- Reduce boilerplate in phase131_loop_true_break_once_*.sh scripts
- Consistent error message format across verification types
Changes:
- tools/smokes/v2/lib/llvm_exe_runner.sh: Add OutputContract interface (+90 lines)
- tools/smokes/v2/lib/test_runner.sh: Add require_joinir_dev() helper
- Phase 131 smoke scripts: Use new helpers (cleaner, less repetition)
- Build script: Improve TMPDIR configuration for EXDEV mitigation
Benefits:
- Single responsibility: policy box handles one concern
- Code reuse: OutputContract eliminates duplication
- Clarity: Smoke scripts are more concise and readable
- Maintainability: Easier to add new verification types
Test Results:
- Policy box unit tests: 5 PASS
- Smoke tests: 2/2 PASS
- No regression in existing functionality
Related: Phase 131 refactoring for improved code organization
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-18 18:28:50 +09:00
..
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-11-06 15:41:52 +09:00
2025-12-13 22:51:13 +09:00
2025-12-16 21:37:07 +09:00
2025-12-17 00:59:33 +09:00
2025-12-17 01:01:07 +09:00
2025-12-17 04:25:57 +09:00
2025-12-17 21:24:59 +09:00
2025-12-17 21:24:59 +09:00
2025-12-17 21:24:59 +09:00
2025-12-17 04:26:05 +09:00
2025-12-17 21:24:59 +09:00
2025-12-17 06:10:59 +09:00
2025-12-17 05:43:44 +09:00
2025-12-17 21:24:59 +09:00
2025-12-17 16:33:26 +09:00
2025-12-17 21:24:59 +09:00
2025-12-17 16:57:11 +09:00
2025-12-17 21:24:59 +09:00
2025-12-18 02:32:32 +09:00
2025-12-17 21:24:59 +09:00
2025-12-18 02:32:32 +09:00
2025-12-17 21:25:12 +09:00
2025-12-17 21:25:12 +09:00
2025-12-17 21:24:59 +09:00
2025-12-17 18:29:27 +09:00
2025-12-17 22:47:42 +09:00
2025-12-17 22:47:42 +09:00
2025-12-17 23:16:53 +09:00
2025-12-17 23:16:53 +09:00
2025-12-18 01:58:38 +09:00
2025-12-18 02:32:32 +09:00
2025-12-18 02:18:57 +09:00
2025-12-18 02:32:32 +09:00
2025-12-18 02:32:08 +09:00
2025-12-18 02:32:08 +09:00
2025-12-18 02:39:33 +09:00
2025-12-18 02:39:33 +09:00
2025-12-18 02:55:02 +09:00
2025-12-18 02:55:02 +09:00
2025-12-18 03:43:10 +09:00
2025-12-18 03:43:10 +09:00
2025-12-18 03:43:10 +09:00
2025-12-18 03:43:10 +09:00
2025-12-18 04:39:23 +09:00
2025-12-18 04:39:23 +09:00
2025-12-18 04:53:04 +09:00
2025-12-18 05:50:16 +09:00
2025-12-18 06:09:36 +09:00
2025-12-18 06:32:10 +09:00
2025-12-18 07:15:23 +09:00
2025-12-18 07:07:04 +09:00
2025-12-18 07:18:00 +09:00
2025-12-18 07:53:27 +09:00
2025-12-18 09:13:13 +09:00
2025-12-18 09:13:13 +09:00
2025-12-18 18:28:50 +09:00
2025-12-18 18:28:50 +09:00
2025-12-15 12:12:54 +09:00
2025-12-15 16:57:28 +09:00
2025-12-15 17:49:08 +09:00
2025-12-15 17:00:51 +09:00
2025-12-15 19:25:33 +09:00