Files
hakorune/CURRENT_TASK.md
nyash-codex f775c0fe01 docs: Phase 131 P2 DirectValue exit reconnection complete
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>
2025-12-18 17:48:18 +09:00

64 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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-rust`
- `cargo 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.sh`
- `bash 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.sh`
- `bash 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 → persistlink/rename」を使っている可能性が高い。
- さらに、この環境では `~/.rustup/tmp``~/.cargo` が書き込み不可に見えるimmutable/perm issue の疑い)。
- DNS も一時的に死んでおり、`rustup toolchain install` 等の回避策が取れない状態だった(`Temporary failure in name resolution`)。
### 対処(ユーザー側での復旧手順)
1. WSL を完全再起動:
- Windows 側で `wsl --shutdown` → その後 WSL を起動し直す
2. 再起動後にビルドが復活しているか確認:
- `cargo build -p nyash-rust`
- `cargo build --release -p nyash-rust --features llvm`
3. 復活したら、VM+LLVM EXE の最終確認integration:
- `bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_vm.sh`
- `bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_llvm_exe.sh`
- `bash 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`