diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index 7fbd1acb..7232feb4 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -1,5 +1,10 @@ # Self Current Task — Now (main) +## 2025-12-17:Phase 103 P0 完了 ✅ + +**Phase 103: if-only regression baseline** +- if-only(loop無し)の nested if + merge を fixture 化し、VM/LLVM EXE parity を integration smoke で固定 + ## 2025-12-17:Phase 100 P3 完了 ✅ **Phase 100 P3: String Accumulator Captures** diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index e59ad3ad..219589a3 100644 --- a/docs/development/current/main/30-Backlog.md +++ b/docs/development/current/main/30-Backlog.md @@ -8,10 +8,6 @@ Related: ## 直近(JoinIR/selfhost) -- **Phase 103: if-only regression baseline(VM + LLVM EXE)** - - ねらい: loop が無い `if`(merge/return を含む)を VM/LLVM EXE parity で固定し、ループ系の回帰を早期検知する。 - - 入口: `docs/development/current/main/phases/phase-103/README.md` - - **real-app loop regression の横展開(VM + LLVM EXE)** - ねらい: 実コード由来ループを 1 本ずつ最小抽出して fixture/smoke で固定する(段階投入)。 - 現状: Phase 102(read_quoted)まで固定済み。 diff --git a/docs/development/current/main/phases/phase-103/README.md b/docs/development/current/main/phases/phase-103/README.md index b3ca36a6..9a364fb8 100644 --- a/docs/development/current/main/phases/phase-103/README.md +++ b/docs/development/current/main/phases/phase-103/README.md @@ -50,6 +50,12 @@ Related: - `bash tools/smokes/v2/profiles/integration/apps/phase97_next_non_ws_llvm_exe.sh` が PASS(前提不足は SKIP) - 新しい環境変数は追加しない(既存の `HAKO_JOINIR_STRICT` などで制御)。 +## DONE(P0) + +- Fixture: `apps/tests/phase103_if_only_merge_min.hako`(expected: `2`) +- VM smoke: `tools/smokes/v2/profiles/integration/apps/phase103_if_only_vm.sh` +- LLVM EXE smoke: `tools/smokes/v2/profiles/integration/apps/phase103_if_only_llvm_exe.sh` + ## P1(任意): if-only early return if 文の then/else 内で return する形(merge 不要 or merge 途中で return)を 1 本追加して、Boundary/ExitLine の退行を拾いやすくする。 @@ -66,4 +72,3 @@ if 文の then/else 内で return する形(merge 不要 or merge 途中で re - 進め方(箱理論): - “新パターン増殖” ではなく、**Pattern5 系(infinite loop family)**として扱う方針を先に決める。 - まずは fixture + shape guard + Fail-Fast で段階投入し、VM/LLVM parity を固めてから lowering を広げる。 -