Update completion status for Phase 131 P2: - CURRENT_TASK.md: Note WSL restart resolved EXDEV issue - 10-Now.md: Add Phase 131 P2 completion entry - phase-131/README.md: Document P1.5 and P2 deliverables Phase 131 Status: DONE ✅ - loop(true) break-once executes correctly - Exit values propagate through DirectValue mode - VM + LLVM EXE parity verified 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
3.3 KiB
3.3 KiB
CURRENT_TASK (moved)
Status: SSOT
Scope: Repo root の旧リンク互換。現行の入口は docs/development/current/main/10-Now.md。
- Now:
docs/development/current/main/10-Now.md - Backlog:
docs/development/current/main/30-Backlog.md
Handoff (was blocking; now unblocked)
状況
- JoinIR/Phase 131 系(Normalized shadow + DirectValue exit)が進行中だが、LLVM EXE smoke が Rust のビルド段階でブロックしていた。
- エラー:
Invalid cross-device link (os error 18)(cargo buildが.rmeta/.rlibを書き出すときに落ちる) - 2025-12-18:
wsl --shutdownによる WSL 再起動後、cargo build/LLVM build/該当 smokes が復活(下のコマンドは PASS)。
症状(再現コマンド)
cargo build -p nyash-rustcargo build --release -p nyash-rust --features llvm- LLVM EXE smokes(内部で release build するので同様に失敗)
bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_llvm_exe.shbash tools/smokes/v2/profiles/integration/apps/phase97_next_non_ws_llvm_exe.sh
影響しない(通るもの)
cargo test --libは PASS- VM smokes は PASS(例)
bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_vm.shbash tools/smokes/v2/profiles/integration/apps/phase130_if_only_post_if_add_vm.sh
根本原因メモ(環境)
- WSL2 上で、
O_TMPFILEで作った一時ファイルを/proc/self/fd/<n>経由でlinkすると EXDEV が返る挙動を確認。- Rustc/cargo が内部で類似の「tmpfile → persist(link/rename)」を使っている可能性が高い。
- さらに、この環境では
~/.rustup/tmpと~/.cargoが書き込み不可に見える(immutable/perm issue の疑い)。 - DNS も一時的に死んでおり、
rustup toolchain install等の回避策が取れない状態だった(Temporary failure in name resolution)。
対処(ユーザー側での復旧手順)
- WSL を完全再起動:
- Windows 側で
wsl --shutdown→ その後 WSL を起動し直す
- Windows 側で
- 再起動後にビルドが復活しているか確認:
cargo build -p nyash-rustcargo build --release -p nyash-rust --features llvm
- 復活したら、VM+LLVM EXE の最終確認(integration):
bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_vm.shbash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_llvm_exe.shbash tools/smokes/v2/profiles/integration/apps/phase97_next_non_ws_llvm_exe.sh
補足(再発時のワークアラウンド)
tools/build_llvm.shは EXDEV を避けるため、TMPDIRをtarget/...配下へ寄せる(同一 FS 内での artifact finalize を狙う)。
注意(作業ツリー)
- 現在
git statusは clean ではない(Phase 131 関連の変更が多数 + 未tracked docs/ファイルあり)。- 未tracked:
docs/development/current/main/phases/phase-131/p1.5-implementation-guide.md - 未tracked:
docs/development/current/main/phases/phase-131/p1.5-option-b-analysis.md - 未tracked:
docs/development/current/main/phases/phase-131/p1.5-root-cause-summary.md - 未tracked:
src/mir/control_tree/normalized_shadow/exit_reconnector.rs
- 未tracked: