|
|
1ceadf361f
|
phase29ap(p11): release adopt nested minimal coreplan
|
2025-12-31 07:56:14 +09:00 |
|
|
|
efe5e2deed
|
phase29ap(p10): coreplan adopt nested minimal (strict/dev)
|
2025-12-31 07:49:48 +09:00 |
|
|
|
b209e17f3b
|
phase29ap(p9): add nested minimal facts + strict shadow gate
|
2025-12-31 07:12:06 +09:00 |
|
|
|
02a312a522
|
phase29ap(p8): remove pattern4 legacy routing
|
2025-12-31 06:49:41 +09:00 |
|
|
|
822b67486b
|
phase29ap(p3): route stdlib join via plan subset
|
2025-12-31 04:43:04 +09:00 |
|
|
|
6b851b2e62
|
phase29ap(p2): route stdlib to_lower via plan char-map subset
|
2025-12-30 23:50:30 +09:00 |
|
|
|
124c494738
|
phase29ao(p41): release adopt pattern5 subset
|
2025-12-30 18:36:24 +09:00 |
|
|
|
eef061ad2b
|
phase29ao(p40): release adopt pattern3 if-phi subset
|
2025-12-30 18:16:52 +09:00 |
|
|
|
b105f82547
|
phase29ao(p39): release adopt pattern2 break subset
|
2025-12-30 18:04:39 +09:00 |
|
|
|
f46217d93f
|
phase29ao(p38): release adopt pattern7 split-scan subset
|
2025-12-30 17:51:29 +09:00 |
|
|
|
7bb5ee56db
|
phase29ao(p37): release adopt pattern6 scan_with_init subset
|
2025-12-30 17:40:00 +09:00 |
|
|
|
f6adf2a43f
|
phase29ao(p35): ssot tag coverage and pattern1 negative gate
|
2025-12-30 16:55:38 +09:00 |
|
|
|
7307ff76f6
|
phase29ao(p34): prevent pattern2 shadow-adopt on negative cases
|
2025-12-30 16:06:24 +09:00 |
|
|
|
59a29a86d3
|
phase29ao(p33): planner-derive pattern2 loopbodylocal smokes
|
2025-12-30 15:58:19 +09:00 |
|
|
|
dd7f923b88
|
phase29ao(p32): strict adopt pattern2 realworld from facts
|
2025-12-30 15:28:40 +09:00 |
|
|
|
ac5231555f
|
phase29ao(p29): require shadow adopt tags for all gate patterns
|
2025-12-30 14:11:17 +09:00 |
|
|
|
ab745e958a
|
phase29ao(p28): add shadow adopt tags + gate smokes for p6/p7
|
2025-12-30 13:57:07 +09:00 |
|
|
|
52fc3f9353
|
phase29ao(p26): strict/dev adopt pattern2 break subset from facts
|
2025-12-30 13:30:28 +09:00 |
|
|
|
45369ba763
|
phase29ao(p25): strict/dev adopt pattern5 from facts
|
2025-12-30 10:58:08 +09:00 |
|
|
|
ac03b83ae6
|
phase29ao(p21): tighten pattern1 subset to step-only body
|
2025-12-30 09:38:27 +09:00 |
|
|
|
98d8eef8cb
|
phase29ao(p19): gate pattern1 strict shadow in regression pack
|
2025-12-30 09:10:35 +09:00 |
|
|
|
090a0dbbaa
|
phase29ao(p16): use block_params for pattern5 exit join
|
2025-12-30 08:31:00 +09:00 |
|
|
|
5be0ec1c66
|
phase29ao(p15): add pattern3 vm to joinir regression pack
|
2025-12-30 08:16:00 +09:00 |
|
|
|
14013cbe1f
|
phase29ak(p5): ctx-aware planner candidates; fix phase1883 routing
|
2025-12-29 15:50:57 +09:00 |
|
|
|
d673bd4fbd
|
docs(phase29aj): isolate phase286 pattern9 legacy smoke
|
2025-12-29 14:18:31 +09:00 |
|
|
|
d819fe0dae
|
docs(phase29aj): define joinir regression gate; isolate phase143 legacy
|
2025-12-29 13:44:53 +09:00 |
|
|
|
2e1bb938b4
|
phase29ai(p15): observe pattern2 promotion hint under strict
|
2025-12-29 11:37:31 +09:00 |
|
|
|
0cf6749b4a
|
phase29ai(p11): planner-first pattern2 break subset
|
2025-12-29 09:55:00 +09:00 |
|
|
|
92fd459a7c
|
phase29ah(p0): add phase263 pattern2 to joinir regression pack
|
2025-12-29 06:45:34 +09:00 |
|
|
|
bd4937d89d
|
phase29af(p2+p3): regression entrypoint + carrier layout ssot
|
2025-12-29 05:44:59 +09:00 |
|
|
|
dd8c2709bd
|
fix(joinir): stabilize phase1883 latch/entry preds
|
2025-12-28 23:39:51 +09:00 |
|
|
|
d8786ebab9
|
phase29ad(p3): finalize pattern6/7 fixture naming ssot
|
2025-12-28 17:51:11 +09:00 |
|
|
|
9c44e990a9
|
phase29ad(p0): split pattern6 ok vs contract fixtures
|
2025-12-28 17:30:34 +09:00 |
|
|
|
432a8436c7
|
phase29ac(p3): keep Pattern7 contract freeze; add fixup OK fixture+smoke; closeout docs
|
2025-12-28 17:16:36 +09:00 |
|
|
|
44e9b88930
|
phase29ac(p2): defreeze pattern6 matchscan by fixing fixture
|
2025-12-28 17:00:29 +09:00 |
|
|
|
1e1679f361
|
phase29ac(p1): normalize pattern6 reverse scan and flip smoke to PASS
|
2025-12-28 16:54:01 +09:00 |
|
|
|
720468c3a5
|
phase29ab(p8): add pattern6/7 ok fixtures and smokes
|
2025-12-28 16:00:19 +09:00 |
|
|
|
4a67757170
|
phase29ab(p7): add pattern6 reverse+matchscan negative smokes
|
2025-12-28 15:41:34 +09:00 |
|
|
|
b52788b3f6
|
phase29ab(p6): freeze pattern6 scan-with-init near-miss with fixture+smoke
|
2025-12-28 15:38:19 +09:00 |
|
|
|
bea2a8d9bb
|
phase29ab(p5): freeze pattern7 split-scan near-miss with fixture+smoke
|
2025-12-28 14:32:19 +09:00 |
|
|
|
5757eb740e
|
runner: preserve UTF-8 in text-merge normalization
|
2025-12-28 13:51:44 +09:00 |
|
|
|
fe3eb9f1f7
|
config: centralize NYASH_STR_CP and add cp smoke
|
2025-12-28 13:44:53 +09:00 |
|
|
|
10e6a15552
|
refactor: unify string helpers and pattern2 derived slot
|
2025-12-28 13:22:02 +09:00 |
|
|
|
84e1cd7c7b
|
phase29ab(p3): fix PromoteDecision contract and add negative smokes
|
2025-12-28 10:57:55 +09:00 |
|
|
|
bf9c5105c3
|
phase29ab(p2): add seg trim fixture+smoke and docs
|
2025-12-28 09:03:56 +09:00 |
|
|
|
3bd0c817be
|
phase29ab(p1): pattern2 carrier binding policy + loopbodylocal fixture
|
2025-12-28 07:19:03 +09:00 |
|
|
|
d0527bcc2a
|
feat(joinir): Phase 188.3-P3.3 - Pattern6 continuation generation + Call callee fix
Phase 3-3 完了: 4関数モデル JoinIR 生成
- nested_loop_minimal.rs (337行, 新規): 4関数モデル実装
- main(): エントリーポイント
- loop_step(i, sum): outer loop header
- inner_step(j, i_outer, sum): inner loop (tail recursion)
- k_inner_exit(i, sum): outer continuation after inner loop
- k_exit(sum): 最終 exit
- pattern6_nested_minimal.rs: lowering pipeline 実装
- boundary 構築 (continuation_func_ids 設定)
- JoinIRConversionPipeline 呼び出し
- instruction_rewriter.rs: latch incoming 拡張
- continuation→header 呼び出し対応
Call callee 修正:
- call_generator.rs: callee フィールドを Callee::Global に設定
- joinir_block_converter.rs: emit_call_pair 使用に統一
smoke test 追加:
- phase1883_nested_minimal_vm.sh (integration)
既知の問題 (次タスク):
- ValueId(104) undefined: PHI/merge 問題
- JoinIR 関数パラメータの MIR マッピングが不完全
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-27 06:51:43 +09:00 |
|
|
|
a2c5fd90fe
|
feat(joinir): Phase 188.3 - Pattern6 (NestedLoopMinimal) 選択ロジック実装
## Phase 188.3 進捗: Phase 2 完了 (6/13 tasks)
### 実装完了 ✅
**Phase 1: Fixture作成**
- apps/tests/phase1883_nested_minimal.hako 追加
- Add/Compare のみ(乗算なし)
- 期待 exit code: 9 (3×3 nested loops)
- 既存 lowering で fallback 動作確認
**Phase 2: 選択ロジック (SSOT)**
- LoopPatternContext に step_tree_max_loop_depth フィールド追加
- choose_pattern_kind() に Pattern6 選択ロジック実装:
1. Cheap check (has_inner_loop)
2. StepTree 構築 (max_loop_depth 取得)
3. AST validation (is_pattern6_lowerable)
- pattern6_nested_minimal.rs モジュール作成 (stub)
- LOOP_PATTERNS に Pattern6 entry 追加
- **検証**: Pattern6 が正しく選択される ✅
### 設計原則 (確認済み)
1. **Fail-Fast**: Pattern6 選択後は Ok(None) で逃げない
2. **outer 変数 write-back 検出 → validation false** (Phase 188.4+)
3. **最小実装**: inner local だけ、Pattern1 モデル二重化
4. **cfg! 依存なし**: production で動作
### 検証結果
```
[choose_pattern_kind] has_inner_loop=true
[choose_pattern_kind] max_loop_depth=2
[choose_pattern_kind] is_pattern6_lowerable=true
✅ Pattern6 SELECTED!
```
Stub からの期待エラー:
```
[ERROR] ❌ [Pattern6] Nested loop lowering not yet implemented
```
### 次: Phase 3 (Lowering 実装 - 推定4時間)
残りタスク:
- Phase 3-1: AST 抽出ヘルパー
- Phase 3-2: Validation ヘルパー
- Phase 3-3: Continuation 生成 (outer_step, inner_step, k_inner_exit)
- Phase 3-4: fixture が exit=9 を返すことを検証
### 変更ファイル
**新規**:
- apps/tests/phase1883_nested_minimal.hako
- src/mir/builder/control_flow/joinir/patterns/pattern6_nested_minimal.rs
- docs/development/current/main/phases/phase-188.{1,2,3}/README.md
**変更**:
- src/mir/builder/control_flow/joinir/routing.rs (Pattern6 選択)
- src/mir/builder/control_flow/joinir/patterns/router.rs (Context 拡張)
- src/mir/builder/control_flow/joinir/patterns/mod.rs (module 宣言)
🎯 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-27 05:45:12 +09:00 |
|
|
|
2e99b14e24
|
phase-29y.1: add lifecycle pilot plumbing (ABI shim, rc pass skeleton, root summary)
|
2025-12-27 02:07:10 +09:00 |
|
|
|
095213c580
|
refactor(smoke): Clarify auto_detect.conf responsibilities with profile parameter
**Problem**:
- detect_optimal_config() took no arguments (line 11)
- Quick profile SSOT forcing scattered outside function (line 134-137)
- Profile-specific logic split between detect_optimal_config() and auto_configure()
- Hard to understand flow: "why is this logic duplicated?"
**Solution** (Task 4 - Low Priority):
- Accept profile parameter: `detect_optimal_config(profile)`
- Move quick profile SSOT forcing inside function (top priority)
- Eliminate duplicate logic in auto_configure()
- Update show_auto_config() to pass profile parameter
**Changes**:
- detect_optimal_config(): Add `local profile="${1:-quick}"`
- Quick SSOT check: Move to function top (early return)
- auto_configure(): Pass `"$profile"` to detect_optimal_config
- show_auto_config(): Pass `"${SMOKES_CURRENT_PROFILE:-quick}"`
- Remove 6 lines of duplicate quick forcing logic
**Benefits**:
- Single responsibility: Profile logic inside detect_optimal_config
- Clearer flow: All detection in one function
- Maintainability: One place to modify profile behavior
- Readability: Intent is explicit (profile parameter)
**Verification**:
- ✅ detect_optimal_config "quick": returns rust_vm_dynamic (SSOT)
- ✅ detect_optimal_config "integration": returns llvm_static
- ✅ Quick profile: 154/154 PASS
**Note**: This is a low-impact refactoring (code organization only)
- Behavior unchanged (same logic, better location)
- No performance impact
- Future-proof for profile-specific detection
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
2025-12-26 17:32:48 +09:00 |
|