phase29ap(p10): coreplan adopt nested minimal (strict/dev)
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
## Current Focus
|
||||
|
||||
- Phase: `docs/development/current/main/phases/phase-29ap/README.md`
|
||||
- Next: Phase 29ap P10 (planned; see `docs/development/current/main/phases/phase-29ap/README.md`)
|
||||
- Next: Phase 29ap P11 (planned; see `docs/development/current/main/phases/phase-29ap/README.md`)
|
||||
|
||||
## Gate (SSOT)
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@ Scope: 「次にやる候補」を短く列挙するメモ。入口は `docs/dev
|
||||
|
||||
## Active
|
||||
|
||||
- Phase 29ap: `docs/development/current/main/phases/phase-29ap/README.md` (Next: P10 planned)
|
||||
- Phase 29ap: `docs/development/current/main/phases/phase-29ap/README.md` (Next: P11 planned)
|
||||
- JoinIR regression gate SSOT: `docs/development/current/main/phases/phase-29ae/README.md`
|
||||
- CorePlan hardening (docs-first): `docs/development/current/main/phases/phase-29al/README.md`
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@ Related:
|
||||
## 1.1 Current (active)
|
||||
|
||||
- Active phase: `docs/development/current/main/phases/phase-29ap/README.md`
|
||||
- Next step: Phase 29ap P10 (planned)
|
||||
- Next step: Phase 29ap P11 (planned)
|
||||
|
||||
## 2. すでに固めた SSOT(再発防止の土台)
|
||||
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
# Phase 29ap P10: Pattern6_NestedLoopMinimal minimal CorePlan subset (strict/dev)
|
||||
|
||||
## Goal
|
||||
|
||||
- In strict/dev, adopt a minimal nested-loop CorePlan for the `phase1883_nested_minimal` shape.
|
||||
- Keep release/default behavior unchanged (legacy JoinIR path remains).
|
||||
- Fail-fast in strict/dev when nested loops are detected but the subset does not match.
|
||||
|
||||
## Subset (SSOT)
|
||||
|
||||
- Outer loop: `loop(i < <int>)` with step `i = i + 1` (step=1 only).
|
||||
- Inner loop: `loop(j < <int>)` with body `sum = sum + 1; j = j + 1` (step=1 only).
|
||||
- Inner init: `j = 0` (via `local j` + assignment, or `local j = 0`).
|
||||
- No break/continue/return inside outer or inner loop.
|
||||
- No value-join / exitmap / cleanup (presence must be empty).
|
||||
|
||||
## Steps
|
||||
|
||||
1. Facts (SSOT)
|
||||
- Add `Pattern6NestedMinimalFacts` and wire it into `LoopFacts` (optional field).
|
||||
- Keep `Ok(None)` for non-matches; no hardcode by-name.
|
||||
|
||||
2. Composer v2 (strict/dev)
|
||||
- Add `coreloop_v2_nested_minimal.rs` and compose a single CoreLoopPlan with a nested CFG.
|
||||
- Body remains effect-only (j-init only); inner loop is encoded via extra blocks + Frag wiring.
|
||||
|
||||
3. Strict/dev adopt
|
||||
- If nested facts are present, adopt and emit tag:
|
||||
- `[coreplan/shadow_adopt:pattern6_nested_minimal]`
|
||||
- If nested facts are missing, keep the strict/dev freeze (fail-fast).
|
||||
|
||||
4. Smoke gate
|
||||
- Update `phase29ap_pattern6_nested_strict_shadow_vm.sh` to require the shadow-adopt tag.
|
||||
|
||||
## Verification
|
||||
|
||||
- `cargo build --release`
|
||||
- `./tools/smokes/v2/run.sh --profile quick`
|
||||
- `./tools/smokes/v2/profiles/integration/joinir/phase29ae_regression_pack_vm.sh`
|
||||
|
||||
@ -108,6 +108,16 @@ Gate (SSOT):
|
||||
- Release/default behavior remains unchanged.
|
||||
- Gate stays green.
|
||||
|
||||
## P10: Pattern6_NestedLoopMinimal minimal CorePlan subset (strict/dev) ✅
|
||||
|
||||
- Scope:
|
||||
- Add nested minimal facts (outer+inner loop subset) and project into canonical facts.
|
||||
- Compose nested loop CorePlan v2 in strict/dev and emit shadow-adopt tag.
|
||||
- Update the strict smoke to require the new tag.
|
||||
- Guardrails:
|
||||
- Release/default behavior remains unchanged (legacy JoinIR path stays).
|
||||
- Gate stays green.
|
||||
|
||||
## Next (planned)
|
||||
|
||||
- P10: Pattern6_NestedLoopMinimal migration/design (keep nested gate green)
|
||||
- P11: Pattern6_NestedLoopMinimal release adopt (TBD; keep strict gate green)
|
||||
|
||||
Reference in New Issue
Block a user